2013-07-09 6 views
10

Quindi ho la seguente situazione. Quando utilizzo la bussola solo dalla CLI, funziona e fa esattamente ciò che è richiesto. Sto eseguendo compass compile dalla stessa cartella in cui si trova il file config.rb (nella cartella styles). Contiene anche le directory sass e css. Ecco la mia config.rb di file:Impossibile eseguire lavori con grunt-contrib-compass

project_path = '.' 
css_dir = "css" 
sass_dir = "sass" 
images_dir = "../../data/images" 
javascripts_dir = "../scripts" 

output_style = :compressed 
environment = :development 
relative_assets = true 

Quando sto cercando di usare grunt per questo io uso la seguente configurazione in Gruntfile.js:

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

La cartella app e Gruntfile.js si trovano allo stesso livello. quando sono in esecuzione grunt compass vedo il seguente output:

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. 

Se provo per specificare tutte le opzioni direttamente come:

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

Si fa il lavoro, ma la cartella .sass-cache viene creata il livello di Gruntfile.js. Quindi immagino ci sia qualche problema con l'opzione basePath della configurazione.

Sto facendo qualcosa di sbagliato?


EDIT:
L'unico modo, sono riuscito a farlo funzionare, come previsto si sta muovendo config.rb file al livello di Gruntfile.js, e specificando le seguenti opzioni in esso:

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 

Inoltre ho rimosso tutte le opzioni da 'Gruntfile.js`, che riguardano questa attività. Ancora non sono sicuro, cosa sta succedendo qui.

+0

http: //blog.grayghostvisuals .com/css/immagine-url / –

risposta

3

non provare ad impostare il basePath nella configurazione Grunt, vale a dire:

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

trasformarsi in:

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

E anche eseguire il Grunt Compass con lo switch --verbose (grunt compass --verbose) per vedere che cosa file grunt sta cercando di elaborare.

Si noti che qualsiasi impostazione aggiunta alle opzioni nel file Grunt sostituirà (o estenderà) le impostazioni nel file config.rb.

Controlla questa pagina: https://github.com/gruntjs/grunt-contrib-compass per ulteriori informazioni su grunt-contrib-compass. hanno informazioni su tutte le opzioni possibili.

0

se avete bisogno di un percorso di base diversa per il vostro progetto del tuo config.rb, è possibile impostare il percorso in config.rb (anche relativa)

Esempio di configurazione.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 

Esempio 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"); 
} 

Esempio 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'); 
} 

Corriamo Bussola 0.12.latest su Win7 x64