2017-02-17 21 views
13

के साथ नोड 6 में Acyns/प्रतीक्षा में उपयोग करना मैं नोड v6.9.2 के लिए बेबेल को कॉन्फ़िगर करने का प्रयास कर रहा हूं। मैं async/await संरचनाओं का उपयोग करना चाहता हूं।बेबेल

  • मैं क्या पूर्व निर्धारित का उपयोग करना चाहिए:

    क्योंकि मैं कोलाहल और सभी नोड बुनियादी सुविधाओं के लिए नया हूँ, मैं इसे ठीक से कॉन्फ़िगर कैसे असमंजस में हैं? नोड पहले से ही ES6 सुविधाओं में से अधिकांश लागू किया गया है। इसलिए मैं नहीं चाहता कि बेबेल प्रदर्शन कारणों से पहले से ही नोड 6.9.एक्स (तीर फ़ंक्शन, नई आयात तंत्र इत्यादि) द्वारा समर्थित सुविधाओं को पारदर्शी कर दे।

  • मुझे कौन से प्लगइन शामिल करना चाहिए ताकि मैं async/प्रतीक्षा कर सकूं? वहां मैंने भी उलझन में, क्योंकि कुछ शोध करने के बाद मुझे कई प्लगइन्स मिले: syntax-async-functions, transform-async-to-generator और कुछ और।

.babelrc का उदाहरण मदद करेगा।

धन्यवाद

+1

* "पहले से ही नोड 6.9.x (तीर कार्य, नए आयात तंत्र आदि) द्वारा समर्थित" * नोड 6.x समर्थन नहीं करता है 'import'/'export'। –

+0

आपको 'ट्रांसफॉर्म-एसिंक-टू-जनरेटर' – Hosar

+1

* के साथ अच्छा होना चाहिए * "इसलिए मैं नहीं चाहता कि बैबेल पहले से ही नोड 6.9.x द्वारा समर्थित सुविधाओं को पारदर्शी कर सकता है ... * स्टार्टअप प्रदर्शन के अलावा (जो है प्रभावित), * रनटाइम * प्रदर्शन शायद बेहतर होगा। वी 8 टीम नई सुविधाओं के प्रदर्शन को निष्पादित करने के लिए परिश्रमपूर्वक काम कर रही है-उनके पिछले एनालॉग के मुकाबले तुलनात्मक है, लेकिन उस काम का बहुत अधिक नया है जो आपको नोड 6.x में वी 8 में मिलेगा। उदाहरण के लिए, यह केवल नवीनतम रिलीज (5.7) है कि उन्हें लगता है कि वे प्रदर्शन समानता तक पहुंच चुके हैं: https://v8project.blogspot.co.uk/2017/02/v8-release-57.html बस FWIW। –

उत्तर

12

क्या पूर्व निर्धारित उपयोग करना चाहिए?

आपको किसी भी प्रीसेट का उपयोग करने की आवश्यकता नहीं है।प्रीसेट केवल प्लगइन का एक संग्रह है जो उपयोग करना आसान बनाता है यदि आप सुविधाओं का एक सेट पारदर्शी करना चाहते हैं (उदाहरण के लिए सभी ES2015 preset-es2015 के साथ)। लेकिन जब आप केवल इन सुविधाओं का चयन करना चाहते हैं, तो आप केवल संबंधित प्लगइन शामिल कर सकते हैं।

मुझे कौन से प्लगइन शामिल करना चाहिए ताकि मैं async/प्रतीक्षा कर सकूं?

क्योंकि नोड 6 जनरेटर का समर्थन करता है, तो आपको निम्न .babelrc साथ transform-async-to-generator उपयोग कर सकते हैं:

{ 
    "plugins": ["transform-async-to-generator"] 
} 

और निश्चित रूप से आप अगर आप अधिक असमर्थित सुविधाओं transpile की जरूरत प्लगइन्स जोड़ने के लिए की आवश्यकता होगी।

वैकल्पिक babel-preset-env

babel-preset-env स्वतः ही निर्धारित करता क्या प्लगइन्स आपके द्वारा निर्दिष्ट पर्यावरण के लिए की जरूरत है। इसमें कोई भी प्लगइन्स शामिल नहीं होगा जो आवश्यक नहीं है। अपने वर्तमान नोड संस्करण निर्दिष्ट करने के लिए आप इस .babelrc का प्रयोग करेंगे:

{ 
    "presets": [ 
    ["env", { 
     "targets": { 
     "node": "current" 
     } 
    }] 
    ] 
} 
7

लघु जवाब

नोड 6.x के लिए

उपयोग कोलाहल पूर्व निर्धारित:

लांग जवाब

क्या ES सुविधा समर्थित है देखने के लिए किसी दिए गए नोड संस्करण में , देखें:

के लिए विशेष रूप से async/await समर्थन, देखें:

आप नोड v7.x का उपयोग करते हैं (वर्तमान संस्करण) तो आप --harmony ध्वज का उपयोग कर सकते हैं औरका उपयोग कर सकते हैं/await बिना पारदर्शी के मूल रूप से।

नोड v8.x (रात के निर्माण के रूप में उपलब्ध) को इसके लिए --harmony ध्वज की भी आवश्यकता नहीं है।

लेकिन ध्यान दें नोड का समर्थन नहीं करता है कि import/export - पता करने के लिए क्यों:

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