在Ember-CLI项目中编译Compass

时间:2014-04-26 05:17:00

标签: ember.js compass-sass ember-cli

我正在使用ember-cli v0.0.23,并试图让broccoli-compass包使用我的项目,我遇到了一些问题。

首先,在我的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时,我尝试了许多选项imagesDircompileCompass等的组合,这是我得到的最接近的。

所以我能做些什么来成功获得指南针,西兰花指南针和ember-cli能够很好地发挥作用?

提前致谢

2 个答案:

答案 0 :(得分:3)

您可以使用ember-cli-compass-compiler插件在ember-cli应用程序中编译指南针。

在您的ember-cli应用中执行以下操作:

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

这就是你需要做的一切,从现在开始一切正常。它会将appname.scss文件在appname.cssember build命令上编译为ember serve

答案 1 :(得分: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'
});

斯特芬