Esto parece fácil, pero no pude encontrar ninguna solución.
Entonces, ¿cómo verifico si mi aplicación se está ejecutando en modo de producción o en modo de desarrollo?
angular
production
maxbellec
fuente
fuente
platformBrowserDynamic().bootstrapModule(AppModule);
Según la guía de implementación angular en https://angular.io/guide/deployment#enable-production-mode :
main.ts
tiene lo siguiente:Así que verifica
environment.production
si estás en producción.Lo más probable es que NO quieras llamar
isDevMode()
. Según la documentación de la API angular en https://angular.io/api/core/isDevMode :Descubrí que llamar
isDevMode()
desde unang build --prod
compilación siempre devuelve verdadero y siempre te bloquea para ejecutarte en modo dev. En cambio, verifiqueenvironment.production
si está en producción. Entonces permanecerás en modo de producción.fuente
isDevMode()
es una forma perfectamente buena de lograrlo ese.depende de lo que estés preguntando ...
Si desea conocer
mode
Angular, como dijo @yurzui, debe llamar,{ isDevMode } from @angular/core
pero solo puede regresarfalse
si llamaenableProdMode
antes.Si desea conocer el entorno de compilación , en otras palabras, si su aplicación se ejecuta minimizada o no, debe establecer una variable de compilación en su sistema de compilación ... Utilizando
Webpack
, por ejemplo, debería echar un vistazodefinePlugin
.https://webpack.github.io/docs/list-of-plugins.html#defineplugin
fuente
Este era mi código, así que recibí el mismo error. Acabo de intercambiar las líneas 3 y 4. Luego se solucionó el problema . Entonces, antes del módulo de arranque, debemos habilitar el modo --prod.
El correcto se puede poner de esta manera,
fuente
Debe tener cuidado de verificar el valor de retorno de la
isDevMode()
función.Mi configuración fallaba porque estaba comprobando la existencia:
if (isDevMode)
siempretrue
, incluso en producción porque lo declaraba conimport { isDevMode } from '@angular/core';
.if (isDevMode())
devueltofalse
correctamentefuente
ng build --prod=true
cli angularif ( isDevMode )
solo comprueba si el identificador isDevMode está definido, no es nulo y no está vacío ni cero. Como el identificador se definió en@angular/core
que if () siempre devolverá verdadero . Ahora, enif( isDevMode() )
realidad llamará a la función y regresará si es un entorno de desarrollo o no.Simplemente verifique la variable de producción presente en el archivo de entorno, será verdadera para el modo de producción y falsa para el desarrollo.
fuente