टाइपस्क्रिप्ट tsconfig Node.js 12 के लिए सेटिंग्स?


जवाबों:


44

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"डिफ़ॉल्ट है? यह हमेशा मेरे लिए रहस्य का स्रोत रहा है।
सुमोमो

@Sumomo यह उत्तर ( stackoverflow.com/a/50987516/148072 ) थोड़ी जानकारी देता है। हालाँकि मुझे "ES6" की तुलना में नए रूप में कोई जानकारी नहीं मिली है जो डिफ़ॉल्ट रूप से
देयता

1
वहाँ भी es2020.promise है जो अब नोड 12.10.0 से शुरू होने का समर्थन करता है।
इवान यरीच

1
@IvanYarych मेरे उत्तर के निचले हिस्से में Node.js> = 12.9.0 का एक भाग है, जिसमें es2020 शामिल है, जिसमें es2020 शामिल है। संक्षिप्त करें
Linus Unnebäck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.