উত্তর:
আপনি এই ফাংশনটি ডেভমড ব্যবহার করতে পারেন
import { isDevMode } from '@angular/core';
...
export class AppComponent {
constructor() {
console.log(isDevMode());
}
}
একটি নোট : এই ফাংশনটি সম্পর্কে সাবধান
if(isDevMode()) {
enableProdMode();
}
তুমি পাবে
ত্রুটি: প্ল্যাটফর্ম সেটআপের পরে প্রোড মোড সক্ষম করা যায় না
পরিবেশ সূচক
import { environment } from 'src/environments/environment';
if (environment.production) {
//
}
ওয়েবপ্যাক প্রক্রিয়া দ্বারা ইনজেকশনের। এনওড
declare let process: any;
const env = process.env.NODE_ENV;
if (env === 'production') {
//
}
platformBrowserDynamic().bootstrapModule(AppModule);
Https://angular.io/guide/dep रोजगार#enable-pr Prod-- মোড এ কৌণিক স্থাপনা গাইড অনুসারে :
উত্পাদনের জন্য বিল্ডিং (বা - এনভায়রনমেন্ট = প্রোড ফ্ল্যাগ সংযোজন) উত্পাদন মোড সক্ষম করে এটি
main.tsকীভাবে কাজ করে তা দেখতে সিএলআই-উত্পাদিত দেখুন।
main.ts নিম্নলিখিত রয়েছে:
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
সুতরাং environment.productionআপনি প্রযোজনা করছেন কিনা তা পরীক্ষা করে দেখুন।
সম্ভবত আপনি কল করতে চান না isDevMode()। Https://angular.io/api/core/isDevMode এ কৌণিক এপিআই ডকুমেন্টেশন অনুসারে :
একবার কল করার পরে, মানটি লক হয়ে গেছে এবং আর কোনও পরিবর্তন হবে না ... ডিফল্টরূপে, এটি সত্য, যদি না কোনও ব্যবহারকারী এটিকে কল করার আগে এন্টারপ্রাইডমড কল করে।
আমি খুঁজে পেয়েছি যে isDevMode()কোনও ng build --prodবিল্ড থেকে কল করা সর্বদা সত্য ফিরে আসে এবং সর্বদা আপনাকে দেব মোডে দৌড়তে লক করে। পরিবর্তে, environment.productionআপনি উত্পাদন করছেন কিনা তা পরীক্ষা করে দেখুন। তারপরে আপনি প্রোডাকশন মোডে থাকবেন।
isDevMode()এটি সম্পাদন করার জন্য একটি দুর্দান্ত উপায় is যে।
আপনি যদি modeকৌণিকের কাহিনীটি জানতে চান , যেমন @ ইয়ুরজুই বলেছেন, আপনাকে কল করা দরকার { 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 আন্তঃপরিবর্তন তারপর ইস্যু করা হয় সংশোধন করা হয়েছে । সুতরাং বুটস্ট্র্যাপিং মডিউলটির আগে আমাদের উচিত - প্রড মোড enable
সঠিকটি এইভাবে রাখা যেতে পারে,
enableProdMode()
platformBrowserDynamic().bootstrapModule(AppModule);
isDevMode()ফাংশনের রিটার্নের মানটি যাচাই করে নেওয়া উচিত You
আমার সেটআপটি ব্যর্থ হয়েছিল কারণ আমি অস্তিত্বের জন্য যাচাই করছিলাম: if (isDevMode)সর্বদা ছিল true, এমনকি উত্পাদনেও কারণ আমি এটি দিয়ে ঘোষণা করেছিলাম import { isDevMode } from '@angular/core';।
if (isDevMode())falseসঠিকভাবে ফিরে এসেছে ।
ng build --prod=trueকৌণিক ক্লিপ দিয়ে আপনাকে অ্যাপ তৈরির চেষ্টা করুন
if ( isDevMode )কেবলমাত্র শনাক্তকারী ডেডমোড সংজ্ঞায়িত, নাল নয়, এবং খালি বা শূন্য নয় তা পরীক্ষা করে থাকে । হিসাবে আইডেন্টিফায়ার সংজ্ঞায়িত করা হয় @angular/coreযে () যদি সবসময় ফিরে আসবে সত্য । এখন, if( isDevMode() )আসলে ফাংশনটি কল করবে এবং এটি যদি পরিবেশের পরিবেশ না হয় তবে তা ফিরে আসবে।
এনভায়রনমেন্ট ফাইলে উপস্থিত প্রোডাকশন ভেরিয়েবলটি কেবল পরীক্ষা করে দেখুন, এটি উত্পাদন মোডের ক্ষেত্রে সত্য এবং বিকাশের জন্য মিথ্যা।
import { environment } from 'src/environments/environment';
if (environment.production) {
// for production
} else {
// for development
}