我正在使用Ember.js 2.5.0
,目前看来Ember仅限于三个环境development
,test
和production
。如何添加其他一些env,例如staging
?
我有一个临时服务器,所以我们可以测试我们的应用程序,我想在那里使用不同的配置(比开发一个)。有任何解决方法吗?
答案 0 :(得分:5)
我遇到了同样的问题,我已经解决了它编辑两个文件的问题environment.js
和ember-cli-build.js
在environment.js
中,我添加了另一个IF来设置新环境的值:
if(environment === "stage") {
ENV.APP.xxxx = 'stage value'
}
在ember-cli-build.js
中,我自定义了fingerprint
的启用方式。您可以对其他设置执行相同的操作。
module.exports = function(defaults) {
var fingerprintEnabled = false;
var env = process.env.EMBER_ENV || 'development';
switch (env) {
case 'development':
fingerprintEnabled = false;
break;
case 'test':
fingerprintEnabled = false;
break;
case 'production':
case 'stage':
fingerprintEnabled = true;
break;
}
var app = new EmberApp(defaults, {
fingerprint: {
enabled: fingerprintEnabled,
exclude: [...]
}
// Add options here
});
构建应用程序时,我会传递正确的environment
标志:
ember build --environment=stage
答案 1 :(得分:2)
正如ember-cli documentation所述,目前ember-cli仅限于三种环境。
此阶段的最佳解决方法是使用ember-cli-dotenv之类的内容。具体看看this part of the readme。
粘贴在此处以便于参考:
// ember-cli-build.js
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
dotEnv: {
clientAllowedKeys: ['DROPBOX_KEY'],
path: './path/to/.env'
}
});
return app.toTree();
};
DROPBOX_KEY现在可以根据你的.env。
相关SO question。