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

How to add a custom environment for Ember js?

我正在使用 Ember.js 2.5.0 并且目前 Ember 似乎仅限于三种环境 developmenttestproduction。如何添加其他环境,例如 staging

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

ember-cli documentation 中所述,ember-cli 目前仅限于三种环境。

现阶段最好的解决方法是使用类似 ember-cli-dotenv. Have a look specifically at 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.

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