जवाबों:
आप इस फ़ंक्शन का उपयोग कर सकते हैं .DevMode
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
एक टिप्पणी : सावधान हो इस समारोह के साथ
if(isDevMode()) {
enableProdMode();
}
तुम्हे मिल जाएगा
त्रुटि: प्लेटफ़ॉर्म सेटअप के बाद ठेस मोड को सक्षम नहीं किया जा सकता है
वातावरण विविधता
import { environment } from 'src/environments/environment';
if (environment.production) {
//
}
webpack process.env.NODE_ENV चर द्वारा इंजेक्ट किया गया
declare let process: any;
const env = process.env.NODE_ENV;
if (env === 'production') {
//
}
platformBrowserDynamic().bootstrapModule(AppModule);
Https://angular.io/guide/deployment#enable-production-mode पर कोणीय परिनियोजन मार्गदर्शिका के अनुसार :
उत्पादन के लिए भवन (या - thevironment) = फ्लैगशिप को जोड़ना उत्पादन मोड को सक्षम बनाता है यह देखने के लिए CLI- जनरेट
main.ts
करें कि यह कैसे काम करता है।
main.ts
निम्नलिखित है:
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
इसलिए यह देखने के environment.production
लिए जांचें कि क्या आप उत्पादन में हैं।
सबसे अधिक संभावना है कि आप कॉल नहीं करना चाहते हैं isDevMode()
। Https://angular.io/api/core/isDevMode पर कोणीय एपीआई प्रलेखन प्रति :
एक बार कॉल करने के बाद, मान लॉक हो जाता है और कोई और परिवर्तन नहीं करेगा ... डिफ़ॉल्ट रूप से, यह सच है, जब तक कि उपयोगकर्ता कॉल करने के बाद EnableProdMode को कॉल नहीं करता है।
मैंने पाया है कि isDevMode()
एक ng build --prod
बिल्ड से कॉल करना हमेशा सही रहता है और हमेशा आपको देव मोड में चलने से रोकता है। इसके बजाय, यह देखने के environment.production
लिए जांचें कि क्या आप उत्पादन में हैं। फिर आप उत्पादन मोड में रहेंगे।
isDevMode()
यह पूरी तरह से ठीक तरीका है उस।
यदि आप mode
कोणीय के बारे में जानना चाहते हैं , तो @yurzui ने कहा, आपको कॉल करने की आवश्यकता है { isDevMode } from @angular/core
लेकिन यह false
तभी वापस आ सकता है जब आप कॉल करेंenableProdMode
इससे पहले करते हैं।
यदि आप बिल्ड पर्यावरण को जानना चाहते हैं , तो दूसरे शब्दों में, यदि आपका ऐप मिनिमाइज्ड चल रहा है या नहीं, तो आपको अपने बिल्ड सिस्टम में बिल्ड वैरिएबल सेट करने की आवश्यकता है ... 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 को इंटरचेंज किया है। फिर यह मुद्दा तय हो गया है । इसलिए बूटस्ट्रैपिंग मॉड्यूल से पहले हमें -प्रोड मोड को सक्षम करना चाहिए।
सही एक को इस तरह से रखा जा सकता है,
enableProdMode()
platformBrowserDynamic().bootstrapModule(AppModule);
आपको सावधान रहना चाहिए कि आप isDevMode()
फ़ंक्शन के रिटर्न मान की जांच करते हैं ।
मेरा सेटअप विफल हो रहा था क्योंकि मैं अस्तित्व के लिए जाँच कर रहा था: if (isDevMode)
हमेशा true
उत्पादन में भी था , क्योंकि मैंने इसे घोषित किया थाimport { isDevMode } from '@angular/core';
।
if (isDevMode())
false
सही ढंग से लौटा ।
ng build --prod=true
कोणीय cli
if ( isDevMode )
केवल जाँचता है कि पहचानकर्ता है .DevMode परिभाषित है, शून्य नहीं है, और न ही खाली है और न ही शून्य है। के रूप में पहचानकर्ता में परिभाषित किया गया था @angular/core
कि अगर () हमेशा सच वापस आ जाएगा । अब, if( isDevMode() )
वास्तव में फ़ंक्शन को कॉल करेगा और यह वापस आएगा यदि यह विकास का वातावरण है या नहीं।
बस पर्यावरण फ़ाइल में मौजूद उत्पादन चर की जांच करें, यह उत्पादन मोड के लिए सही होगा और विकास के लिए गलत होगा।
import { environment } from 'src/environments/environment';
if (environment.production) {
// for production
} else {
// for development
}