Подтвердить что ты не робот

Как проверить, работает ли приложение Angular в режиме производства или разработки

Это кажется легким, но я не мог найти никакого решения.

Итак, как я могу проверить, работает ли мое приложение в рабочем режиме или в режиме разработки?

4b9b3361

Ответ 1

Вы можете попробовать эту функцию isDevMode

import { isDevMode } from '@angular/core';

...
export class AppComponent { 
  constructor() {
    console.log(isDevMode());
  }
}

Одно замечание: будьте осторожны с этой функцией

if(isDevMode()) {
  enableProdMode();
}

Ты получишь

Ошибка: не удается включить режим Prod после установки платформы

Ответ 2

В соответствии с руководством по угловому развертыванию по адресу https://angular.io/guide/deployment#enable-production-mode:

Сборка для производства (или добавление флага --environment = prod) включает производственный режим. Посмотрите на сгенерированный CLI 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 всегда возвращает true и всегда блокирует работу в режиме dev. Вместо этого, проверьте environment.production чтобы увидеть, если вы находитесь в производстве. Тогда вы останетесь в производственном режиме.

Ответ 3

это зависит от того, что вы просите...

Если вы хотите узнать mode из Angular, как сказал @yurzui, вам нужно позвонить { isDevMode } from @angular/core, но он может вернуть false, только если вы вызываете enableProdMode перед ним.

Если вы хотите узнать среду сборки, другими словами, если ваше приложение работает с минитипом или нет, вам нужно установить переменную сборки в вашей системе сборки... Используя Webpack, например, вы должны взглянуть на definePlugin.

https://webpack.github.io/docs/list-of-plugins.html#defineplugin

new webpack.DefinePlugin({
  ENV_PRODUCTION: !!process.env.NODE_ENV
});

Ответ 4

Еще один простой способ проверить это: Augury.

Обратите внимание, что это полезно только для вас при просмотре приложения в браузере. В расширении будет ясно указано, работает ли приложение в режиме dev или prod следующим образом:

Режим производства: введите описание изображения здесь

Режим разработки: введите описание изображения здесь

Ответ 5

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);