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