Cela semble facile, mais je n’ai trouvé aucune solution.
Alors, comment vérifier si mon application fonctionne en mode production ou en mode dev?
Vous pouvez essayer cette fonction isDevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
Une note : soyez prudent avec cette fonction
if(isDevMode()) {
enableProdMode();
}
Tu auras
Erreur: Impossible d'activer le mode prod après la configuration de la plate-forme
Selon le Angular Guide de déploiement à l'adresse https://angular.io/guide/deployment#enable-production-mode :
La construction pour la production (ou l’ajout de l’indicateur --environment = prod) active le mode de production . Regardez le
main.ts
généré par la CLI pour voir comment travaux.
main.ts
a les caractéristiques suivantes:
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
Vérifiez donc environment.production
pour voir si vous êtes en production.
Très probablement, vous ne souhaitez PAS appeler isDevMode()
. Selon la Angular API documentation à l'adresse https://angular.io/api/core/isDevMode :
Après avoir appelé une fois, la valeur est verrouillée et ne changera plus ... Par défaut, c'est vrai, à moins qu'un utilisateur appelle enableProdMode avant d'appeler ceci.
J'ai trouvé que l'appel de isDevMode()
à partir d'un build ng build --prod
renvoie toujours la valeur true et vous oblige toujours à exécuter en mode dev. Au lieu de cela, vérifiez environment.production
pour voir si vous êtes en production. Ensuite, vous resterez en mode production.
Si vous voulez connaître la mode
de Angular, comme @yurzui l’a dit, vous devez appeler { isDevMode } from @angular/core
mais il ne peut renvoyer false
que si vous appelez enableProdMode
auparavant.
Si vous souhaitez connaître l'environnement de construction , en d'autres termes, si votre application est en cours d'exécution ou non, vous devez définir une variable de construction dans votre version. system ... En utilisant 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
});
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, alors j'ai eu la même erreur. Je viens d'échanger les lignes 3 et 4. Ensuite, le problème est corrigé. Donc, avant d’amorcer le module, nous devrions activer le mode --prod.
Le correct peut être mis de cette façon,
enableProdMode() platformBrowserDynamic().bootstrapModule(AppModule);