2017-02-14 26 views
0

是否可以根据环境变量有条件地运行实例初始值设定项?EmberJs;有条件地启动实例初始值设定项

用例:我在本地机器上运行了一个Ember应用程序。如果应用程序启动时存在某个环境变量,我想启动一个名为“lights”的服务。如果它不存在,我不希望该服务运行。

//instance-intializers/lights.js 
export default { 
    name: 'lights', 
    initialize(application) { 
    application.container.lookup('service:lights'); 
} 
}; 

回答

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... 
    } 
    } 
}; 
+0

要看他用'环境variable'的意思。他的问题听起来像是他的系统环境变量,他可以在他的shell中设置,这很奇怪,但比配置中的东西更棘手一些。 – Lux

+0

然后环境变量放在哪里?客户端或服务器?也许是我的误解。 – ykaragol

1

那么,如果你想在构建期间检测环境变量,那真的不那么难。您只需编写一个in-repo插件并使用preprocessTree钩子来添加或删除初始化程序。你在节点env中,所以你可以访问你需要的所有东西。

相关问题