Ini sepertinya mudah, tetapi saya tidak dapat menemukan solusi.
Jadi, bagaimana cara memeriksa apakah aplikasi saya berjalan dalam mode produksi atau mode dev?
angular
production
maxbellec
sumber
sumber
platformBrowserDynamic().bootstrapModule(AppModule);
Per panduan Penerapan Angular di https://angular.io/guide/deployment#enable-production-mode :
main.ts
memiliki yang berikut:Jadi periksa
environment.production
untuk melihat apakah Anda sedang dalam produksi.Kemungkinan besar Anda TIDAK ingin menelepon
isDevMode()
. Per dokumentasi API Sudut di https://angular.io/api/core/isDevMode :Saya telah menemukan bahwa memanggil
isDevMode()
daring build --prod
build selalu mengembalikan true dan selalu mengunci Anda agar berjalan dalam mode dev. Sebagai gantinya, periksaenvironment.production
untuk melihat apakah Anda sedang dalam produksi. Maka Anda akan tetap dalam mode produksi.sumber
isDevMode()
adalah cara yang sangat baik untuk mencapai bahwa.itu tergantung pada apa yang Anda tanyakan ...
Jika Anda ingin mengetahui
mode
Angular, seperti yang dikatakan @yurzui, Anda perlu menelepon{ isDevMode } from @angular/core
tetapi itufalse
hanya akan kembali jika Anda meneleponenableProdMode
sebelumnya.Jika Anda ingin mengetahui lingkungan build , dengan kata lain, jika aplikasi Anda berjalan minimal atau tidak, Anda perlu menetapkan variabel build di sistem build Anda ... Menggunakan
Webpack
, misalnya, Anda harus melihatnyadefinePlugin
.https://webpack.github.io/docs/list-of-plugins.html#defineplugin
sumber
Ini kode saya, jadi saya mendapat kesalahan yang sama. Saya baru saja menukar baris 3 dan 4. Kemudian masalah diperbaiki . Jadi sebelum modul bootstrap kita harus mengaktifkan mode --prod.
Yang benar bisa dimasukkan dengan cara ini,
sumber
Anda harus berhati-hati bahwa Anda memeriksa nilai balik
isDevMode()
fungsi.Pengaturan saya gagal karena saya memeriksa keberadaan:
if (isDevMode)
selalutrue
, bahkan dalam produksi karena saya menyatakannya denganimport { isDevMode } from '@angular/core';
.if (isDevMode())
dikembalikanfalse
dengan benar.sumber
ng build --prod=true
melalui sudut sudutif ( isDevMode )
hanya memeriksa jika identifier isDevMode didefinisikan, bukan nol, dan tidak kosong atau nol. Sebagai pengidentifikasi didefinisikan@angular/core
bahwa if () akan selalu mengembalikan true . Sekarang,if( isDevMode() )
sebenarnya akan memanggil fungsi dan itu akan kembali jika itu lingkungan pengembangan atau tidak.Cukup periksa variabel produksi yang ada di file lingkungan, itu akan benar untuk mode produksi dan salah untuk pengembangan.
sumber