वेबपैक बनाम वेबपैक-देव-सर्वर बनाम वेबपैक-देव-मिडलवेयर बनाम वेबपैक-हॉट-मिडलवेयर बनाम। आदि


94

मैं एक सर्वर साइड विकसित अनुप्रयोग के साथ विकसित पर्यावरण के webpackसाथ काम करना शुरू कर रहा हूं । मैं देव और ठेस (रनटाइम) वातावरण के लिए प्रत्येक वेबपैक पैकेज की भूमिका के बारे में बहुत उलझन में हूं।node/expressReactJSreact-router

यहाँ मेरी समझ का सारांश है:

webpack: एक पैकेज है, एक वेब अनुप्रयोग के विभिन्न टुकड़ों को एक साथ जोड़ने के लिए एक टूल है और फिर एकल .js फ़ाइल (सामान्य रूप से bundle.js) में बंडल है । परिणाम फ़ाइल को तब एप्लिकेशन द्वारा लोड किए जाने के लिए एक ठंढे वातावरण में परोसा जाता है और इसमें कोड को चलाने के लिए सभी आवश्यक घटक होते हैं। सुविधाओं में सिकुड़ना कोड, छोटा करना आदि शामिल हैं।

webpack-dev-server: एक पैकेज है जो वेबसाइट फ़ाइलों को संसाधित करने के लिए एक सर्वर प्रदान करता है । यह bundle.jsक्लाइंट घटकों से एक .js फ़ाइल ( ) भी बनाता है, लेकिन इसे मेमोरी में कार्य करता है। इसमें -hotसभी बिल्डिंग फ़ाइलों की निगरानी करने और कोड परिवर्तन के मामले में मेमोरी में एक नया बंडल बनाने का विकल्प ( ) भी है । सर्वर को सीधे ब्राउज़र में दिया जाता है (उदा:) http:/localhost:8080/webpack-dev-server/whatever। मेमोरी लोडिंग, हॉट प्रोसेसिंग और ब्राउज़र सर्विंग का संयोजन उपयोगकर्ता को कोड को बदलने पर एप्लिकेशन को अपडेट करने देता है, जो विकास के वातावरण के लिए आदर्श है।

यदि मुझे उपरोक्त पाठ के बारे में संदेह है, तो मैं नीचे दी गई सामग्री के बारे में निश्चित नहीं हूं, इसलिए यदि आवश्यक हो तो मुझे सलाह दें

एक सामान्य समस्या यह है कि सर्वर का उपयोग webpack-dev-serverकरते समय, node/expressजैसा कि webpack-dev-serverहोता है node/express। यह इस वातावरण को क्लाइंट और कुछ नोड / एक्सप्रेस कोड (एक एपीआई आदि) दोनों को चलाने के लिए मुश्किल बनाता है। नोट: यह वही है जो मैंने सामना किया है, लेकिन यह समझने में बहुत खुशी होगी कि अधिक विवरणों में ऐसा क्यों होता है ...

webpack-dev-middleware: यह एक webpack-dev-serverमिडवेयरवेयर है जिसमें समान कार्य (इनममोरी बंडलिंग, हॉट रीलोडिंग) होते हैं, लेकिन प्रारूप में जिसे server/expressएप्लिकेशन को इंजेक्ट किया जा सकता है । इस तरह, आपके पास एक तरह का सर्वर ( webpack-dev-server) इनसाइड नोड सर्वर होता है। उफ़: क्या यह एक पागल सपना है ??? यह टुकड़ा देव और ठेस समीकरण को कैसे हल कर सकता है और जीवन को सरल बनाता है

webpack-hot-middleware: यह ... यहाँ अटक गया ... खोजने पर यह टुकड़ा मिला webpack-dev-middleware... इसका उपयोग करने का कोई विचार नहीं है।

ENDNOTE: क्षमा करें, कोई गलत सोच है। मुझे वास्तव में एक जटिल वातावरण में इन वेरिएंट को कम करने के लिए मदद की आवश्यकता है। यदि संयोजक हैं, तो कृपया अधिक पैकेज / डेटा जोड़ें जो पूरे परिदृश्य का निर्माण करेगा।


2
यहां सूचीबद्ध पैकेजों में से कोई भी उत्पादन में सर्वर साइड पर उपयोग नहीं किया जाता है - वे सिर्फ डेवलपर उपकरण हैं। यदि आप अपना स्वयं का कस्टम विकास सर्वर लिखना चाहते हैं, तो आप webpack-dev-middleware(और संभवतः webpack-hot-middleware) इसका उपयोग करेंगे । जब तक कोई विशिष्ट विशेषता webpack-dev-serverनहीं है जो आप चाहते हैं कि आपके पास नहीं है, तो आपको बस उसका उपयोग करना चाहिए।
जो क्ले

जवाबों:


120

webpack

जैसा कि आपने वर्णित किया है, वेबपैक एक मॉड्यूल बंडल है, यह मुख्य रूप से विभिन्न मॉड्यूल प्रारूपों को बंडल करता है ताकि उन्हें एक ब्राउज़र में चलाया जा सके। यह सीएलआई और नोड एपीआई दोनों प्रदान करता है

webpack-dev-middleware

वेबपैक देव मिडिलवेयर मिडलवेयर है जिसे विकास के दौरान अपने बंडल के नवीनतम संकलन की सेवा के लिए एक एक्सप्रेस सर्वर में रखा जा सकता है । यह वॉच मोडwebpack में Node API का उपयोग करता है और फ़ाइल सिस्टम के आउटपुट के बजाय यह मेमोरी को आउटपुट करता है

तुलना के लिए, आप express.staticउत्पादन में इस मिडलवेयर के बजाय कुछ का उपयोग कर सकते हैं ।

webpack-dev-server

वेबपैक देव सर्वर स्वयं एक एक्सप्रेस सर्वर है जो webpack-dev-middlewareनवीनतम बंडल की सेवा के लिए उपयोग करता है और इसके अतिरिक्त क्लाइंट में लाइव मॉड्यूल अपडेट के लिए हॉट मॉड्यूल प्रतिस्थापन (एचएमआर) अनुरोधों को संभालता है।

webpack-hot-middleware

वेबपैक हॉट मिडलवेयर एक विकल्प है, webpack-dev-serverलेकिन सर्वर शुरू करने के बजाय यह आपको मौजूदा / कस्टम एक्सप्रेस सर्वर के साथ इसे माउंट करने की अनुमति देता है webpack-dev-middleware

इसके अलावा ...

webpack-hot-server-middleware

बस चीजों को और अधिक भ्रमित करने के लिए, वेबपैक हॉट सर्वर मिडलवेयर भी है जो कि साथ-साथ उपयोग किए जाने webpack-dev-middlewareऔर webpack-hot-middlewareसर्वर प्रदान किए गए एप्लिकेशन के हॉट मॉड्यूल प्रतिस्थापन को संभालने के लिए डिज़ाइन किया गया है ।


2
फ्रंट-एंड बनाम बैक-एंड हॉट मॉड्यूल रिप्लेसमेंट ब्रेकडाउन की खोज करने वालों के लिए, कृपया इस पोस्ट को देखें: stackoverflow.com/questions/46086297/… Xlee प्रत्येक पक्ष के लिए आवश्यकताओं की व्याख्या करते हुए एक अच्छा काम करता है - सर्वर-साइड को पुनरारंभ करने की आवश्यकता है , अद्यतन जावास्क्रिप्ट बंडलों में लोडिंग की अनुमति देता है।
अबेलिटो

9

2018 में अपडेट और अपने आधिकारिक GitHub पेज पर वेबपैक-देव-सर्वर नोट पर विचार करने के लिए :

रखरखाव में परियोजना कृपया ध्यान दें कि वेबपैक-देव-सर्वर वर्तमान में केवल रखरखाव मोड में है और निकट अवधि में किसी भी अतिरिक्त सुविधाओं को स्वीकार नहीं करेगा। एक्सप्रेस मिडलवेयर के साथ अधिकांश नए फ़ीचर अनुरोध पूरे किए जा सकते हैं; कृपया पहले और बाद में प्रलेखन में हुक का उपयोग करने पर ध्यान दें।

वेबपैक एचएमआर बनाने के लिए प्राकृतिक विकल्प क्या होगा?


2
यह भी कहता है कि Use webpack-serve for a fast alternative. Use webpack-dev-server if you need to test on old browsers.आप वेबपैक की सेवा करना चाहते हैं
ब्रूस सन

3
रखरखाव नोट हटा दिया गया है। तो मुझे लगता है कि यह फिर से सिफारिश की है ??? इस तरह के एक महत्वपूर्ण देव उपकरण के आसपास इस तरह की एक भयानक अनुचर टीम है।
कप्तान फोगेटी

5
वेबपैक-सेवा को हटा दिया गया है और @CaptainFogetti ने कहा कि रखरखाव नोट को आज की तरह वेबपैक-देव-सर्वर से हटा दिया गया है
अनूप डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.