मैं प्रतिक्रिया के भीतर वेबपैक कोड कोडिंग सुविधा का उपयोग कर रहा हूं। मैं एक ऐप बना रहा हूं जहां उपयोगकर्ता एक विकल्प का चयन करेगा, और संबंधित प्रतिक्रिया घटक प्रस्तुत करेगा। हालांकि, मुझे लगता है कि कॉमनजे require.ensure
का उपयोग करके केवल हार्ड कोडित तारों के साथ काम करता है। जब मैं चर का उपयोग करता हूं ऐसा लगता है कि यह काम कर रहा है, तो घटक बाहर निकलते हैं। लेकिन जब मैं नेटवर्क टैब को देखता हूं तो मुझे लगता है कि यह कोड को विभाजित नहीं करता है - यह किसी भी नए बंडल को लोड नहीं करता है। जहां मैं हार्ड कोड कहता हूं, हर बार एक नया बंडल के लिए एक कॉल होता है।गतिशील मॉड्यूल के साथ कोड विभाजन?
यहाँ क्या काम कर रहा है:
executeDynamic(component){
var that = this;
switch(component){
case 'SolidButton':
require.ensure([], function(require){
DynamicModule = require(`./elements/SolidButton/index.js`);
that.forceUpdate();
});
break;
case 'ThreeDButton':
require.ensure([], function(require){
DynamicModule = require(`./elements/ThreeDButton/index.js`);
that.forceUpdate();
});
break;
case 'NoPreview':
require.ensure([], function(require){
DynamicModule = require(`./elements/NoPreview/index.js`);
that.forceUpdate();
});
break;
default:
break;
}
}
यहाँ है कि मैं क्या काम करना चाहते हैं:
executeDynamic(component){
var that = this;
require.ensure([], function(require) {
DynamicModule = require(`./elements/${component}/index.js`);
that.forceUpdate();
});
}
यह ब्राउज़र में हो रहा है, है ना? यदि हां, तो पहले से ही बेबेल द्वारा 'आवश्यकता' को पारदर्शी नहीं किया गया है, और इसलिए गतिशील रूप से परिवर्तित नहीं किया जा सकता है? जबकि आपके हार्डकोडेड तारों को सफलतापूर्वक पारदर्शी कर दिया गया होगा। – Benjamin
@ Benjamin- यह एक चर है - यह कठिन कोड तार करने के लिए transpile नहीं है। मैं उम्मीद करता हूं कि यह किसी भी अन्य जेएस चर के रूप में काम करेगी। – Steph
** 'ContextReplacementPlugin' ** आप के लिए किया जाएगा समाधान https://github.com/webpack/webpack/issues/118 – Everettss