我正在使用角度CLI来创建angular2项目。我正在使用 json 文件来存储一些可配置的设置,例如 api 端点等CLI 捆绑所有文件,因此 json 文件不会单独部署在 dist 文件夹中。这是一个问题,因为部署后无法更改这些设置。通常用于将此类设置存储在无需重新部署即可编辑的 angualr 应用程序中的策略是什么?类似于web.config或app.config的东西。
有一个文件夹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
将包含您的配置文件 URL,例如/config/dev.json
这样,配置将通过fetch API
获取,并且在应用程序引导时,将自动创建您的AppSettings
。
您必须将AppSettings
注入任何您想要使用它的地方。
有关更多详细信息,请查看此答案
在angular-cli.json中将文件条目添加到资产会将其原样复制到dist文件夹。
"assets": [
"assets",
"fav.ico",
"settings.json"
]