2014-04-29 9 views
15

के साथ एक मॉड्यूल की आवश्यकता है, मैं अपनी वेबसाइट के जावास्क्रिप्ट को बनाने के लिए वेबपैक का उपयोग करता हूं।को वेबपैक

सबकुछ पूरी तरह से काम करता है लेकिन मैं एक टेम्पलेट (गतिशील रूप से जोड़ा गया) में कॉल करना चाहता हूं।

मैं निर्माण के बाद मॉड्यूल की आवश्यकता के लिए सक्षम होना चाहता हूं। (आवश्यकता वैश्विक संदर्भ में परिभाषित नहीं है)।

क्या यह संभव है?

Thx

उत्तर

7

जो अब आप के लिए उपलब्ध है एक context जो आप window पर विश्व स्तर पर बेनकाब बनाने के लिए है एक विकल्प। मैं निम्नलिखित स्निपेट का उपयोग कर सफलता मिली है:

// Create a `require` function in the global scope so that scripts that have 
// not been webpack'd yet can still access them. 
window["require"] = function (module) { 
    return require("./public_modules/" + module + ".js"); 
} 

मूल रूप से क्या आप कर रहे हैं webpack के लिए किसी फ़ोल्डर को उजागर और यह एक हिस्सा करने के लिए कि फ़ोल्डर में सभी फ़ाइलें पैक करने के लिए कह रहा है। फिर आप एक वेबपैक स्क्रिप्ट के बाहर var moduleName = require("module-name") टाइप कर सकते हैं।

जब तक उपरोक्त स्निपेट एक फ़ाइल के अंदर है जो बंडल और मूल्यांकन हो जाता है, तो आपके पास window (संयोग से नामित "आवश्यकता" पर परिभाषित एक फ़ंक्शन होगा लेकिन आप इसे कुछ भी कॉल कर सकते हैं) जो वेबपैक की आवश्यकता कार्यक्षमता का उपयोग करेगा।