Это кажется легким, но я не мог найти никакого решения.
Итак, как я могу проверить, работает ли мое приложение в рабочем режиме или в режиме разработки?
Это кажется легким, но я не мог найти никакого решения.
Итак, как я могу проверить, работает ли мое приложение в рабочем режиме или в режиме разработки?
Вы можете попробовать эту функцию isDevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
Одно замечание: будьте осторожны с этой функцией
if(isDevMode()) {
enableProdMode();
}
Ты получишь
Ошибка: не удается включить режим Prod после установки платформы
В соответствии с руководством по угловому развертыванию по адресу 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
чтобы увидеть, если вы находитесь в производстве. Тогда вы останетесь в производственном режиме.
Если вы хотите узнать 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
});
Еще один простой способ проверить это: Augury.
Обратите внимание, что это полезно только для вас при просмотре приложения в браузере. В расширении будет ясно указано, работает ли приложение в режиме dev или prod следующим образом:
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);