我有一个Angular 2项目,其中包含一些用于访问微服务的配置文件。该项目由Jenkins自动部署和构建到不同的服务器。该过程可以显示为
问题是:如何为每个服务器创建自定义配置。选项与
environment.{$server_name}.ts
不好,因为在我看来,服务器数量可能很大。
更新
配置文件容器微服务URL,例如:
export const MSConfigAPI = {
protocol: 'http',
baseUrl: 'some-url',
version: 'v1',
port: '8082',
clientId: 'api_user',
clientSecret: 'pass',
getUrl: () => {
return MSConfigAPI.protocol + '://' + MSConfigAPI.baseUrl + ':' + MSConfigAPI.port + '/' + MSConfigAPI.version + '/';
}
};
此外,我还可以拥有仅适用于特定服务器的其他配置文件。
我的应用是CMS,所以我想拥有一个源代码,但是对于每个项目,我想要更改本地配置文件。
在每个服务器上放置ng build --prod --aot
的结果,所以普通的css,js和其他内容。
感谢您的回答!
答案 0 :(得分:2)
您可能需要考虑在每台服务器上公开具有应用程序所有配置属性的Web服务。然后,您可以使用https://1drv.ms/f/s!AgSrwi8NCr0BgxjmFpQ0vOdF6Wpg在启动时调用Web服务并存储这些配置属性。
这样做的最大好处是您只需要为所有不同环境构建一个版本。此外,可以在不重建项目的情况下更改配置。
检查APP_INITIALIZER如何使用它。
修改:如果您发现此方法符合您的需求,您可能还需要检查this Plunker example。 (请注意使用Angular RCs而不是最终版本的一些较旧的示例)