EmberCLI运行时配置

时间:2017-08-21 21:18:42

标签: docker ember.js configuration environment-variables ember-cli

我们在我们的基础架构中运行EmberCLI应用程序,我的任务是使其与其他服务一起更好地运行。关于EmberCLI有一点有趣的一点是,默认情况下,它的所有配置变量都会被编译到构建中。 (特别是在<meta>标签中)。

我无法找到提供运行时配置的方法。我们有一个&#34; API_URL&#34;环境变量,提供给我们所有的服务,以便他们可以找到API。在运行时向EmberCLI提供此URL的推荐方法是什么,因此我可以避免重建并使用我们的前端应用程序构建完整的docker容器。

1 个答案:

答案 0 :(得分:0)

如果要使用环境变量进行配置ember-cli-dotenv会有所帮助。它允许您访问config/enviroment.js中的环境变量:

// config/environment.js
module.exports = function(environment){
  return {
    apiUrl: process.env.API_URL
  }
};

您必须将ember-cli-build.js中使用的环境变量列入白名单:

// ember-cli-build.js
module.exports = function(defaults) {
  var app = new EmberApp(defaults, {
    dotEnv: {
      clientAllowedKeys: ['API_URL']
    }
  });

  return app.toTree();
};

简短说明:配置变量由ember-cli烘焙到构建中,因为ember-cli在构建后完成了它的工作。生成的文件应该由像nginx这样的普通网络服务器提供。可以使用ember serve启动的网络服务器不应在生产中使用。