Saltar al contenido

Cómo verificar si la aplicación Angular se ejecuta en modo Producción o Desarrollo

Contamos con tu ayuda para compartir nuestros ensayos en referencia a las ciencias de la computación.

Solución:

Puedes usar esta función esDevMode

import  isDevMode  from '@angular/core';

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

Una nota: ten cuidado con esta función

if(isDevMode()) 
  enableProdMode();

Conseguirás

Error: no se puede habilitar el modo de producción después de la configuración de la plataforma

  • https://github.com/angular/angular/blob/2.0.0/modules/%40angular/core/src/application_ref.ts#L58

Otras opciones

Variable ambiental

import  environment  from 'src/environments/environment';

if (environment.production) 
  //

inyectado por la variable webpack process.env.NODE_ENV

declare let process: any;
const env = process.env.NODE_ENV;

if (env  === 'production') 
  //

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 modo de producción Mire el CLI generado main.ts para ver cómo funciona esto.

main.ts tiene lo siguiente:

import  environment  from './environments/environment';

if (environment.production) 
  enableProdMode();

así que revisa environment.production para ver si está en producción.

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

Después de llamarlo una vez, el valor se bloquea y no cambiará más… Por defecto, esto es truea menos que un usuario llame a enableProdMode antes de llamar a this.

He encontrado ese llamado isDevMode() desde un ng build --prod construir siempre regresa true y siempre te obliga a ejecutar en modo de desarrollo. En su lugar, compruebe environment.production para ver si está en producción. Entonces permanecerá en modo de producción.

depende de lo que preguntes…

Si quieres saber el mode de Angular, como dijo @yurzui, debes llamar isDevMode from @angular/core pero puede volver false solo si llamas enableProdMode antes de eso.

Si quieres saber el entorno de construcciónen otras palabras, si su aplicación se está ejecutando minimizada o no, debe establecer una variable de compilación en su sistema de compilación… Usando Webpackpor ejemplo, deberías echar un vistazo a definePlugin.

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

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

Te mostramos comentarios y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *