Как проверить, работает ли приложение 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 чтобы увидеть, если вы в производстве. Тогда вы останетесь в производственном режиме.