2016-09-02 13 views
6

के साथ बंडल करते समय अंडरस्कोर त्रुटि देता है मैं एएस 6 आयात का उपयोग करने के लिए requ.js का उपयोग करने वाले पुराने एप्लिकेशन को फिर से लिखने की कोशिश कर रहा हूं। प्रयुक्त पुस्तकालयों में से एक बैकबोन और अंडरस्कोर हैं। ईएस 5 के लिए एक बड़ा बंडल और प्रीकंपाइल ईएस 6 बनाने के लिए, मैं वेबपैक का उपयोग बेबेल-लोडर के साथ करता हूं। बंडल बनाया जाता है लेकिन जब मैं ब्राउज़र में लोड मैं निम्न त्रुटि हो रही है:वेबस्पेक

Uncaught TypeError: Cannot read property '_' of undefined 

ऐसा लगता है कि 'इस' अंडरस्कोर में बनाया bundle.js में अपरिभाषित है तो root._ मुझे त्रुटि देता है।

// Baseline setup 
// -------------- 

// Establish the root object, `window` in the browser, or `global` on the server. 
var root = this; 

// Save the previous value of the `_` variable. 
var previousUnderscore = root._; 

// Establish the object that gets returned to break out of a loop iteration. 
var breaker = {} 

किसी को भी एक ही समस्या का अनुभव हुआ?

+0

आपका 'बेबेल-लोडर' वेबपैक कॉन्फ़िगरेशन क्या है? आप शायद 'बहिष्कृत करें:/node_modules/'की रेखाओं के साथ कुछ खो रहे हैं। – loganfsmyth

+0

बहुत कुछ टीएनएक्स! 'बहिष्कृत करना:/node_modules /' 'babel-loader 'वेबपैक कॉन्फ़िगरेशन को हल करना समस्या हल हो गई है! –

उत्तर

20

द्वारा es2015 प्रीसेट के साथ संसाधित फ़ाइलें बेबेल द्वारा ES6 मॉड्यूल के रूप में संसाधित की जाती हैं। ईएस 6 मॉड्यूल में, this कार्यों के बाहर undefined है। आपके मामले में, आप अपने babel-loader config को

exclude: /node_modules/, 

जोड़ने के लिए इतना है कि यह केवल अपने स्वयं के कोड पर कार्रवाई करेंगे की जरूरत है। वर्तमान में, आप अपने सभी नोड मॉड्यूल पर भी बेबेल चला रहे हैं, जिनमें से कई बेबेल के माध्यम से चलाने की उम्मीद नहीं करते हैं और ईएस 6 मॉड्यूल होने का इरादा नहीं रखते हैं।