[英]The best way to handle environments in Angular with Typescript
您可以使用多個環境文件,以下是您的操作方法,當您構建時,您必須指定配置(例如:prod、test、uat)
您必須在 angular.json 文件中添加所有配置
"configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" } ] }, "develop": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.develop.ts" } ] }, "release": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.release.ts" } ] }, "uat": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.uat.ts" } ] }, }
為每個文件添加你的 url,當你在本地構建或提供你的應用程序時,你必須指定配置
ng build --configuration=uat // for uat env
ng serve --configuration=uat
或者
ng build --prod // for production env
以這種方式導入它,它會根據選擇的配置選擇正確的
import { environment } from 'src/environments/environment';
如果您使用 webpack,您可以創建一個 environment.ts 文件,其中所有環境特定數據作為對象中的屬性....
{
environment: 'dev',
baseurl: 'http://myBaseUrl'
}
為每個具有相同對象和屬性的環境(prod、qa 等)創建一個單獨的文件。 當您需要環境信息時,請導入普通的 environment.ts 文件....
然后在每個 webpack 配置中使用 NormalModuleReplacementPlugin...
new webpack.NormalModuleReplacementPlugin(/\.\/environment\./, './environment.qa.ts')
您基本上是在告訴 webpack,無論我在何處導入環境,將它替換為 environment.qa(或任何版本)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.