我不鼓勵你將相同的構建部署兩三次,因爲你會錯過代碼縮小和捆綁生產服務器。
你可以不要設置什麼了建設任務VSTS:所以你可以,例如,運行npm your-build-task --prod
當你的代碼推到生產分支,只是當推掌握npm yourbuild-task
或開發分支,等。
在你的AppModule(或任何模塊,你有你的服務),您可以設置如下:
providers: [
...
{
provide: API_CONFIG, useFactory: apiConfigFactory
}
...
]
...
export function apiConfigFactory() {
if (environment.production) {
return MY_PROD_API_CONFIG;
} else {
return MY_DEV_API_CONFIG;
}
}
而且這樣一來,你可以設置你的基本URL中的每個配置對象:一個指向產品,一個指向開發,你可以簡單地注入t API_CONFIG獲取正確的基礎API網址。但是,如果你想保持相同的版本,你可以做類似的事情,但是在你的apiFactoryConfig
函數中,你需要一些邏輯來區分環境:比如檢查瀏覽器的基地azurewebsites.net
URL或類似的東西。
謝謝你的建議。我認爲我可以將問題簡化爲以下幾點:我有3個環境的構建,我需要一些機制來區分它們。 Azure具有每個部署插槽的應用設置,因此我的意圖是閱讀它們。如果這是不可能的,我會回到3部署3部署。你提到的URL方法會失敗,如果我決定將應用程序部署到另一個URL或像這樣。 – user3838018