2016-02-12 17 views
8

के साथ एएमडी मॉड्यूल जेनरेट करना मैं एक ऐसे सिस्टम में कई प्लगइन्स विकसित कर रहा हूं जो इन प्लगइन्स को एएमडी मॉड्यूल (requjs के साथ) के रूप में लोड करता है। प्लगइन्स ES6 मॉड्यूल के रूप में लिखे गए हैं और वेबपैक (output.libraryTarget = 'amd') के साथ पैक किए गए हैं। सबकुछ अब तक अपेक्षित काम करता है।वेबपैक और कॉमन्सChunkPlugin

लेकिन प्लगइन प्रत्येक प्रविष्टि में बंडल किए गए बहुत सारे सामान्य कोड साझा करते हैं। मैंने CommonsChunkPlugin वेबपैक प्लगइन का उपयोग करने की कोशिश की लेकिन प्रारंभिक खंड में कोड है जो एएमडी मॉड्यूल नहीं है। हालांकि आम चक पर रिलेइंग अन्य प्रवेश बिंदु अभी भी सही ढंग से उत्पन्न होते हैं। documentation का कहना है कि एक पृष्ठ पर एकाधिक प्रारंभिक भाग (JSONp रनटाइम के साथ) होना अच्छा नहीं है - संभावना है कि एक और प्लगइन लेखक एक ही दृष्टिकोण का उपयोग करेगा।

क्या इस उपयोग के मामले को एएमडी संगत तरीके से अनुकूलित करने का कोई तरीका है? यह मुझे CommonsChunkPlugin में एक बग के रूप में प्रतीत होता है कि प्रारंभिक प्रविष्टि AMD नहीं है (लेकिन फिर भी इसका कोड प्लगइन env में लोड होने के लिए सुरक्षित नहीं है) ... क्या कोई कॉन्फ़िगरेशन है जो मुझे याद नहीं है?

+1

एक ही समस्या है। ऐसा लगता है कि किसी भी कारण से और एक एमडी पुस्तकालय का उत्पादन करने के लिए भाग असंगत है। –

उत्तर

1

मुझे पूरा यकीन नहीं है कि आपको सही ढंग से समझते हैं। लेकिन तुम, एएमडी मॉड्यूल के रूप में अपने बंडल निर्माण करने के लिए की तुलना में आप एक library के रूप में यह विन्यास चाहिए चाहते हैं: यहाँ

... 
output: { 
    ... 
    library: true, 
    libraryTarget: 'umd' 
}, 
+0

तो आपको अपने निर्यात के तरीके के अनुसार लाइब्रेरी लक्ष्य पैरामीटर को कॉन्फ़िगर करने की आवश्यकता हो सकती है: http://webpack.github.io/docs/configuration.html#output-librarytarget – Kreozot

+0

यह सही तरीके से काम करता है। लेकिन मैं [CommonsChunkPlugin] (https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin) का उपयोग करना चाहता हूं और सामान्य भाग का आउटपुट एएमडी नहीं है। – ahz

+0

आप एकाधिक प्रविष्टि बिंदुओं का उपयोग क्यों नहीं करते? – Kreozot