EmberJS,如何为不同的 "environments" 管理不同的 "config variables"

EmberJS, How to manage different "config variables" for different "environments"

emberjs标签下有好几个问题都是讲如何管理不同的environments但是都只是申请非常具体的场景。

我正在寻找如何为不同的环境设置不同的配置变量的通用解决方案。

举个例子,我有一个 API URL 用于我的 开发 环境,另一个 API URL 用于我的制作环境

production_api_url: "http://production.server.com/api"
development_api_url: "http://development.server.com/api"

在我的 适配器中 我想使用合适的 API URL:

# /app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';

export default ActiveModelAdapter.extend({
  namespace: 'api',
  host: [[API_URL]]
});

在 Ember 2.2 和 EmberCLI 中,它可以像这样开箱即用:

为每个 环境设置 URLS:

# /config/environments.js
...
if (production === 'production') {
  ENV.API_HOST = 'http://production.server.com'
}

if (environment === 'development') {
  ENV.API_HOST = 'http://development.server.com'
}
...

使用 适配器中的 URL:

# /app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';
import config from '../config/environment';

export default ActiveModelAdapter.extend({
  namespace: 'api',
  host: config.API_HOST
});