tutorial proyecto instalar español crear compilar cli angular production

proyecto - instalar angular 5



Cómo verificar si la aplicación angular se ejecuta en modo Producción o Desarrollo (5)

depende de lo que estés preguntando ...

Si desea conocer el mode de Angular, como dijo @yurzui, debe llamar a { isDevMode } from @angular/core pero puede devolver false solo si llama a enableProdMode 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 ... Usando Webpack , por ejemplo, debería echar un vistazo a definePlugin .

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

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

Esto parece fácil, pero no pude encontrar ninguna solución.

Entonces, ¿cómo verifico si mi aplicación se ejecuta en modo de producción o en modo de desarrollo?


Debe tener cuidado de verificar el valor de retorno de la función isDevMode() .

Mi configuración fallaba porque estaba comprobando la existencia: if (isDevMode) siempre fue true , incluso en producción porque lo declaré con import { isDevMode } from ''@angular/core''; .

if (isDevMode()) devolvió false correctamente.



Según la guía de implementación angular en https://angular.io/guide/deployment#enable-production-mode :

Construir para producción (o agregar el indicador --environment = prod) habilita el modo de producción Mire main.ts generado por main.ts para ver cómo funciona.

main.ts tiene lo siguiente:

import { environment } from ''./environments/environment''; if (environment.production) { enableProdMode(); }

Por lo tanto, compruebe environment.production para ver si está en producción.

Lo más probable es que NO desee llamar a isDevMode() . Según la documentación de la API angular en https://angular.io/api/core/isDevMode :

Después de llamar una vez, el valor está bloqueado y no cambiará más ... Por defecto, esto es cierto, a menos que un usuario llame a enableProdMode antes de llamar a esto.

Descubrí que llamar a isDevMode() desde una ng build --prod build siempre devuelve verdadero y siempre te bloquea para que te ng build --prod en modo dev. En su lugar, verifique el environment.production para ver si está en producción. Entonces permanecerás en modo de producción.


import { platformBrowserDynamic } from ''@angular/platform-browser-dynamic'' import { enableProdMode } from ''@angular/core''; import { AppModule } from ''./app.module''

platformBrowserDynamic().bootstrapModule(AppModule); enableProdMode();

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,

enableProdMode() platformBrowserDynamic().bootstrapModule(AppModule);