在构建期间在ember-cli app中使用ENV值

时间:2014-08-07 17:04:49

标签: ember.js ember-cli

我想根据构建环境设置我的RESTAdapter主机。

我认为这个值可以存储在config/environment.js中,如下所示:

if (environment === 'development') {
  ENV.API_ENDPOINT = 'http://localhost:8080';
}

if (environment === 'production') {
  ENV.API_ENDPOINT = 'http://api.myserver.com';
}

但我不确定如何在构建过程中将信息插入adapter/application.js

1 个答案:

答案 0 :(得分:24)

您可以在config/environment.js

中定义这样的设置
  // snip
  APP: {
    // Here you can pass flags/options to your application instance
    // when it is created
    API_HOST: 'http://192.168.1.37:3000' // default setting
  }
};

if (environment === 'development') {
  ENV.APP.LOG_TRANSITIONS = true;
  ENV.APP.API_HOST = 'http://192.168.1.37:3000'; // override
}

然后,您可以在其他文件中使用此设置:

// app/adapters/application.js:
import DS from "ember-data";

export default DS.RESTAdapter.extend({
   host: window.MyAppENV.APP.API_HOST
});

MyApp替换为您的应用程序。

切换到使用ember --environment选项的构建环境:

ember serve --environment production

ember build --environment development

我还没有看到是否有办法动态提供价值,但您可以提供任意数量的环境。

更新:添加完整性,并根据韦斯顿的评论,Environments记录此功能。