使用不同的环境设置运行ng build --prod

时间:2018-06-29 12:01:15

标签: angular build angular-cli production-environment package.json

我对每个客户都有不同的环境设置,每个客户都有自己的环境 {{custName}} / environment.prod.ts文件。 我想通过ng build --prod命令使用它们各自的prod环境文件。 我面临的问题甚至是在使用默认环境指定环境之后。prod.ts

我的 package.json 具有类似

的脚本
{.....
   customer_a : "ng build --prod --environment=custA_prod",
....}

angular-cli.json 中,我提到了类似这样的路径

  "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts",
        "qa": "environments/environment.qa.ts",
        "custA_prod": "environments/custA/environment.prod.ts"
}

是否可以使用prod build的所有功能,但具有一些不同的环境设置?

3 个答案:

答案 0 :(得分:1)

在环境文件上标记为生产模式:

environments / custA / environment.prod.ts文件:

export const environment = {
  production: true,
  envName: "custA_prod",
  .....
};

或添加main.ts您的自定义检查:

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production || environment.envName == 'custA_prod') {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

答案 1 :(得分:1)

我认为定义新环境的相对路径存在问题。

步骤1: 在环境目录中为custA创建产品环境文件。 例如 environment.custA.prod.ts

export const environment = { 
   mock: false,
   production: true,
   development: false,
   title: 'prod'
}

第2步: .angular-cli.json

中定义环境
environments: {
  "dev": "environments/environment.app.ts",
   "prod": "environments/environment.app.prod.ts",
   "mock": "environments/environment.app.mock.ts",
   "prod-custA": "environments/environment.custA.prod.ts"
}

第3步: package.json

中定义一个脚本
start-prod-custA : "ng build --prod --environment=prod-custA"

答案 2 :(得分:1)

Angular 6+之后,angular.cli.json已替换为angular.json。我们应该使用--configuration作为波纹管

package.json

"build_dev": "npm run && ng build --configuration=test",

angular.json

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