介绍
tsdown 是优雅的库构建工具。它以简洁和高效为设计理念,为您的 TypeScript 和 JavaScript 库提供无缝且高效的打包方式。无论您正在构建小型工具库还是复杂的功能库,tsdown
都能让您专注于核心代码开发,同时以优雅的方式处理打包流程。
为什么选择 tsdown?
tsdown
基于 Rolldown 构建,这是一款采用 Rust 编写的前沿打包工具。尽管 Rolldown 本身就是功能强大的通用型工具,但 tsdown
更进一步,为库开发者提供了完整的开箱即用解决方案。
tsdown 与 Rolldown 的主要区别
- 简化的配置:
tsdown
提供了针对库开发的合理默认配置,减少了复杂配置的需求。它提供了简洁的使用体验,让您专注于代码,而不是打包过程。 - 面向库的特性:与作为通用打包器的 Rolldown 不同,
tsdown
专为构建库而优化。它包括自动生成 TypeScript 声明文件和支持多种输出格式等功能。 - 前瞻准备:作为 Rolldown 的官方项目,
tsdown
深度融入于其生态系统体系,并将随着 Rolldown 的发展不断演进。依托 Rolldown 的技术前沿突破,tsdown
致力于探索库开发的新可能性。此外,tsdown
被定位为 Rolldown Vite 库模式 的核心基座,为库开发者提供长期稳定、功能完备的开发体验。
插件生态系统
tsdown
支持整个 Rolldown 插件生态系统,使您可以轻松扩展和自定义构建过程。此外,它还兼容大多数 Rollup 插件,为您提供了丰富的现有工具库。
有关更多详细信息,请参阅 插件 文档。
它能打包什么?
tsdown
专为现代库开发设计,能够处理所有必要的任务:
- TypeScript 和 JavaScript:无缝打包
.ts
和.js
文件,支持现代语法和特性。 - TypeScript 声明文件:自动为您的库生成声明文件(
.d.ts
)。 - 多种输出格式:生成
esm
、cjs
和iife
格式的包,确保兼容不同的运行环境。 - 资源文件:支持包含和处理非代码资源文件,如
.json
或.wasm
。
通过内置的除屑优化、压缩和源映射支持,tsdown
确保您的库为生产环境做好了充分优化。
快速且优雅
tsdown
的设计目标是快速。借助 Rolldown 基于 Rust 的高性能,即使对于大型项目,它也能提供极快的构建速度。同时,它也非常优雅——提供了一个干净直观的配置系统,最大限度地减少样板代码并提升生产力。
快速上手
准备好开始了吗?查阅 快速上手 指南,构建您的第一个 tsdown
项目。
致谢
tsdown
的诞生离不开开源社区以及 JavaScript 和 TypeScript 生态中众多创新工具的支持。我们感谢所有为本项目奠定基础的贡献者和维护者。
先驱项目
- Rollup:为现代 JavaScript 打包和强大的插件系统提供了最初的灵感。
- esbuild:展示了原生高速打包的强大能力,并推动了构建工具对性能的追求。
- tsup:为开箱即用的开发体验、众多 CLI 选项以及部分实现细节提供了重要参考。
- unbuild:为 tsdown 当前灵活的钩子系统提供了启发。
- Rolldown:作为高性能、基于 Rust 的核心引擎,为 tsdown 提供了强大动力,并实现了许多高级特性。