2017-07-26 85 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的舊例子而不是最終版本

相關問題