在Angular 5中按环境切换开发模式和产品模式

问题描述

我的angular-cli.json具有环境数组。

"environmentsSource": "environments/environment.ts"
"environments": {
    "dev": "environments/environment.ts","prod": "environments/environment.prod.ts"

environment.ts中,

export const environment = {
      production: false
};

environment.prod.ts

export const environment = {
      production: true
};

main.ts中,

if (environment.production) {
    enableProdMode();
}

但是我只有一个package.josn文件

"scripts": {
    "ng": "ng","start": "ng serve","build": "ng build"

我有不同的环境,例如dev / qa和prod。网址不同,如何只为一个package.json文件切换模式?

构建和部署过程是自动进行的。构建时我们无法更改设置。

解决方法

您需要在CLI中引用configuration

运行生产环境的示例。

ng serve --configuration=prod

这会将environment.ts文件替换为environment.prod.ts

您可以在环境文件中设置所有需要的变量(url,...)。

在代码中,您只需要读取环境文件。它将由有角度的CLI配置参数代替。您可以在angular.json文件中对此参数进行设置。

"configurations": {
    "prod": {
        "fileReplacements": [
            {
                "replace": "apps/afh/src/environments/environment.ts","with": "apps/afh/src/environments/environment.prod.ts"
            }
        ],...
    }
}
,

main.ts中,我检查了document.location.host的值。如果它包含特定的子字符串,那么我

enableProdMode()