Как проверить, работает ли приложение Angular в режиме производства или разработки
Это кажется легким, но я не мог найти никакого решения.
Итак, как проверить, работает ли мое приложение в режиме производства или dev?
4 ответов
Вы можете попробовать эту функцию isDevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
Примечание: будьте осторожны с этой функцией
if(isDevMode()) {
enableProdMode();
}
Вы получаете
ошибка: не удается включить режим prod после установки платформы
это зависит от того, что вы просите...
если вы хотите знать mode
угловой, как сказал @yurzui, вам нужно позвонить { isDevMode } from @angular/core
но он может вернуться false
только если вы называете enableProdMode
перед ним.
если вы хотите знать среда, другими словами, если ваше приложение работает minified или нет, вам нужно установить переменную сборки в вашей системе сборки... Используя Webpack
, например, вы должны взглянуть на definePlugin
.
https://webpack.github.io/docs/list-of-plugins.html#defineplugin
new webpack.DefinePlugin({
ENV_PRODUCTION: !!process.env.NODE_ENV
});
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
import { enableProdMode } from '@angular/core';
import { AppModule } from './app.module'
platformBrowserDynamic().bootstrapModule(AppModule);
enableProdMode();
Это был мой код, поэтому я получил ту же ошибку. Я просто поменял местами линии 3 и 4. Тогда проблема основные. Поэтому перед загрузкой модуля мы должны включить режим -- prod.
правильный можно поставить таким образом,
enableProdMode()
platformBrowserDynamic().bootstrapModule(AppModule);
в руководстве угловые развертывания в https://angular.io/guide/deployment#enable-production-mode:
создание для производства (или добавление флага --environment=prod) включает режим производства посмотрите на CLI-generated
main.ts
чтобы увидеть, как эта работа.
main.ts
имеет следующие:
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
чтобы проверить environment.production
чтобы увидеть, если вы находитесь в производство.
скорее всего, вы делаете Не хочу звонить isDevMode()
. В соответствии с документацией Angular API в https://angular.io/api/core/isDevMode:
после вызова один раз значение заблокировано и больше не изменится... По умолчанию это верно, если пользователь не вызывает enableProdMode перед вызовом этого.
я нашел, что вызов isDevMode()
С ng build --prod
build всегда возвращает true и всегда блокирует работу в режиме dev. Вместо этого проверьте environment.production
чтобы увидеть, если вы в производстве. Тогда вы останетесь в производственном режиме.