2015-10-31 10 views
7

मैं babel-node का उपयोग कर अपने सीएलआई के माध्यम से बेबेल चलाने की कोशिश कर रहा हूं लेकिन मुझे Unexpected token export त्रुटि मिल रही है। मैं समझता हूं कि बैबेल 6 प्लगइन के बारे में है और मुझे प्लगइन को .babelrc के माध्यम से सेट करने की आवश्यकता है लेकिन यह ठीक से काम नहीं कर रहा है।बेबेल 6 सीएलआई: अप्रत्याशित टोकन निर्यात?

  • मैं syntax-export-extensions plugin प्रयोग करना चाहिए:

    तो यहाँ मेरी सवाल कर रहे हैं? मैंने वैकल्पिक विधि का उपयोग करने का भी प्रयास किया है जो setting the plugin through package.json है लेकिन अभी भी कोई भाग्य नहीं है।

  • इसके अलावा, क्या बेबेल 6 के सीएलआई में वैश्विक .babelrc विकल्प है? यह कठिन लगता है कि अगर मैं हर परियोजना है कि यह आवश्यकता के लिए प्लग-इन इंस्टॉल करने के लिए है ...

जो लोग मुझे क्या निर्यात करने के लिए कोशिश कर रहा हूँ के उत्सुक हैं के लिए, तो यहाँ वर्ग है:

'use strict'; 

class Factorial { 
    static solve (num) { 
    if(num === 0) return 1; 
    else return num * Factorial.solve(num - 1); 
    } 
} 

console.log(Factorial.solve(5)) 

export default Factorial; 
+3

एफडब्ल्यूआईडब्ल्यू, यदि आपके पास स्थिर विधियां हैं तो आपको कक्षा का उपयोग नहीं करना चाहिए। या तो किसी ऑब्जेक्ट का उपयोग करें या इस मामले में, सरल में एक ही फ़ंक्शन है। –

+0

@ फ़ेलिक्सक्लिंग टिप के लिए धन्यवाद, मैं कक्षाओं का उपयोग करने के लिए उपयोग किया जाता हूं क्योंकि मैं सी ++/सी #/जावा पृष्ठभूमि से आया हूं;) – iwatakeshi

उत्तर

13

प्रारंभ करने का सबसे आसान तरीका प्रीसेट का उपयोग करना है।

पहले की हमारी निर्भरता को स्थापित करते हैं:

$ npm install --save-dev babel-cli babel-preset-es2015 

फिर अपने package.json करने के लिए एक build स्क्रिप्ट कोलाहल चलाता जोड़ें: (इस महत्वपूर्ण है क्योंकि यह बजाय एक विश्व स्तर पर स्थापित एक की babel-cli के अपने स्थानीय संस्करण का उपयोग करेगा)

"build": "babel input.js" 

आपका package.json इस तरह दिखना चाहिए:

{ 
    "name": "my-module", 
    "devDependencies": { 
    "babel-cli": "^6.x.x", 
    "babel-preset-es2015": "^6.x.x" 
    }, 
    "scripts": { 
    "build": "babel input.js -o compiled.js" 
    } 
} 
अपने स्थानीय .babelrc इस तरह ३६९१३६३२१०

अंत में आप अपडेट करना चाहते हैं:

{ 
    "presets": ["es2015"] 
} 

तो फिर तुम npm run build चलाने के लिए और आप सभी में जाने के लिए तैयार हैं।

इसके अलावा, क्या बेबेल 6 के सीएलआई में वैश्विक .babelrc विकल्प है? मुझे लगता है कि अगर मुझे हर परियोजना के लिए प्लगइन्स इंस्टॉल करना पड़ता है तो उसे परेशान लगता है ...

यह एक बुरा विचार है क्योंकि इसका मतलब है कि आप इसे अपने प्रोजेक्ट कोड में से प्रत्येक को अद्यतन किए बिना कभी अपडेट नहीं कर सकते हैं। स्थानीय संस्करणों का मतलब है कि यह संभावित त्रुटि होने की संभावना कम है।

+0

धन्यवाद! मुझे एहसास हुआ कि प्रीसेट मौजूद है और इसका इस्तेमाल किया है, लेकिन ऐसा लगता है कि 'आयात' कीवर्ड काम नहीं करता है?क्या आप इस मुद्दे के बारे में कुछ भी जान लेंगे? – iwatakeshi

+0

बेबेल के आपके संस्करण के साथ एक समस्या हो सकती है। कुछ शुरुआती मुद्दे थे, अद्यतन करने का प्रयास करें और यदि यह समर्थन के लिए स्लैक चैनल द्वारा काम नहीं करता है। https://slack.babeljs.io/ –

3

मुझे एक ही त्रुटि मिली, लेकिन मेरी वेबपैक/बेबेल कॉन्फ़िगरेशन सही दिखती थीं। परीक्षण और त्रुटि से, मैंने export myFunction को export default myFunction के साथ बदल दिया और त्रुटि हल हो गई।


बाद में, मुझे एहसास हुआ कि निर्यात का सही तरीका export {myFunction} है। मैंने इसे लागू किया और सब कुछ ठीक काम करता है।

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