2017-07-26 69 views
0

我有一个Angular 2项目的一些配置文件用于访问微服务。该项目由Jenkins自动部署和构建到不同的服务器。这个过程可能会显示像这样enter image description here一个项目的角度2个不同的配置

问题是:如何为每个服务器创建自定义配置。选项
environment.{$server_name}.ts不好,因为在我的情况下,服务器的数量可能会很大。

UPDATE:

配置文件containe微服务的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 + '/'; 
    } 
}; 

此外,我可以有一个needes只有在特定的服务器的其他配置文件。

我的应用程序是CMS,所以我想要一个源代码,但对于每个项目我想更改本地配置文件。

在每台服务器上放置的结果为ng build --prod --aot,所以普通的css,js等内容。

感谢您的回答!

+1

配置包含什么,以及每台服务器上运行的是什么?例如,是否有节点实例? – msanford

+0

你可以有一个预先构建的步骤,根据任何内容生成'environment.ts'。 – 2017-07-26 16:47:46

+0

@msanford嗨!我更新了这个问题,你可以检查一下吗? –

回答

2

您可能想考虑在每台服务器上公开一个Web服务,并使用您的应用程序的所有配置属性。然后,您可以使用APP_INITIALIZER在启动时调用Web服务并存储这些配置属性。

这样做的最大好处是你只需要1个构建适用于所有不同的环境。此外,可以在不重建项目的情况下更改配置。

检查this Plunker example如何使用它。

编辑:如果您发现此方法适合您的需要,您可能还想检查this SO topic。 (只是要警惕一些使用Angular RC的旧例子而不是最终版本