一个项目的Angular 2个不同的配置

时间:2017-07-26 14:57:40

标签: javascript angular jenkins

我有一个Angular 2项目,其中包含一些用于访问微服务的配置文件。该项目由Jenkins自动部署和构建到不同的服务器。该过程可以显示为enter image description here

问题是:如何为每个服务器创建自定义配置。选项与
 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和其他内容。

感谢您的回答!

1 个答案:

答案 0 :(得分:2)

您可能需要考虑在每台服务器上公开具有应用程序所有配置属性的Web服务。然后,您可以使用https://1drv.ms/f/s!AgSrwi8NCr0BgxjmFpQ0vOdF6Wpg在启动时调用Web服务并存储这些配置属性。

这样做的最大好处是您只需要为所有不同环境构建一个版本。此外,可以在不重建项目的情况下更改配置。

检查APP_INITIALIZER如何使用它。

修改:如果您发现此方法符合您的需求,您可能还需要检查this Plunker example。 (请注意使用Angular RCs而不是最终版本的一些较旧的示例)