- CLI tool untuk membangun pustaka TypeScript menjadi ESM/CJS dengan mudah tanpa bundler
- Berawal sebagai alat build internal Zod, kini dirilis sebagai alat serbaguna untuk semua pustaka TypeScript
- Memanfaatkan tsc (TypeScript compiler) untuk mendukung build tingkat produksi tanpa bundler, termasuk rewrite ekstensi, build modul ganda, pembuatan
exportsotomatis, dan fitur lain - Cocok untuk deployment cepat dan otomatisasi CI/CD, serta sangat direkomendasikan saat perlu menyiapkan paket gaya pustaka (ESM/CJS sekaligus)
- Otomatisasi deklarasi tipe/exports/bin membantu mencegah kesalahan pemeliharaan dan deployment
Fitur dan fungsi utama
- Build modul ganda: membuat file ESM(.js) dan CJS(.cjs) sekaligus
- Tanpa bundler/pengaturan tambahan: bekerja tanpa webpack, esbuild, rollup, dll., hanya membutuhkan
package.jsondantsconfig.json - Manajemen entrypoint deklaratif: tentukan langsung entrypoint, subpath, wildcard, dll melalui
package.json#/zshy - Pembuatan
exportsotomatis: memutakhirkan secara otomatis field"exports"dipackage.jsonsetelah build - Struktur file fleksibel: tidak memaksakan struktur tetap
src/out, ekstensi impor juga bebas digunakan - Penanganan aset: menyalin otomatis berkas non-JS juga
- Dukungan .tsx: mengonversi menjadi .js/.cjs/.mjs sesuai
tsconfig - Dukungan CLI: saat entrypoint
binditentukan, membuatpackage.json#/binsecara otomatis - Dapat lebih lambat: berfokus pada pengecekan tipe dan konversi milik
tsc, mengutamakan reliabilitas/akurasi daripada kecepatan build
Prinsip kerja utama dan pembeda
- Penulisan ulang otomatis ekstensi (
.js/.cjs/.mjs) dan jalur impor lewat TypeScript Compiler API - Setiap entrypoint menghasilkan file ESM/CJS dan deklarasi tipe (
.d.ts/.d.cts) sekaligus - Dukungan entrypoint
binuntuk CLI: zshy menulis jalur kepackage.json#/binsecara otomatis, juga mendukung shebang saat dibutuhkan - Struktur file fleksibel, cukup menentukan
outDirditsconfig package.json#/exportsdibuat otomatis dan ditimpa saat build
Fitur lanjutan dan kompatibilitas
- Dukungan wildcard/subpath: deklarasi jalur seperti
./plugins/*dimungkinkan, membangun otomatis semua subpath di dalam direktorisrc - Mayoritas opsi
tsconfig.jsondidukung (beberapa opsi terkait module di-override per build CJS/ESM) - Kode impor tanpa ekstensi juga diizinkan (
from "./utils"dll.), dan ekstensi diperbaiki otomatis saat build - Lingkungan React Native/legacy juga dapat ditangani lewat flat build mode (output build ke root paket, akses lewat
index.jstanpaexports) - Dukungan kondisi ekspor kustom (
sourceDialects): memungkinkan menambahkan kondisi sepertisource
Keunggulan dibandingkan alat kompetitor
- Dibanding
tshy/tsup/tsdown, zshy tidak membuat direktori/paket stub terpisah; semua hasil build dirapikan dalam satuoutDir - Pemanfaatan API resmi TypeScript, memaksimalkan kompatibilitas dengan alur standar terbaru Node.js/ESM/CJS/TypeScript
- Tanpa kebutuhan config tambahan atau bundler, paket TypeScript level pustaka dapat diterbitkan dengan satu perintah saja
Belum ada komentar.