9 poin oleh xguru 2025-08-11 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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 exports otomatis, 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.json dan tsconfig.json
  • Manajemen entrypoint deklaratif: tentukan langsung entrypoint, subpath, wildcard, dll melalui package.json#/zshy
  • Pembuatan exports otomatis: memutakhirkan secara otomatis field "exports" di package.json setelah 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 bin ditentukan, membuat package.json#/bin secara 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 bin untuk CLI: zshy menulis jalur ke package.json#/bin secara otomatis, juga mendukung shebang saat dibutuhkan
  • Struktur file fleksibel, cukup menentukan outDir di tsconfig
  • package.json#/exports dibuat otomatis dan ditimpa saat build

Fitur lanjutan dan kompatibilitas

  • Dukungan wildcard/subpath: deklarasi jalur seperti ./plugins/* dimungkinkan, membangun otomatis semua subpath di dalam direktori src
  • Mayoritas opsi tsconfig.json didukung (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.js tanpa exports)
  • Dukungan kondisi ekspor kustom (sourceDialects): memungkinkan menambahkan kondisi seperti source

Keunggulan dibandingkan alat kompetitor

  • Dibanding tshy/tsup/tsdown, zshy tidak membuat direktori/paket stub terpisah; semua hasil build dirapikan dalam satu outDir
  • 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.

Belum ada komentar.