के साथ मैं वेबपैक में कोणीय-यूई-राउटर को बाहरी निर्भरता के रूप में लोड करने का प्रयास कर रहा हूं। मॉड्यूल नाम "कोणीय-यूई-राउटर" है। यहाँ एक उदाहरण है:वेबपैक बाहरी मॉड्यूल नाम हाइफ़न
module.exports = webpackMerge(commonConfig, {
...
externals: {
'angular': true,
'angular-ui-router': true
},
...
});
इस के साथ समस्या यह है कि Webpack मेरी app.bundle.js में एक मॉड्यूल बनाता है कि ऐसा दिखाई देता है:
/***/ },
/* 1 */
/***/ function(module, exports) {
module.exports = angular;
/***/ },
/* 2 */
/***/ function(module, exports) {
module.exports = angular-ui-router;
/***/ }
/******/ ]);
ब्राउज़र मॉड्यूल लोड करने के लिए कोशिश करता है, यह अभिव्यक्ति के रूप में module.exports = angular-ui-router
का मूल्यांकन करता है, तो निम्न त्रुटि फेंक:
Uncaught ReferenceError: ui is not defined
केवल ठीक मैं इस समस्या के लिए मिल गया है है:
module.exports = webpackMerge(commonConfig, {
...
externals: {
'angular': true,
'angular-ui-router': 'window["angular-ui-router"]'
},
...
});
यह सही परिणाम प्राप्त करता है।
क्या कोई बेहतर तरीका है?
बेहतर कोई तरीका नहीं है, तो app.bundle कोड
बंडल कोड इस प्रकार दिखाई देगा होगा। यह कष्टप्रद है कि 'बाहरी' सरल बाहरी बुलियन विकल्प के लिए निहित नहीं है, लेकिन ब्राउजर स्क्रिप्ट के अलावा अन्य चीज़ों को लक्षित करते समय यह उपयोगी होता है (उदाहरण के लिए वेब वर्कर स्क्रिप्ट्स, उदाहरण के लिए, जिसमें 'विंडो' नहीं है)। – Jacob