2015-10-23 13 views
35

निम्न उदाहरण कोड पर विचार करें (और शायद मैं इसे गलत कर रहा हूँ?)घूंट कोलाहल, निर्यात परिभाषित किया गया है नहीं

var FlareCurrency = { 

}; 

export {FlareCurrency}; 

मैं निम्नलिखित कार्य किया है:

gulp.task("compile:add-new-currency-minified", function(){ 
    return gulp.src('src/add-new-currency/**/*.js') 
      .pipe(babel()) 
      .pipe(concat('Flare-AddNewCurrency.js')) 
      .pipe(uglify({"preserveComments": "all"})) 
      .pipe(gulp.dest('dist/minified/')); 
}); 

जब मैं इस मैं चलाने निम्नलिखित मिलती है:

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var FlareCurrency={};exports.FlareCurrency=FlareCurrency; 

इसके बारे में मस्ती के लिए, मैं कंसोल में इसे चलाने के लिए चाहता था, हाँ मैं इसे कुछ नहीं करता है, लेकिन मैं यह देखने की उम्मीद नहीं की थी पता:

Uncaught ReferenceError: exports is not defined(…) 

गैर minified संस्करण:

"use strict"; 

Object.defineProperty(exports, "__esModule", { 
    value: true 
}); 
var FlareCurrency = {}; 

exports.FlareCurrency = FlareCurrency; 

वही त्रुटि फेंकता है। विचार?

+0

ब्राउज़र कंसोल में? ब्राउज़र कॉमनजेएस मॉड्यूल का समर्थन नहीं करते हैं। बेबेल ईएस 6 मॉड्यूल को डिफ़ॉल्ट रूप से कॉमनजेएस मॉड्यूल में बदल देता है। –

+0

इससे मुझे यह समझने में मदद नहीं मिलती है कि मुझे त्रुटि क्यों मिल रही है यदि मैं इस स्क्रिप्ट को संकलित करता हूं और फिर इसे एक वेब पेज पर रखता हूं और पेज क्रोम चलाता हूं तो मुझे भी वही त्रुटि मिल जाएगी ओओ मुझे क्या लगता है – TheWebs

+0

* इससे मुझे समझ में मदद नहीं मिलती कि मुझे त्रुटि क्यों मिल रही है "* समझने के लिए क्या नहीं है? बेबेल कॉमनजेएस मॉड्यूल में संकलित करता है, ब्राउज़र कॉमनजेएस मॉड्यूल का समर्थन नहीं करते हैं। यही कारण है कि आपको त्रुटि मिलती है। कॉमनजेएस मॉड्यूल मुख्य रूप से नोड.जेएस में उपयोग किया जाता है। –

उत्तर

38

यह वास्तव में एक बेबेल मुद्दा नहीं है, आप बिना किसी तैयारी के ब्राउज़र में कॉमनजेएस कोड (ईएस 6 export से पारदर्शी) चलाने की कोशिश कर रहे हैं। कॉमनजेएस ब्राउज़र पर नहीं चलता है, आपको ब्राउज़र के लिए पैकेज करने के लिए टूल का उपयोग करने की आवश्यकता है, जैसे कि Webpack या Browserify

बस इस सप्ताह संयोग से मैंने गिथब पर एक छोटी परियोजना बनाई जो गुलप + ईएस 6 कोड (export का उपयोग करके) + बेबेल + वेबपैक: gulp-es6-webpack-example का एक सेटअप दिखाता है।

मेरे उदाहरण में आप ब्राउज़र पर जेएस कोड को सिंक्रनाइज़ (प्री-लोडेड) या असीमित रूप से (आलसी लोड) लोड कर सकते हैं।

+0

वेबपैक 2 (बीटा में, लेकिन पूरी तरह से उपयोग करने योग्य) दोनों पारदर्शी और ब्राउज़र दोनों करता है, इसलिए ब्राउज़र में 'निर्यात' कथन काम करेंगे। –

संबंधित मुद्दे