2013-07-09 4 views
10

Mam następującą sytuację. Kiedy używam kompasu tylko z interfejsu CLI, po prostu działa i wykonuje dokładnie to, co wymagane. Używam compass compile z tego samego folderu, w którym znajduje się plik config.rb (w folderze styles). Zawiera również katalogi sass i . Oto mój config.rb file:Nie można wykonać pomruku-contrib-kompas

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

output_style = :compressed 
environment = :development 
relative_assets = true 

Kiedy próbuję użyć grunt dla tego używam następującą konfigurację w Gruntfile.js:

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

Folder app i Gruntfile.js znajdują się na tym samym poziomie. Kiedy biegnę grunt compass widzę następujący wynik:

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. 

Gdyby spróbować określić wszystkie opcje bezpośrednio jak:

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

spełnia swoje zadanie, ale folder jest tworzony na .sass-cache poziom Gruntfile.js. Więc domyślam się, że jest jakiś problem z opcją basePath konfiguracji.

Czy robię coś nie tak?


EDIT:
Jedynym sposobem udało mi się zrobić to praca, jako przeznaczone porusza config.rb plik do poziomu Gruntfile.js oraz określając następujące opcje w nim:

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 

Usunęłam również wszystkie opcje z pliku "Gruntfile.js", które dotyczą tego zadania. Wciąż nie jestem pewien, co się tutaj dzieje.

+0

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

Odpowiedz

3

nie spróbować ustawić basePath w config Grunt, to znaczy:

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

zamieni się:

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

A także uruchomić Grunt Compass z przełącznikiem --verbose (grunt compass --verbose), aby zobaczyć, co pliki próbują przetwarzać.

Należy zauważyć, że każde ustawienie dodane do opcji w pliku Grunt spowoduje zastąpienie (lub rozszerzenie) ustawień w pliku config.rb.

Sprawdź tę stronę: https://github.com/gruntjs/grunt-contrib-compass, aby zobaczyć więcej informacji o grunt-contrib-compass. mają informacje o wszystkich możliwych opcjach.

0

jeśli potrzebujesz inną ścieżkę bazową dla projektu niż config.rb można ustawić ścieżkę w config.rb (nawet względna)

Przykład 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 

Przykład 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"); 
} 

Przykład 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'); 
} 

Prowadzimy Compass 0.12.latest na Win7 x64