Vue 團隊又一重磅力作來了!
最近發現了 Vue 團隊成員開發的新打包工具——Tsdown。這是一個由 Rolldown 驅動的快速打包工具,主要為 TypeScript 庫提供更快的打包方案。它和 tsup 功能類似,但借助 Rolldown 的性能優勢,同時支持 Rollup 和 Vite 插件。Tsdown 目前還在開發中,還沒有準備好用于生產環境。
Tsup 是基于 esbuild 的快速打包工具,專為需要快速迭代的 TypeScript 項目設計,適用于庫開發、工具腳手架或輕量級應用打包。
Rolldown 和 Tsdown 的開發目標是逐步替換現有打包工具(如 Rollup 和 esbuild),提供更高效的構建方案。
核心功能
? 速度快:Tsdown 基于用 Rust 開發的 Rolldown,Rolldown 官方稱比 Rollup 快 10-30 倍,適合大型項目快速打包。
? 插件兼容:通過 Rolldown 的 Rollup 兼容接口,支持 Rollup 和 Vite 插件,開發者可以直接使用現有插件。
? TypeScript 優化:開箱即用,支持 CJS 和 ESM 格式。通過 unplugin-isolated-decl(基于 Oxc)快速生成 .d.ts 類型文件。
? 依賴處理:能高效管理外部依賴和同級依賴,保持輸出包體積精簡。
? 遷移方便:兼容 tsup 的命令行參數,支持復用 Vite/Vitest 配置文件。
與其他工具對比
? 和 tsup 相比:Tsdown 使用 Rolldown 的 Rust 性能,速度可能更快,且支持更多插件。
? 和 esbuild 相比:在保持高速的同時,彌補了 esbuild 插件生態不足的問題。
? 和 Rollup 相比:保留了 Rollup 的插件系統,但性能顯著提升。
里程碑
? 2024年6月:首次發布,實現與 tsup 功能對齊,支持 CJS/ESM 輸出和依賴優化。
? 2025年4月:已經整合到 Rolldown 生態,未來將成為 Vite 遷移 Rolldown 后的技術基礎。
適用場景
? 為需要類型定義的庫/框架提供高效構建
? 與 Rolldown、Vite 等工具鏈配合使用
小結
Tsdown 是基于 Rolldown 的高性能打包工具,整合了速度、兼容性和 TypeScript 支持的優勢。雖然目前還不成熟,但它的潛力值得關注。當 Rolldown 和 Tsdown 進一步完善后,可能會改變 JavaScript 和 TypeScript 的開發工具格局,尤其是在 Vite 生態中。