Node.js 12 için TypeScript tsconfig ayarları?


Yanıtlar:


44

Node.js itibarıyla 12.0.0, ES2019% 100 desteklenmektedir. Bu sürümü veya daha yenisini hedeflediğinizi biliyorsanız, en uygun yapılandırma şöyle görünür:

  • "module": "commonjs"

    Node.js ES-Modülleri ekleme yolunda, ancak şimdilik CommonJS ile uğraşmak zorundayız.

  • "target": "es2019"

    Bu, TypeScript'e, ES2019'daki özelliklerle JavaScript sözdizimi çıktısının uygun olduğunu bildirir . Uygulamada bu, örneğin, bir çoklu dolguyu gömmek yerine nesne dinlenme / yayılma özellikleri ve zaman uyumsuz / beklemede sözdizimi çıktısı alacağı anlamına gelir.

  • "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"]

    Bu, TypeScript'e ES2019 veya önceki sürümlerde sunulan işlevleri ve özellikleri kullanmanın uygun olduğunu bildirir . Pratikte bu, örneğin String.prototype.trimStartve Array.prototype.flat.

    ES2019 ek olarak, aynı zamanda node.js 12 destekler BigIntve matchAllES2020, biz ES2020 ek tanımları bulunmaktadır ürünüyle ilgilidir.

Böylece tam yapılandırma şöyle olacaktır:

{
  "compilerOptions": {
    "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"],
    "module": "commonjs",
    "target": "es2019"
  }
}

Node.js 12.9.0veya daha yenisini hedefliyorsanız "lib": ["es2020"], bu sürümün ES2020'de tanıtılan tüm yeni işlevleri ve özellikleri desteklediğini belirtebilirsiniz . Yine de yeni JavaScript sözdizimini desteklemediğinden, hala devam etmelisiniz "target": "es2019".

Böylece tam yapılandırma şöyle olacaktır:

{
  "compilerOptions": {
    "lib": ["es2020"],
    "module": "commonjs",
    "target": "es2019"
  }
}

Node.js 14 çalıştırıyorsanız, Node.js 14 için benzer cevabımı burada görebilirsiniz

Node.js 10 çalıştırıyorsanız, Node.js 10 için benzer cevabımı burada görebilirsiniz

Node.js 8 çalıştırıyorsanız, Node.js 8 için benzer cevabımı burada görebilirsiniz


Does "target"etkileyecek "lib"eğer herhangi bir şekilde "lib"config boş bırakılır? Ben sadece varsayılan "target": "es2020"ne varsa "lib"? Bu benim için her zaman bir gizem kaynağı oldu.
Sumomo

@Sumomo bu cevap ( stackoverflow.com/a/50987516/148072 ) biraz fikir verir. Ben "ES6" varsayılan lib için ne sağlar hakkında daha fazla bilgi bulamadım rağmen
Linus Unnebäck

1
Orada da es2020.promise Düğüm 12.10.0 başlayarak desteklenen hangi anda orada.
Ivan Yarych

1
@IvanYarych cevabımın alt kısmında node.js> = 12.9.0 için es2020 içeren ve es2020 içeren bir bölüm var
Linus Unnebäck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.