gruntjs compass-sass

gruntjs - No se puede hacer que gruñido-contribución-brújula funcione



compass-sass (2)

Entonces tengo la siguiente situación. Cuando uso brújula solo de CLI, solo funciona y hace exactamente lo que se requiere. Estoy ejecutando la compass compile desde la misma carpeta donde se config.rb archivo config.rb (en la carpeta de styles ). También contiene directorios sass y css . Aquí está mi archivo config.rb :

project_path = ''.'' css_dir = "css" sass_dir = "sass" images_dir = "../../data/images" javascripts_dir = "../scripts" output_style = :compressed environment = :development relative_assets = true

Cuando intento usar grunt para esto, utilizo la siguiente configuración en Gruntfile.js :

compass: { compile: { options: { basePath: ''app/src/styles'', config: ''app/src/styles/config.rb'' } } }

La carpeta de app y Gruntfile.js se encuentran en el mismo nivel. Cuando estoy ejecutando grunt compass veo el siguiente resultado:

Running "compass:dist" (compass) task Nothing to compile. If you''re trying to start a new project, you have left off the directory argument. Run "compass -h" to get help. Done, without errors.

Si trato de especificar todas las opciones directamente como:

compass: { compile: { options: { basePath: ''app/src/styles'', sassDir: ''app/src/styles/sass'', cssDir: ''app/src/styles/css'', imagesDir: ''app/data/images'' } } }

Hace el trabajo, pero la carpeta .sass-cache se crea a nivel de Gruntfile.js . Así que supongo que hay algún problema con la opción basePath de la configuración.

¿Estoy haciendo algo mal?

EDITAR :
De la única forma, logré que funcionara, como estaba previsto mover el archivo config.rb al nivel de Gruntfile.js y especificar las siguientes opciones en él:

project_path = ''app/src/styles'' css_dir = "css" sass_dir = "sass" images_dir = "../../data/images" javascripts_dir = "../scripts" output_style = :compressed environment = :development relative_assets = true

También eliminé todas las opciones del ''Gruntfile.js`, que se refiere a esta tarea. Todavía no estoy seguro, qué está pasando aquí.


si necesita una ruta base diferente para su proyecto que su config.rb, puede establecer la ruta en config.rb (incluso relativa)

Ejemplo config.rb

project_path = "../src/main/webapp/" http_path = "./" css_dir = "css" sass_dir = "../library" images_dir = "assets/images" fonts_dir = "assets/fonts" javascripts_dir = "assets/js" ... relative_assets = true

Ejemplo SCSS

.stylesheet-url { content:stylesheet-url("style.css"); } .font-url { content:font-url("font.woff"); } .image-url { content:image-url("image.png"); } .generated-image-url { content:generated-image-url("image2.png"); }

Ejemplo de CSS

.stylesheet-url { content: url(''style.css''); } .font-url { content: url(''../assets/fonts/font.woff''); } .image-url { content: url(''../assets/images/image.png''); } .generated-image-url { content: url(''../assets/images/image2.png''); }

Ejecutamos Compass 0.12.latest en Win7 x64


Intente no configurar el basePath en la configuración de Grunt, es decir:

compass: { compile: { options: { basePath: ''app/src/styles'', config: ''app/src/styles/config.rb'' } } }

Convierta en:

compass: { compile: { options: { config: ''app/src/styles/config.rb'' } } }

Y también ejecute su Grunt Compass con el modificador --verbose ( grunt compass --verbose ) para ver qué archivos está intentando procesar el ronco.

Tenga en cuenta que cualquier configuración que agregue a sus opciones en el archivo Grunt anulará (o ampliará) la configuración en su archivo config.rb.

Echa un vistazo a esta página: https://github.com/gruntjs/grunt-contrib-compass para ver más información sobre grunt-contrib-compass. ellos tienen información sobre todas las opciones posibles.