是否可以根据环境变量有条件地运行实例初始值设定项?
用例:我在本地计算机上运行了一个Ember应用程序。如果应用程序启动时存在某个环境变量,我想启动名为" lights"的服务。如果它不存在,我不希望该服务运行。
//instance-intializers/lights.js
export default {
name: 'lights',
initialize(application) {
application.container.lookup('service:lights');
}
};
答案 0 :(得分:1)
好吧,如果你想在构建期间检测环境变量并不是那么难。您可以编写一个in-repo-addon并使用preprocessTree挂钩来添加或删除初始化程序。你在节点环境中,所以你可以访问你需要的一切。
答案 1 :(得分:1)
一种不错的方法是从构建中删除它。 (正如勒克斯在答案中提到的那样。)
快速方法是获取环境变量并进行检查,例如:
//instance-intializers/lights.js
export default {
name: 'lights',
initialize(application) {
let env = application.resolveRegistration('config:environment');
if(env === ''){
application.lookup('service:lights');
//... do whatever you want...
}
}
};