मैं वेबपैक और उसके रिश्तेदारों जैसे ऐसे निर्माण उपकरण का उपयोग करने की दुनिया में काफी नया हूं, इसलिए शायद यह प्रश्न थोड़ा नाराज है लेकिन कृपया मुझे समझें।देव और उत्पादन पर वेबपैक के साथ पर्यावरण चर
पृष्ठभूमि: मैं क्लाइंट साइड वेब ऐप (रिस्पॉज + रेडक्स का उपयोग करके) विकसित कर रहा हूं और वेबपैक का उपयोग अपने निर्माण उपकरण और देव-सर्वर लोडर के रूप में कर रहा हूं। अभी मुझे केवल देव पर्यावरण (लॉगिंग और सामान) में कोड की कुछ पंक्तियां बनाना है। तो मैं नेट पर देखा process.env.NODE_ENV
चर सेट करने के लिए webpack.DefinePlugin
प्लगइन का उपयोग और कोड इस तरह है:
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
})
]
फिर NODE_ENV
varibale मेरी मशीन पर सेट नहीं है (जो इस समय नहीं है) यह स्वचालित रूप से विकास के लिए सेट। क्या मैं सही हू?
क्या उत्पादन मशीन के बारे में? मैं /etc/environment
फ़ाइल में 'उत्पादन' को यह env चर सेट की जरूरत है?
फिर एक और सवाल यह है कि webpack जानता है क्या NODE_ENV है जब मैं एप्लिकेशन की सेवा है? यह संकलित जब मैं उत्पादन मशीन पर निर्माण करते हैं और बनाया bundle.js में सेट किया गया है? ($ webpack --progress -p
)
एक और सवाल यह है कि मैं उत्पादन या विकास पर्यावरण में सुविधाओं को कैसे सक्षम/अक्षम कर सकता हूं? बस करना एक अगर इस तरह की हालत बयान:
if(process.env.NODE_ENV == 'development'){
console.log('this is visible in development');
}
और पिछले एक, अगर यह क्या वास्तव में, करता है webpack इसे बनाया bundle.js करने के लिए कोड के इस टुकड़े transpiling रहा है? यदि हां, तो यह उपयोगकर्ता को सही करने के लिए दृश्यमान है? क्या इसके साथ कुछ करने के लिए है?
आशा है कि यह ज्यादा नहीं है, धन्यवाद एक गुच्छा!
बढ़िया! और इस कोड को छिपाने के बारे में क्या? क्या यह संभव है? मैं नहीं चाहता कि उपयोगकर्ता यह देखने में सक्षम हो कि 'if' के अंदर क्या हो रहा है? –
मैंने स्पष्टीकरण के साथ जवाब संपादित किया कि इसे कैसे छिपाना है। – Everettss