运行 ng build --prod 具有不同的环境设置
Run ng build --prod with different environment settings
我对每个客户都有不同的环境设置,每个客户都有自己的
{{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"
}
是否可以使用产品构建的所有功能,但使用一些不同的环境设置?
在您的环境文件中标记为生产模式:
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 步:
在环境目录中为 custA 创建一个 prod 环境文件。
例如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"
在Angular6+之后,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"
}
]
}
}
我对每个客户都有不同的环境设置,每个客户都有自己的 {{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"
}
是否可以使用产品构建的所有功能,但使用一些不同的环境设置?
在您的环境文件中标记为生产模式:
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 步: 在环境目录中为 custA 创建一个 prod 环境文件。 例如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"
在Angular6+之后,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"
}
]
}
}