2015-04-18 60 views
6

设置在奥里利亚恒定的,我想我的API的基础URL改变从devprod。在Angular I用户使用config.json文件后来被注入到应用程序中使用grunt-env如何通过环境

+0

这是一个相当悬而未决的问题,因为这一切都取决于你如何服务,绝对可以个人选择。我没有看到把它放在'json'文件中有什么错误 –

+0

我不想一遍又一遍读这个json文件 - 在config中注入一次(某处)会更有意义 – amitaibu

+0

是的就是我的意思就是使用http客户端来读一次应该是非常简单的。 –

回答

2

如果你想'注入'它只有一次然后什么阻止你使用一个简单的ES6模块?它只能从服务器加载一次。

举例来说,你可以像在一个config.js文件:(警告!我没有尝试运行它)

export var Config = { 
    path : 'path to find' 
}; 

然后你可以使用你的模块的任何地方,你需要它:

import {Config} from 'config'; 
+0

是的,注入一次 - 但是在本地运行时以及在生产中运行时有_different_值。在Angular + grunt中,我使用'grunt serve'作为DEV常量,'grunt build'作为生产常量。 – amitaibu

11

如果您使用Aurelia CLI,它将在您的aurelia_project内部生成一个environments目录。

这个目录,你可以基于--env [dev/stage/prod]标志传递到您的au build/run命令,将在您的src目录复制到environment.js设置环境CONFIGS内。

然后,您可以使用import environment from './environment'访问您的环境特定配置值。

,你可以考虑另一种选择是Aurelia Configuration Plugin,其中也有动态的环境CONFIGS。