Я хотел бы создать ng build --qa, где он собирает environment.qa.ts и выполняет AOT, объединение и удаление мертвого кода, но не минификацию и унификацию
Как бы это сделать в Angular 5.2





Если вы используете angular6, вам необходимо добавить свой environment.qa.ts в свои конфигурации angular.json.
Сделав это как в разделе build, так и в разделе configuration, просто запустите ng build --configuration=qa.
В angular6 мы делаем это, как показано ниже:
Создайте свой собственный файл environment.qa.ts внутри папки окружения. Где вы можете редактировать подробности или вы можете добавить дополнительные сведения, например URL-адрес для вашей среды qa:
export const environment = {
production: false,
URL:'http://something:8200'
}
Теперь в angular.json вам нужно будет добавить конфигурацию qa внутри конфигурации, а также вам нужно упомянуть замену файла там.
"configurations": {
"qa": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.qa.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
}
}
Вам решать, если вы хотите, чтобы buildOptimizer, оптимизация и все, что нужно было сделать в qa build, вы можете использовать как истинное значение или удалить эти параметры.
3.Завершите сборку с помощью этой команды ng build --configuration = qa
@kumar, если вы последуете вышеизложенному, получаете ли вы какую-либо ошибку?
Это также может помочь вам ссылка
Можно ли запустить его как ng build --qa? Если мы сможем запустить ng build --prod, это тоже должно быть каким-то образом.
Для версии angular 5 вам просто нужно создать файлы среды, например:
/src/environments/environment.prod.ts
environment.qa.ts
environment.ts
Затем в angular.cli.json:
{
...
app [
{
...
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts",
"qa": "environments/environment.qa.ts"
}
А с консоли достаточно выполнить следующую команду:
ng build --env=qa
Вы можете провести тест и увидеть, что значения, взятые в этом случае, являются значениями из environment.qa.ts
Создайте свой environment.qa.ts внутри папки окружающая среда.

Затем перейдите в файл angular.json и В разделе параметров конфигурации добавьте конфигурацию для QA как
"qa": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.qa.ts"
}
]
},
Затем перейдите в package.json и добавьте раздел скрипта, как показано ниже.
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod --aot --build-optimizer",
"build:prod": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --c prod --build-optimizer --aot",
"build:qa": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --c qa --build-optimizer --aot",
"build:dev": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --c dev --build-optimizer --aot",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
тогда вы можете запустить npm run build:qa для qa и npm run build:dev для dev и npm run build:prod для prod
Я использую angular 5.2, как бы я это сделал в angular 5.2