Компиляция Compass в проекте Ember-CLI

Я использую ember-cli v0.0.23 и пытаюсь получить broccoli-compass package работает с моим проектом, и я столкнулся с некоторыми проблемами.

Во-первых, в моем Brocfile я заменил стандартную версию "чертежа" Ember-CLI:

var styles = preprocessCss(appAndDependencies, prefix + '/styles', '/assets');

со следующим:

var compileCompass = require('broccoli-compass');
var styles = compileCompass(appAndDependencies, 'app/styles/app.scss', {
    outputStyle: 'expanded',
    sassDir: 'app/styles',
    imagesDir: 'public/images/'
});    

Однако, когда я запускаю ember build, я получаю следующий вывод:

$ ember build
[broccoli-compass] Error:  Command failed: Errno::ENOENT on line ["155"] of /Library/Ruby/Gems/2.0.0/gems/compass-0.12.6/lib/compass/compiler.rb: No such file or directory - /Users/gaker/Sites/project/tmp/tree_merger-tmp_dest_dir-GrWa8Zva.tmp/app/styles/app.scss
Run with --trace to see the full backtrace. The command-line arguments was: `compass compile app/styles/app.scss --relative-assets --sass-dir app/styles --output-style expanded --images-dir public/images/ --css-dir "../compass_compiler-tmp_dest_dir-eFsq51BG.tmp"`

Если я попытаюсь запустить команду compass, которая выводится в ошибке в моем терминале, она создает файл, только он находится на одну директорию выше моего корня проекта (обратите внимание на --css-dir в выводе).

Я пробовал много комбинаций опций sassDir, imagesDir и т. д. при вызове compileCompass, и это самое близкое, что я получил.

Итак, есть идеи о том, что я могу сделать, чтобы компас, брокколи-компас и эмбер-кли хорошо играли?

заранее спасибо


person gaker    schedule 26.04.2014    source источник


Ответы (2)


Попробуйте это (добавлен префикс и cssDir):

var compileCompass = require('broccoli-compass');
var styles = compileCompass(appAndDependencies, prefix + '/styles/app.scss', {
    outputStyle: 'expanded',
    sassDir: prefix + '/styles',
    imagesDir: 'public/images/',
    cssDir: '/assets'
});

Стеффен

person Steffen Brem    schedule 26.04.2014
comment
@ steffen: Начиная с ember-cli v0.0.28 - куда это идет? Где-то в Brocfile.js? Я не знаю, куда их поместить в проекте, и подозреваю, что в нем могут быть изменения с версии 0.0.23. - person bguiz; 04.06.2014

Вы можете использовать дополнение ember-cli-compass-compiler для компиляции компаса в ember- кли приложения.

Просто сделайте следующее в своем приложении ember-cli:

npm install --save-dev ember-cli-compass-compiler

Это все, что вам нужно сделать, теперь все работает как положено. Он компилирует ваш файл appname.scss в appname.css по команде ember build или ember serve.

person quaertym    schedule 31.07.2014
comment
(Проверено в 0.0.40) часть компиляции работает, но я не могу ссылаться на изображения, которые находятся в public/assets/images (или другом каталоге). URL-адрес будет следующим: localhost:4200/tree_merger-tmp_dest_dir-HoagpjbQ.tmp/ images/ (или аналогичный) и изображение не может быть найдено. - person amenthes; 05.08.2014
comment
(0.0.40) Теперь мы добавляем это в примечание Brocfile.js: var app = new EmberApp({ compassOptions: { imagesDir: '../assets/images/' } }); относительного каталога изображений — таким образом, это работает на Mac и Win. - person amenthes; 05.08.2014
comment
@amenthes да, именно так вы переопределяете параметры по умолчанию. Я изучу это, assets/images/ может быть хорошим значением по умолчанию, тогда я выпущу новую версию. - person quaertym; 05.08.2014
comment
проблема в том, чтобы отправить его на Heroku: version: 0.0.44 BuildingBuilding./bin/sh: compass: not found - person Gustavo Siqueira; 15.09.2014
comment
Вам нужно также установить broccoli-sass, чтобы это заработало? Я установил оба, и теперь я не могу скомпилировать sass, даже после удаления broccoli-sass я все еще не могу скомпилировать sass, а также не получаю никаких ошибок в терминале при сохранении файла sass. Файл app.css абсолютно пуст, независимо от того, сколько раз я его сохраняю. - person Jordan; 06.11.2014
comment
@Jordan Вам не нужен broccoli-sass, если вы его установили, удалите его. Вам также необходимо иметь файл app.scss в папке стилей. - person quaertym; 06.11.2014
comment
@quaertym Я удалил его, и у меня был app.scss, но он не работал, когда я изменил его на название своего приложения, оно сработало. Это ожидаемое поведение? - person Jordan; 06.11.2014
comment
@Jordan да, извините за вводящий в заблуждение комментарий. Имя файла должно быть appname.scss, как указано в ответе. - person quaertym; 06.11.2014