मैं की कोड स्प्लिटिंग सुविधा (require.ensure) का उपयोग अपने React के शुरुआती बंडल आकार को कम करने के लिए उपयोग करता हूं जो घटकों को लोड करके एक अलग बंडल से पृष्ठ लोड पर दिखाई नहीं दे रहा है जो अतुल्यकालिक रूप से लोड होता है।मैं वेबपैक की ज़रूरतों को कैसे रोकूं?
यह पूरी तरह से काम करता है, लेकिन मुझे इसके लिए एक यूनिट परीक्षण लिखने में परेशानी है।
मेरा परीक्षण सेटअप Mocha, Chai और Sinon पर आधारित है।
describe('When I render the component',() => {
let component,
mySandbox;
beforeEach(() => {
mySandbox = sandbox.create();
mySandbox.stub(require, 'ensure');
component = mount(<PageHeader />);
});
describe('the rendered component',() =>
it('contains the SideNav component',() =>
component.find(SideNav).should.have.length(1)
)
);
afterEach(() => mySandbox.restore());
});
जब परीक्षण चल रहा है, मैं इस त्रुटि संदेश मिलता है:
यहाँ कोड मैं अब तक की कोशिश की है से प्रासंगिक अंश है के लिए हुक "प्रत्येक से पहले"
"शामिल हैं SideNav घटक ": न के बराबर अपनी संपत्ति ठूंठ नहीं किया जा सकता सुनिश्चित
यह इसलिए होता है क्योंकि require.ensure
एक विधि है कि केवल एक हम में मौजूद है बीपीएसी बंडल, लेकिन मैं वेबपैक के साथ अपने परीक्षणों को बंडल नहीं कर रहा हूं, न ही मैं चाहता हूं, क्योंकि यह अधिक ओवरहेड और संभावित रूप से परीक्षण निष्पादन समय का परीक्षण करेगा।
तो मेरे सवाल है:
वहाँ webpack के माध्यम से परीक्षण चलाने के बिना webpack सिनोन साथ के require.ensure
ठूंठ के लिए एक रास्ता है?
आप सही हैं। प्रत्येक मॉड्यूल को एक अद्वितीय 'आवश्यकता' फ़ंक्शन मिलता है। मैंने सोचा जितना जटिल है। आप इसके बारे में [यहां] पढ़ सकते हैं (http://fredkschott.com/post/2014/06/require-and-the- मॉड्यूल- सिस्टम /)। बंदर पैच 'require.esnure' के लिए यह बहुत मुश्किल होगा। मैं आपको सुझाव देता हूं कि आपको बेबेल-प्लगइन-रिवायर जैसे कुछ पर विचार करें जो @ हिनोक –
द्वारा सुझाया गया है आपकी समस्या का उत्तर यहां दिया गया है: https://stackoverflow.com/questions/33070482/writing-tests-for-javascript- मॉड्यूल-using- वेबपैक्स-आवश्यकता-सुनिश्चित-कार्य –
बात यह है कि, मैंने अपनी परियोजना शुरू करने पर रिवायर का उपयोग करके मूल्यांकन किया और पाया कि मॉकरी बहुत बेहतर है, इसलिए मुझे लगता है कि मुझे यह पता लगाना होगा कि उस पोस्ट से रिवायर समाधान का उपयोग कैसे करें मजाक। –