sass - tutorial - brújula: debe compilar hojas de estilo individuales desde el directorio del proyecto
sass--watch (6)
Hace un tiempo estaba usando Compass para generar hojas de estilo de sass para un proyecto.
Recientemente volví a ese proyecto. Fui a mi directorio sass e hice "reloj de brújula --debug.:." Esto generó el error "Debe compilar hojas de estilo individuales desde el directorio del proyecto".
Descubrí que no había config.rb en el directorio. Así que recreé uno. Se parece a esto:
http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass
Sin embargo, todos mis intentos de usar la brújula producen el mismo error, sin importar los valores que coloque en la configuración.
¿Cómo obtengo la brújula para procesar mi sass?
Elimine el "/" delante de los nombres de su directorio.
Este error ocurre cuando su ruta de origen es incorrecta. En su caso, sus directorios tienen un "/" adicional. Eliminarlos debería solucionar su problema.
Como han dicho otros, la creación de un config.rb con compass init
lo arreglará también.
Tenga en cuenta que Config.rb no es necesario cuando se utiliza Grunt o corredores similares que ejecutan brújula. Esa podría ser la forma en que su proyecto se estaba ejecutando antes sin el archivo config.rb. El corredor comienza la brújula con todas las rutas y opciones en Gruntfile.js. Tener rutas / opciones en Gruntfile y config.rb puede causar problemas.
Experimenté el mismo problema al usar gulp-compass-compile
. Se srcDir
cambiando la opción srcDir
(que se convierte a la opción --sass-dir
en la llamada de compilación de la brújula) para la función de la compass
de ./src/scss
a src/scss
. Espero que ayude a alguien.
Normalmente tengo mi config.rb en mi directorio de proyecto (o raíz) en lugar del directorio sass.
La estructura de la carpeta sería así:
- config.rb
- --- css
- --- sass
Además, su css_dir y sass_dir tienen el mismo valor, lo que también podría generarle problemas.
Para cualquiera que busque compilar SCSS sin hacer un proyecto completo (por ejemplo, para una página única), puede simplemente crear un config.rb, pero necesita al menos dos parámetros: css_dir
y sass_dir
. ( touch
-ing no es suficiente). Un config.rb
mínimo:
css_dir=''.'';sass_dir=''.''
Esto crea efectivamente un proyecto de brújula con el propósito de compilar archivos simples . Tendrás que incluir el resto de los parámetros si quieres usar sprites, etc. Suponiendo que la brújula pueda escribir en el directorio, creará el directorio .sass-cache
una vez que .sass-cache
la compass compile
compass watch
o la compass watch
por primera vez. .
También es importante tener en cuenta que los comandos de la brújula se deben ejecutar desde el directorio con config.rb
, o obtendrá este error.
Finalmente, si solo quiere aprovechar las características simples de SASS (y no los componentes de marco de Compass), SASS directo es a menudo más simple:
sass --watch foo.scss:foo.css
Tenía este problema en Windows 7 usando Symfony con Gulp, lo resolví usando rutas absolutas como esta:
gulp.task(''compass'', function() {
gulp.src(''c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass/*.scss'')
.pipe(compass({
config_file: ''c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/config.rb'',
css: ''c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/stylesheets'',
sass: ''c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass''
}))
.pipe(gulp.dest(''c:/wamp/www/mnv/web/css''));
});
simplemente se encontró con este problema también, y ya fue respondido en el comentario de Arnaud Valle. Pero solo por claridad, y personas buscando más tarde.
Simplemente crear una config.rb no funcionará, ya que la brújula no lo reconoce. La respuesta es simplemente cambiar a su directorio de proyecto (raíz) y luego ejecutar
compass init
Esto luego creará un config.rb "en funcionamiento" y dos directorios llamados sass y stylesheets en el directorio sass serán un par de archivos scss de inicio.
Si no los quiere, o quiere usar diferentes directorios, puede ahora, por supuesto, editar su config.rb recién creado y en funcionamiento, y cambiar sus directorios (y luego eliminar los antiguos creados automáticamente)
Ah, y sospecho que tu js no estará en una carpeta javascripts, así que edítalo en config.rb
De todos modos, habiendo hecho eso (o no), entonces debería poder correr
compass watch
y todo debería ser bueno, es decir, tus archivos scss se compilan en archivos css
Como una alternativa que no he probado, pero teóricamente
compass compile [path/to/scss]
debería funcionar también, si no quieres iniciar brújula
Más información que se puede encontrar en la documentación de la brújula aquí
y para ir completamente arriba, si esto es algo que te encuentras haciendo a menudo, y odias los valores predeterminados entonces edita / agrega lo siguiente a tu ~ / .bash_profile
alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"