187 votes

Comment vérifier si Angulaire de l'application en cours d'exécution dans la Production ou le Développement de la mode

Cela semble facile, mais je ne pouvais pas trouver une solution.

Alors, comment puis-je vérifier si mon application est en cours d'exécution en mode de production ou dev mode?

284voto

yurzui Points 85802

Vous pouvez essayer cette fonction isDevMode

import { isDevMode } from '@angular/core';

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

Une remarque: attention à cette fonction

if(isDevMode()) {
  enableProdMode();
}

Vous obtiendrez

Erreur: Impossible d'activer le mode prod après la plate-forme d'installation

56voto

Ron DeSantis Points 99

Par l'angle de guide de Déploiement à https://angular.io/guide/deployment#enable-production-mode:

Bâtiment de production (ou en ajoutant l'option --environnement=prod drapeau) permet mode de production Oeil à l'interface de ligne de commande générée main.ts pour voir comment les travaux de cette.

main.ts sont les suivantes:

import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

Donc, vérifiez environment.production pour voir si vous êtes dans la production.

Très probablement, vous ne voulez PAS appeler isDevMode(). Par l'angle de la documentation de l'API à https://angular.io/api/core/isDevMode:

Après avoir appelé une seule fois, la valeur est verrouillé et ne change pas du tout... Par défaut, il est vrai, à moins qu'un utilisateur appelle enableProdMode avant l'appel de cette.

J'ai trouvé que l'appelant isDevMode() d'un ng build --prod construire renvoie toujours vrai et se bloque toujours vous lancer dans le dev mode. Au lieu de cela, vérifiez environment.production pour voir si vous êtes dans la production. Ensuite, vous séjournerez dans le mode de production.

5voto

Hitmands Points 1199

cela dépend de ce que vous demandez...

Si vous voulez connaître l' mode de Anguleuses, comme @yurzui dit, vous devez appeler { isDevMode } from @angular/core , mais il peut renvoyer false que si vous appelez enableProdMode avant elle.

Si vous voulez connaître l' environnement de compilation, en d'autres termes, si votre application est en cours d'exécution compacte ou non, vous devez définir un build variable dans votre système de construction... à l'Aide de Webpack, par exemple, vous devriez jeter un oeil à definePlugin.

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

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

2voto

DEEPAN KUMAR Points 108

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

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

C'était mon code, donc j'ai eu le même message d'erreur. J'ai juste échangé ligne 3 et 4. Alors la question est fixe. Donc, avant d'amorçage module de nous devrait permettre --prod mode.

Le bon peut être mis dans cette voie,

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X