Это кажется простым, но я не смог найти никакого решения.
Итак, как мне проверить, работает ли мое приложение в рабочем режиме или в режиме разработки?
angular
production
maxbellec
источник
источник
platformBrowserDynamic().bootstrapModule(AppModule);
Согласно руководству по развертыванию Angular по адресу https://angular.io/guide/deployment#enable-production-mode :
main.ts
имеет следующее:Так что проверьте
environment.production
, находитесь ли вы в производстве.Скорее всего, вы НЕ хотите звонить
isDevMode()
. Согласно документации Angular API на https://angular.io/api/core/isDevMode :Я обнаружил, что вызов
isDevMode()
изng build --prod
сборки всегда возвращает true и всегда блокирует работу в режиме разработки. Вместо этого проверьтеenvironment.production
, находитесь ли вы в производстве. Тогда вы останетесь в производственном режиме.источник
isDevMode()
это отличный способ выполнить который.это зависит от того, о чем вы спрашиваете ...
Если вы хотите узнать
mode
об Angular, как сказал @yurzui, вам нужно позвонить,{ isDevMode } from @angular/core
но он может вернуться,false
только если вы позвонитеenableProdMode
до него.Если вы хотите узнать среду сборки , другими словами, работает ли ваше приложение в миниатюре или нет, вам необходимо установить переменную сборки в вашей системе сборки ... Используя
Webpack
, например, вы должны взглянуть наdefinePlugin
.https://webpack.github.io/docs/list-of-plugins.html#defineplugin
источник
Это был мой код, поэтому я получил ту же ошибку. Я просто поменял местами строки 3 и 4. Тогда проблема исправлена . Поэтому перед загрузкой модуля мы должны включить режим --prod.
Правильный можно поставить так,
источник
Будьте осторожны, проверяя возвращаемое значение
isDevMode()
функции.Моя установка не удалась, потому что я проверял наличие:
if (isDevMode)
всегдаtrue
, даже в производстве, потому что я заявил об этом с помощьюimport { isDevMode } from '@angular/core';
.if (isDevMode())
вернулсяfalse
правильно.источник
ng build --prod=true
помощью angularif ( isDevMode )
только проверяет, определен ли идентификатор isDevMode , а не ноль, не пустой и не ноль. Поскольку идентификатор был определен в@angular/core
том, что if () всегда будет возвращать true . Теперьif( isDevMode() )
фактически вызовет функцию, и она вернется, если это среда разработки или нет.Просто проверьте производственную переменную, присутствующую в файле среды, она будет верна для производственного режима и ложна для разработки.
источник