Angular 2:存储配置设置的策略

时间:2017-01-13 10:30:31

标签: angular webpack angular-cli

我正在使用角度CLI来创建angular2项目。我正在使用json文件来存储一些可配置的设置,如api端点等 CLI捆绑所有文件,因此json文件不会在dist文件夹中单独部署。这是一个问题,因为部署后无法更改这些设置。 通常用于在angualr应用程序中存储此类设置的策略是什么,可以在不重新部署的情况下进行编辑? 与web.config或app.config类似的东西。

2 个答案:

答案 0 :(得分:1)

让文件夹config具有所有运行时环境配置,此文件夹需要添加到"assets" .angular-cli.config.数组中

您需要创建一个代表您的应用程序设置的类,您可以调用AppSettings

然后修改您的main.ts以获得类似内容:

fetch(configUrl, { method: 'get' })
.then((response) => {
  response.json()
    .then((data: any) => {
      if (environment.production) {
        enableProdMode();
      };
      platformBrowserDynamic([{ provide: AppSettings, useValue: new AppSettings(data.config) }]).bootstrapModule(AppModule);
    });
});

configUrl将包含您的配置文件网址,例如/config/dev.json
这样,配置将使用fetch API获取,在应用程序引导程序中,您的AppSettings将自动创建。

你必须将AppSettings注入你想要使用的任何地方。

有关详细信息,请查看此answer

答案 1 :(得分:0)

在angular-cli.json中向资源添加文件条目会将其原样复制到dist文件夹。

"assets": [ "assets", "fav.ico", "settings.json" ]