Cela semble facile, mais je n'ai trouvé aucune solution.
Alors, comment vérifier si mon application fonctionne en mode production ou en mode développement?
angular
production
maxbellec
la source
la source
platformBrowserDynamic().bootstrapModule(AppModule);
Selon le guide de déploiement angulaire à l' adresse https://angular.io/guide/deployment#enable-production-mode :
main.ts
a ce qui suit:Vérifiez donc
environment.production
si vous êtes en production.Vous ne souhaitez probablement PAS appeler
isDevMode()
. Selon la documentation de l'API Angular à l' adresse https://angular.io/api/core/isDevMode :J'ai trouvé que l'appel à
isDevMode()
partir d'uneng build --prod
construction renvoie toujours true et vous verrouille toujours dans l'exécution en mode dev. Vérifiez plutôtenvironment.production
si vous êtes en production. Ensuite, vous resterez en mode production.la source
isDevMode()
c'est une manière parfaitement appropriée d'accomplir cette.cela dépend de ce que vous demandez ...
Si vous voulez connaître le
mode
of Angular, comme @yurzui l'a dit, vous devez appeler{ isDevMode } from @angular/core
mais il ne peut revenirfalse
que si vous appelezenableProdMode
avant.Si vous voulez connaître l' environnement de construction , en d'autres termes, si votre application est en cours d'exécution minifiée ou non, vous devez définir une variable de construction dans votre système de construction ... En utilisant
Webpack
, par exemple, vous devriez jeter un œil àdefinePlugin
.https://webpack.github.io/docs/list-of-plugins.html#defineplugin
la source
C'était mon code, donc j'ai eu la même erreur. Je viens d'échanger les lignes 3 et 4. Ensuite, le problème est résolu . Donc, avant de démarrer le module, nous devons activer le mode --prod.
Le bon peut être mis de cette façon,
la source
Vous devez faire attention à vérifier la valeur de retour de la
isDevMode()
fonction.Ma configuration échouait parce que je vérifiais l'existence:
if (isDevMode)
était toujourstrue
, même en production parce que je l'ai déclarée avecimport { isDevMode } from '@angular/core';
.if (isDevMode())
renvoyéfalse
correctement.la source
ng build --prod=true
via angular cliif ( isDevMode )
vérifie uniquement si l'identificateur isDevMode est défini, non nul, ni vide ni nul. Comme l'identificateur a été défini@angular/core
, if () retournera toujours true . Maintenant,if( isDevMode() )
appellera réellement la fonction et elle retournera si c'est l'environnement de développement ou non.Vérifiez simplement la variable de production présente dans le fichier d'environnement, elle sera vraie pour le mode production et fausse pour le développement.
la source