প্রতিক্রিয়াটির বর্তমান সংস্করণটি রানটাইমের সময় উন্নয়ন বা উত্পাদন কিনা তা সনাক্ত করা সম্ভব? আমি এরকম কিছু করতে চাই:
if (React.isDevelopment) {
// Development thing
} else {
// Real thing
}
উত্তর:
এটি আপনার বিল্ড টুল - ওয়েবপ্যাক, ব্রাউজারিফাই - দিয়ে এক্সপোজারের মাধ্যমে নোডের উপায়গুলি করার সেরা কাজটি করা হয় process.env.NODE_ENV। সাধারণত, আপনি এটি প্রোডে "উত্পাদন" এবং ডেভ মধ্যে "বিকাশ" (বা অপরিজ্ঞাত) সেট করতে পারেন।
সুতরাং আপনার কোড হয়ে যায়:
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
// dev code
} else {
// production code
}
কীভাবে এটি সেট আপ করবেন তার জন্য ওয়েবপ্যাকে পরিবেশ-নির্ভর ভেরিয়েবলগুলি envify বা পাসিং দেখুন
process is not definedক্লায়েন্ট উপর।
process.env.NODE_ENVকরেন তবে বিকাশ মোডে "বিকাশ" হবে।
process.env.NODE_ENVআপনার জন্য সংজ্ঞায়িত করা হবে এবং আপনার অ্যাপ্লিকেশনটিতে যে কোনও জায়গায় আপনার এতে অ্যাক্সেস রয়েছে। বিস্তারিত জানার জন্য ডকুমেন্টেশন প্রতিক্রিয়া দেখুন ।
আমি একটি সহায়ক ফাইল (টাইপস্ক্রিপ্টে) ব্যবহার করি:
import process from "process";
const development: boolean = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
export default function isDev(): boolean
{
return development;
}
তারপরে অন্য কোথাও আমি এটি ব্যবহার করি:
import isDev from "./helpers/DevDetect";
if (isDev())
{
...
}
আমি সূচক html থেকে এটিতে অ্যাক্সেস চেয়েছিলাম এবং এমন একটি সমাধান চেয়েছিলাম যা ওয়েবপ্যাকটি বের করে দেওয়ার বা অতিরিক্ত মডিউলগুলির সাথে এটি কনফিগার করার সাথে জড়িত না এবং আমি এটি নিয়ে এসেছি।
উত্সগুলি হ'ল উপরের ডেভিডের উত্তর এবং এইচটিএমএল ফাইলটিতে পরিবেশের ভেরিয়েবলগুলি ব্যবহার করার জন্য ক্রিয়েট-রি্যাক্ট-অ্যাপ ডকুমেন্টেশন
if ( ! '%NODE_ENV%' || '%NODE_ENV%' === 'development') {
// dev code
} else {
// production code
}
browserifyএবংenvify।