これは簡単なように見えますが、解決策が見つかりませんでした。
では、アプリが運用モードまたは開発モードで実行されているかどうかを確認するにはどうすればよいですか?
この機能を試すことができますisDevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
1つのメモ:この関数には注意してください
if(isDevMode()) {
enableProdMode();
}
あなたが取得します
エラー:プラットフォームのセットアップ後にprodモードを有効にできません
https://angular.io/guide/deployment#enable-production-mode のAngularデプロイメントガイドに従って:
本番用にビルドする(または--environment = prodフラグを追加する)と、本番モードが有効になりますCLIで生成された
main.ts
を見て、これがどのように機能するかを確認します。
main.ts
には次のものがあります。
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
したがって、environment.production
をチェックして、実稼働中かどうかを確認してください。
ほとんどの場合、isDevMode()
を呼び出したくないでしょう。 https://angular.io/api/core/isDevMode のAngular APIドキュメントに従って:
一度呼び出された後、値はロックされ、それ以上変更されません...デフォルトでは、これを呼び出す前にユーザーがenableProdModeを呼び出さない限り、これはtrueです。
ng build --prod
ビルドからisDevMode()
を呼び出すと、常にtrueが返され、常に開発モードでの実行にロックされることがわかりました。代わりに、environment.production
をチェックして、実稼働中かどうかを確認してください。その後、実動モードのままになります。
@yurzuiが言ったように、Angularのmode
を知りたい場合は、{ isDevMode } from @angular/core
を呼び出す必要がありますが、その前にfalse
を呼び出した場合にのみenableProdMode
を返すことができます。
ビルド環境を知りたい場合、つまりアプリが縮小されているかどうかを確認する場合は、ビルドでビルド変数を設定する必要がありますsystem ... Webpack
を使用すると、たとえば、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();
これが私のコードだったので、同じエラーが発生しました。 3行目と4行目を入れ替えたところです。その場合、問題は修正済みです。したがって、モジュールをブートストラップする前に、-prodモードを有効にする必要があります。
正しいものはこの方法で置くことができます、
enableProdMode() platformBrowserDynamic().bootstrapModule(AppModule);