ts6to7 - TypeScript 5/6 → 7(tsgo) geçişini otomatikleştiren codemod
(github.com/zi-gae)Dün TypeScript 7 resmen yayımlandı. Go ile yeniden yazılan yerel derleyici (tsgo) sayesinde yaklaşık 10 kat hızlandı; ancak TS5/6'da deprecated olan derleyici seçeneklerinin tamamı kaldırıldı ve strict varsayılanı da true olarak değiştiği için — eski tsconfig kullanan projeler doğrudan yükseltilemiyor.
Bu mekanik kısmı otomatikleştiren bir codemod hazırladım.
npx ts6to7 --dry # önizleme (hiçbir şey yazmaz)
npx ts6to7 # uygula
Yaptıkları:
tsconfig*.jsondosyalarını yerinde düzenler —jsonc-parserile düzenlediği için yorumlar ve biçimlendirme aynen korunur- Kaldırılan seçenekleri TS7 eşdeğerlerine dönüştürür:
target: es5 → ES2015,module: umd/amd → ESNext,moduleResolution: node → NodeNext/Bundler,importsNotUsedAsValues → verbatimModuleSyntaxvb. baseUrl,pathsiçine katlanırtypescriptbağımlılığını^7.0.0sürümüne yükseltirstrictayarlanmamışsafalseolarak sabitler —extendsile başka config'leri devralan dosyaları değiştirmez, yalnızca uyarı verir (çünkü temel config zatenstrictayarlıyor olabilir)- Güvenli biçimde otomatik dönüştürülemeyen şeyleri (ES5'e özel runtime,
ts-node/ts-jestgibi eski derleyici API'sine dayanan araçlar, eksiktypesdizileri vb.) dosya bazında kapsamı belirlenmiş bir "manuel kontrol gerekli" kontrol listesi olarak çıktı verir
TypeScript 5'ten de doğrudan geçiş mümkün: 6'dan geçmek gerekmez. TS5 dönemine ait ignoreDeprecations seçeneğini ve proje referanslarındaki prepend ayarını da birlikte temizler.
Monorepo da destekleniyor (tüm paketleri tarar).
Şu anda sürüm 0.2.0. tsconfig'in hatalı dönüştürüldüğü durumlar varsa, ilgili tsconfig eklenmiş bir issue açmanız çok yardımcı olurdu.
Henüz yorum yok.