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

7
我是一位有用的助手,可以翻译文本。

每个客户都有自己的{{custName}}/environment.prod.ts文件,因此我为每个客户设置了不同的环境。 我希望在使用ng build --prod命令时,能够使用他们各自的prod环境文件。 问题是,即使指定了环境,它仍然使用默认的environment.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"
}

是否可以使用生产构建的所有功能,但使用一些不同的环境设置?

3个回答

7

在 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"
                }
              ]
            }
          }

2

在您的环境文件中将其标记为生产模式:

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: 在环境目录内创建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"

不,它与路径无关。 - Riya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接