- बिना बंडलर के TypeScript लाइब्रेरी को आसानी से ESM/CJS में build करने वाला CLI टूल
- Zod के इन-हाउस बिल्ड टूल के रूप में शुरू होकर, अब सभी TypeScript लाइब्रेरी के लिए एक सामान्य-purpose सार्वजनिक टूल के रूप में उपलब्ध
- tsc (TypeScript compiler) का उपयोग करके extension rewrite, dual module build, exports auto-generate जैसे फीचर्स के साथ बिना बंडलर के भी production-grade build सपोर्ट देता है
- तेज़ deployment और CI/CD automation के लिए उपयुक्त, और यदि library-type package (ESM/CJS का simultaneous publish) बनाना हो तो इसे तेज़ी से recommend किया जा सकता है
- type declarations/exports/bin automation से maintenance/ deployment mistakes से बचाव में मदद मिलती है
प्रमुख विशेषताएँ और मुख्य फीचर्स
- ड्युअल मॉड्यूल बिल्ड: ESM(.js) और CJS(.cjs) फाइलें एक साथ जनरेट होती हैं
- बंडलर या अलग config की जरूरत नहीं: webpack, esbuild, rollup आदि के बिना चलता है, केवल
package.json और tsconfig.json की ही आवश्यकता होती है
- Entrypoint का declarative management:
package.json#/zshy में entrypoint, subpath, wildcard आदि सीधे specify करें
- exports ऑटो जनरेशन: बिल्ड के बाद
package.json का "exports" फील्ड अपने-आप अपडेट हो जाता है
- फाइल स्ट्रक्चर पर आज़ादी: src/out structure निश्चित नहीं होती, import extension भी फ्रीली इस्तेमाल कर सकते हैं
- asset handling: JS के अलावा अन्य फाइलें भी स्वतः कॉपी होती हैं
- .tsx support: tsconfig के अनुसार .js/.cjs/.mjs आदि में ट्रांसफॉर्म करती है
- CLI support: bin entrypoint सेट करने पर package.json#/bin auto-generate होता है
- धीमा हो सकता है: tsc के type check और transform पर फोकस होने से build speed से ज्यादा reliability/accuracy पर ध्यान रहता है
मुख्य ऑपरेशन का सिद्धांत और अलग पहचान
- TypeScript Compiler API के जरिए extensions (.js/.cjs/.mjs) तथा import path का automatic rewrite होता है
- entrypoint प्रति ESM/CJS फाइल, type declarations (.d.ts/.d.cts) साथ में generate होते हैं
- CLI के लिए bin entrypoint support: zshy package.json#/bin में path स्वतः लिखता है, और shebang support भी करता है
- फाइल स्ट्रक्चर स्वतंत्र, केवल tsconfig का outDir सेट करना पर्याप्त है
- package.json#/exports build के समय auto-generate और overwrite किए जाते हैं
उन्नत फीचर्स और कम्पैटिबिलिटी
- wildcard/subpath support:
./plugins/* जैसे path declare कर सकते हैं, वास्तविक src डायरेक्टरी के सभी subpath पर auto build होता है
- tsconfig.json के अधिकांश options का पालन (कुछ module संबंधित options को CJS/ESM build में override किया जाता है)
- import बिना extension वाले code की भी अनुमति (
from "./utils" आदि), build में extension खुद ठीक हो जाता है
- React Native/legacy environments भी flat build mode से support हो सकते हैं (build output पैकेज रूट पर, बिना exports के index.js से एक्सेस)
- custom exports condition (
sourceDialects) सपोर्ट: source condition आदि अतिरिक्त रूप से specify कर सकते हैं
प्रतिस्पर्धी टूल्स की तुलना में फायदे
- tshy/tsup/tsdown आदि से अलग, अलग directory/ package stub बनाए बिना सभी build outputs को एक ही outDir में organize करता है
- TypeScript official API का उपयोग, जिससे Node.js/ESM/CJS/TS के latest standard flow के साथ compatibility maximize होती है
- अतिरिक्त config, bundler की जरूरत बिना केवल एक command से library-grade TypeScript package publish करना संभव
अभी कोई टिप्पणी नहीं है.