从 tsup 迁移
tsup 是一个功能强大且广泛使用的打包器,与 tsdown
有许多相似之处。tsup
基于 esbuild 构建,而 tsdown
则利用了 Rolldown 的强大能力,带来更快速、更强大的打包体验。
迁移指南
如果您当前正在使用 tsup
并希望迁移到 tsdown
,迁移过程非常简单,因为 tsdown
提供了专门的 migrate
命令:
bash
npx tsdown migrate
WARNING
在迁移之前,请保存您的更改。迁移过程可能会修改您的配置文件,因此请确保所有更改已提交或备份。
迁移选项
migrate
命令支持以下选项,用于自定义迁移过程:
--cwd <dir>
(或-c
):指定迁移的工作目录。--dry-run
(或-d
):执行预览迁移(dry run),不会进行任何实际更改。
通过这些选项,您可以轻松调整迁移过程以适应您的特定项目设置。
与 tsup 的区别
虽然 tsdown
旨在与 tsup
高度兼容,但仍有一些差异需要注意:
默认值
format
:默认值为esm
。clean
:默认启用,每次构建前会清理outDir
。dts
:如果您的package.json
中包含typings
或types
字段,则会自动启用。target
:默认情况下,如果package.json
中存在engines.node
字段,则会读取该字段的值。
功能差距
tsdown
尚未实现 tsup
中的某些功能。如果您发现缺少某些您需要的选项,请 提交问题 告诉我们您的需求。
tsdown 的新功能
tsdown
还引入了一些 tsup
中没有的新功能:
nodeProtocol
:控制 Node.js 内置模块导入的处理方式:true
:为内置模块添加node:
前缀(例如,fs
→node:fs
)'strip'
:从导入中移除node:
前缀(例如,node:fs
→fs
)false
:保持导入不变(默认)
迁移后,请仔细检查您的配置以确保其符合您的预期。
致谢
tsdown
的诞生离不开开源社区的启发和贡献。我们衷心感谢以下项目和个人: