- Paketleyici olmadan TypeScript kütüphanelerini kolayca ESM/CJS olarak derleyen bir CLI aracı
- Zod için dahili bir derleme aracı olarak başladı; bugün ise tüm TypeScript kütüphaneleri için genel bir araç olarak sunuluyor
- tsc (TypeScript derleyicisi) kullanarak, uzantı yeniden yazma, çift modül derleme, exports otomatik oluşturma gibi özelliklerle, paketleyici olmadan da üretim kalitesinde derleme desteği sağlıyor
- Hızlı dağıtım ve CI/CD otomasyonuna uygun ve kütüphane tipi paket (ESM/CJS eşzamanlı dağıtım) kurmanız gerekiyorsa güçlü şekilde tavsiye edilir
- Tip bildirimleri/exports/bin otomasyonu ile bakım ve dağıtım hatalarının önüne geçilmesine yardımcı olur
Özellikler ve ana işlevler
- Çift modül derleme: ESM(.js) ve CJS(.cjs) dosyalarını tek seferde üretir
- Paketleyici/ekstra yapılandırma gerekmiyor: webpack, esbuild, rollup gibi araçlar olmadan çalışır; yalnızca
package.json ve tsconfig.json gerekir
- Giriş noktası bildirimsel yönetimi:
package.json#/zshy üzerinden giriş noktası, alt yol, wildcard vb. doğrudan belirtilir
- exports otomatik oluşturma: Derleme sonrası
package.json içindeki "exports" alanını otomatik olarak günceller
- Dosya yapısında özgürlük: src/out yapısının sabitlenmesi zorunlu değildir, import uzantıları serbestçe kullanılabilir
- Varlık işleme: JS dışındaki dosyalar da otomatik olarak kopyalanır
- .tsx desteği: tsconfig’e göre .js/.cjs/.mjs vb. biçimlere dönüştürür
- CLI desteği: bin giriş noktası belirlendiğinde package.json#/bin otomatik olarak oluşturulur
- Yavaş olabilir: tsc’nin tip denetimi ve dönüşüme odaklanması nedeniyle, derleme hızından çok güvenilirlik/doğruluk ön plandadır
Temel çalışma prensibi ve farklılıklar
- TypeScript Compiler API ile uzantıların (.js/.cjs/.mjs) ve import yollarının otomatik yeniden yazılması
- Her bir giriş noktası için ESM/CJS dosyası ve tip bildirimi (.d.ts/.d.cts) eşzamanlı üretilir
- CLI için bin giriş noktası desteği: zshy, package.json#/bin dosyasına yolu otomatik yazar; shebang de desteklenir
- Dosya yapısı özgür; yalnızca tsconfig’in outDir’i belirtilir
- package.json#/exports, derleme sırasında otomatik oluşturulur ve üzerine yazılır
Gelişmiş özellikler ve uyumluluk
- Wildcard/subpath desteği:
./plugins/* gibi yol deklarasyonu yapılabilir, src dizini içindeki tüm alt dizinlere otomatik olarak derleme uygulanır
- tsconfig.json seçeneklerinin çoğu desteklenir (bazı modül seçenekleri CJS/ESM derlemelerinde override edilir)
- Import uzantısı olmayan kod da kabul edilir (
from "./utils" vb.), derleme sırasında uzantı otomatik düzeltilir
- React Native/legacy ortamları da flat build mode ile karşılar (paket köküne derleme çıktısı verilir, exports olmadan index.js ile erişim sağlanır)
- Özel exports condition (
sourceDialects) desteği: source gibi ek koşullar belirtilir
Rakip araçlara göre avantajlar
- tshy/tsup/tsdown gibi araçlardan farklı olarak, ayrı dizin/paket stubları oluşturmadan tüm derleme çıktıları tek bir outDir’de toplanır
- TypeScript resmi API kullanımı, Node.js/ESM/CJS/TS’nin güncel standart akışı ve uyumluluğuyla en yüksek uyumu sağlar
- Ek config veya paketleyiciye ihtiyaç duymadan tek bir komutla kütüphane düzeyi TypeScript paketi dağıtımı yapılabilir
Henüz yorum yok.