如何为Ember js添加自定义环境?

时间:2016-05-09 05:55:24

标签: ember.js ember-cli

我正在使用Ember.js 2.5.0,目前看来Ember仅限于三个环境developmenttestproduction。如何添加其他一些env,例如staging

我有一个临时服务器,所以我们可以测试我们的应用程序,我想在那里使用不同的配置(比开发一个)。有任何解决方法吗?

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,我已经解决了它编辑两个文件的问题environment.jsember-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