如何为Broccoli中的环境设置不同的Compass配置选项?

时间:2015-05-06 07:11:30

标签: ember.js ember-cli compass broccolijs

我目前正在使用ember-cli-broccoli-compass插件来编译我的SASS。但是,我无法在不同环境的样式表中为图像资源分配HTTP路径。这就是我到目前为止所做的:

var EmberApp = require('ember-cli / lib / broccoli / ember-app');

var app = new EmberApp(
{
    compassOptions: 
    {
        httpPath: 'http://s3-eu-west-1.amazonaws.com/alua/',
        generatedImagesPath: 'http://s3-eu-west-1.amazonaws.com/alua/'
    }
});

在构建生产应用程序(ember build -prod)时,它会为样式表中的图像资源预先设置正确的S3路径。但是,在使用ember server --proxy http://localhost:3000运行应用程序时,资产是使用S3路径构建的,而不是 http://localhost:4200 的本地所需路径

在构建图片资源路径时,如何为httpPath提供特定于环境的Compass选项?

1 个答案:

答案 0 :(得分:1)

使用EmberApp.env(),您可以获得当前环境。例如:

正在运行ember build会返回"development"ember build -prod会返回"production"

因此,在最糟糕的情况下,如果插件没有按环境提供选项,您可以执行此操作:

var env = EmberApp.env();
var compassOptions;

if (env === 'development') {
  compassOptions = your dev options;
} else if (env === 'test') {
  compassOptions = your test options;
} else if (env === 'production') {
  compassOptions = your production options;
}

var app = new EmberApp({
  compassOptions: compassOptions
});

module.exports = app.toTree();

我希望它有所帮助