Мое приложение Angular 7.2.15 все еще находится в режиме разработки, несмотря на настройку производственной конфигурации и свойства.
Допустим, у меня есть следующие настройки:
environment.ts
export const environment = {
PRODUCTION: false
};
environment.production.ts
export const environment = {
PRODUCTION: true
};
Затем выполнение проекта с "ng serve" приведет к:
console.log("PRODUCTION?: " + environment.PRODUCTION): FALSE
console.log("isDevMode?: " + isDevMode()): TRUE
, что является правильным.
Но запуск с «ng serve --configuration = production» приведет к:
console.log("PRODUCTION?: " + environment.PRODUCTION): TRUE
console.log("isDevMode?: " + isDevMode()): TRUE
Консоль браузера показывает: «Angular работает в режиме разработки. Вызовите enableProdMode (), чтобы включитьрабочий режим. "
То же самое происходит при использовании" ng build "с указанным выше параметром.
В угловых документах говорится:
- prod = true: сокращение для"--configuration = производство". Если задано значение true, задает конфигурацию сборки для производственной цели.
- configuration = configuration: Именованная цель сборки, как указано в разделе «конфигурации» angular.json. Каждая именованная цель сопровождается настройкой параметров по умолчанию для этой цели. Установка этого значения в явном виде отменяет флаг «--prod»
. Дополнительная проверка и добавление «--prod» ничего не изменяет.
И согласно этому сообщению (старая версия Angular; https://stackoverflow.com/a/44782202/5446400) и взаимодействие environment.ts, производственное свойство, --configuration, --prod и enableProdMode (), я должен быть хорош для моей конфигурации. Не должно быть необходимости вызывать enableProdMode().
angular.json:
...
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.production.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
}
}
...
Итак, почему режим разработки по-прежнему включен?