我们在我们的基础架构中运行EmberCLI应用程序,我的任务是使其与其他服务一起更好地运行。关于EmberCLI有一点有趣的一点是,默认情况下,它的所有配置变量都会被编译到构建中。 (特别是在<meta>
标签中)。
我无法找到提供运行时配置的方法。我们有一个&#34; API_URL&#34;环境变量,提供给我们所有的服务,以便他们可以找到API。在运行时向EmberCLI提供此URL的推荐方法是什么,因此我可以避免重建并使用我们的前端应用程序构建完整的docker容器。
答案 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
启动的网络服务器不应在生产中使用。