दलील
जब आपके कोड transpiling, कोलाहल वास्तव में आप लक्षित ES संस्करण द्वारा समर्थित नहीं सुविधाओं का अनुकरण करने के सहायकों इंजेक्षन जाएगा।
उदाहरण के लिए: class MyClass {}
इनलाइन सहायक _classCallCheck
का लाभ उठाता है, जिसे require('babel-runtime/helpers/classCallCheck')
के माध्यम से भी एक्सेस किया जा सकता है।
डिफ़ॉल्ट रूप से, उन सहायकों को संकलन इकाइयों (फ़ाइलों) के बीच साझा नहीं किया जाता है। बेबेल टीम हालांकि उन्हें एक स्थान पर कारगर बनाना दिलचस्प हो सकता है, जब वे कई बार उपयोग किए जाते हैं तो अंतरिक्ष को बचाने की अनुमति देते हैं।
इस समस्या को babel-plugin-transform-runtime
प्लगइन बनाकर संबोधित किया गया है, जो एएसटी चलता है और babel-runtime
मॉड्यूल की उचित आवश्यकता के अनुसार हेल्पर्स इंजेक्शन को प्रतिस्थापित करता है। इस तरह हेल्पर्स को कोडबेस में साझा किया जाता है और डुप्लिकेशन से बचा जाता है। जो सहायकों दूर करने के लिए अपने कोड को बदल देती है और babel-runtime
में लोगों का उपयोग करता
- स्थापित
babel-plugin-transform-runtime
(एक devDependency
के रूप में),: यह
का उपयोग कैसे करें आप यह मानते हुए एक running Babel environment है। आप अपने कोलाहल विन्यास की plugins
सरणी
- स्थापित
babel-runtime
(एक dependency
के रूप में) है, जो वास्तविक पुस्तकालय babel-plugin-transform-runtime
मान लिया गया है कि आप अपने dependencies
में है करने के लिए जा रहे हैं करने के लिए इसे जोड़ने की जरूरत है, यह आपके transpiled कोड द्वारा उपयोग किया जाएगा चलने के समय पर। आपको अपने कोड में कहीं भी इसकी आवश्यकता नहीं है।
मिनिमल टुकड़ा
npm run build
dist
npm start
में lib
फ़ोल्डर संकलित dist
फ़ोल्डर (जो babel-runtime
पर निर्भर करता है) शुरू होता है
package.json
{
"scripts": {
"build": "babel lib --out-dir=dist",
"start": "node dist"
},
"dependencies": {
"babel-runtime": "^6.9.2"
},
"devDependencies": {
"babel-cli": "^6.10.1",
"babel-plugin-transform-runtime": "^6.9.0"
},
"babel": {
"plugins": [
"transform-runtime"
]
}
}
फिर 'ट्रांसफॉर्म-रनटाइम' प्लगइन पैकेज और 'बेबेल-रनटाइम' पैकेज के बीच क्या अंतर है? मैं कैसे सत्यापित कर सकता हूं कि यह काम कर रहा है? – cosmosb