Parece fácil, mas não consegui encontrar nenhuma solução.
Então, como verifico se meu aplicativo está sendo executado no modo de produção ou no modo dev?
angular
production
maxbellec
fonte
fonte
platformBrowserDynamic().bootstrapModule(AppModule);
De acordo com o guia Angular Deployment em https://angular.io/guide/deployment#enable-production-mode :
main.ts
tem o seguinte:Portanto, verifique
environment.production
se você está em produção.Provavelmente você NÃO deseja ligar
isDevMode()
. De acordo com a documentação da API Angular em https://angular.io/api/core/isDevMode :Descobri que a chamada
isDevMode()
de umang build --prod
compilação sempre retorna true e sempre o impede de executar no modo dev. Em vez disso, verifiqueenvironment.production
se você está em produção. Então você permanecerá no modo de produção.fonte
isDevMode()
é uma maneira perfeitamente adequada de realizar aquele.depende do que você está perguntando ...
Se você quiser conhecer o
mode
Angular, como @yurzui disse, é necessário ligar,{ isDevMode } from @angular/core
mas elefalse
só poderá retornar se você ligarenableProdMode
antes.Se você deseja conhecer o ambiente de compilação , em outras palavras, se seu aplicativo está sendo minificado ou não, você precisa definir uma variável de compilação no seu sistema de compilação ... Usando
Webpack
, por exemplo, você deve dar uma olhadadefinePlugin
.https://webpack.github.io/docs/list-of-plugins.html#defineplugin
fonte
Este era o meu código, então recebi o mesmo erro. Troquei as linhas 3 e 4. Em seguida, o problema foi resolvido . Portanto, antes do módulo de inicialização, devemos ativar o modo --prod.
O correto pode ser colocado dessa maneira,
fonte
Você deve ter cuidado para verificar o valor de retorno da
isDevMode()
função.Minha configuração estava falhando porque eu estava verificando a existência:
if (isDevMode)
estava sempretrue
, mesmo em produção, porque eu a declareiimport { isDevMode } from '@angular/core';
.if (isDevMode())
retornoufalse
corretamente.fonte
ng build --prod=true
via angular CLIif ( isDevMode )
verifica apenas se o identificador isDevMode está definido, não é nulo e não está vazio nem é zero. Como o identificador foi definido em@angular/core
que se () sempre retornará verdadeiro . Agora,if( isDevMode() )
realmente chamará a função e retornará se for um ambiente de desenvolvimento ou não.Basta verificar a variável de produção presente no arquivo de ambiente, será verdadeira para o modo de produção e falsa para o desenvolvimento.
fonte