tsconfig
आउटपुट कोड के लिए इष्टतम टाइपस्क्रिप्ट सेटिंग्स क्या है जो Node.js 12 पर चलाई जाएगी?
tsconfig
आउटपुट कोड के लिए इष्टतम टाइपस्क्रिप्ट सेटिंग्स क्या है जो Node.js 12 पर चलाई जाएगी?
जवाबों:
Node.js के रूप में 12.0.0
, ES2019 का 100% समर्थन किया गया है। यदि आप जानते हैं कि आप उस संस्करण या नए को लक्षित कर रहे हैं, तो इष्टतम विन्यास इस तरह दिखाई देगा:
"module": "commonjs"
Node.js यह ES-Modules जोड़ने का तरीका है, लेकिन अभी के लिए हमें CommonJS के साथ रहना होगा।
"target": "es2019"
यह टाइपस्क्रिप्ट को बताता है कि ES2019 की सुविधाओं के साथ जावास्क्रिप्ट सिंटैक्स का उत्पादन करना ठीक है । व्यवहार में, इसका मतलब है कि यह आउटपुट ऑब्जेक्ट बाकी / प्रसार गुण और async / प्रतीक्षा सिंटैक्स के बजाय एक पॉलीफ़िल को एम्बेड करेगा।
"lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"]
यह टाइपस्क्रिप्ट को बताता है कि ES2019 या इससे पहले शुरू किए गए कार्यों और गुणों का उपयोग करना ठीक है । व्यवहार में, इसका मतलब है कि आप उदाहरण के लिए String.prototype.trimStart
और का उपयोग कर सकते हैं Array.prototype.flat
।
ES2019 के अलावा, Node.js 12 भी ES2020 का समर्थन करता है BigInt
और इसके matchAll
बाद, हम 202020 से अतिरिक्त परिभाषाओं को भी शामिल करते हैं।
पूर्ण कॉन्फ़िगरेशन इस प्रकार होगा:
{
"compilerOptions": {
"lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"],
"module": "commonjs",
"target": "es2019"
}
}
यदि आप Node.js 12.9.0
या नए को लक्षित कर रहे हैं , तो आप बस यह निर्दिष्ट कर सकते हैं "lib": ["es2020"]
कि संस्करण सभी नए कार्यों और गुणों का समर्थन करता है ES2020 में पेश किए गए । हालांकि यह नए जावास्क्रिप्ट सिंटैक्स का समर्थन नहीं करता है , इसलिए आपको अभी भी रहना है "target": "es2019"
।
पूर्ण कॉन्फ़िगरेशन इस प्रकार होगा:
{
"compilerOptions": {
"lib": ["es2020"],
"module": "commonjs",
"target": "es2019"
}
}
यदि आप Node.js 14 चला रहे हैं तो आप मेरी देख सकते हैं यहाँ Node.js 14 के लिए समान उत्तर
यदि आप Node.js 10 चला रहे हैं तो आप मेरी देख सकते हैं यहाँ Node.js 10 के लिए समान उत्तर
यदि आप Node.js 8 चला रहे हैं, तो आप यहाँ Node.js 8 के लिए मेरा समान उत्तर देख सकते हैं
"target"
प्रभावित करता है"lib"
अगर"lib"
विन्यास में खाली छोड़ दिया जाता है? अगर मेरे पास बस है तो"target": "es2020"
क्या"lib"
डिफ़ॉल्ट है? यह हमेशा मेरे लिए रहस्य का स्रोत रहा है।