单仓库中版本控制和发布包
在单仓库中手动版本控制和发布包可能非常繁琐。幸运的是,有一个工具可以简化操作 - Changesets (在新标签页打开) CLI。
我们推荐 Changesets,因为它易于使用,并且 - 就像 Turborepo 一样 - 与您已经习惯使用的单仓库工具相匹配。
一些替代方案是
- intuit/auto (在新标签页打开) - 基于拉取请求上的语义版本标签生成发布
- microsoft/beachball (在新标签页打开) - 最阳光的语义版本提升器
理解 Changesets
我们建议您查看 Changesets 文档。以下是我们推荐的阅读顺序
- 为什么要使用 changesets? (在新标签页打开) - 介绍了基本原理。
- 安装说明 (在新标签页打开)
- 如果您使用的是 GitHub,请考虑使用 Changeset GitHub 机器人 (在新标签页打开) - 一个机器人,可以提醒您在 PR 中添加 changesets。
- 您还应该考虑添加 Changesets GitHub 操作 (在新标签页打开) - 一个使发布变得非常容易的工具。
在 Turborepo 中使用 Changesets
一旦您开始使用 Changesets,您将可以使用三个有用的命令
# Add a new changeset
changeset
# Create new versions of packages
changeset version
# Publish all changed packages to npm
changeset publish
将您的发布流程链接到 Turborepo 可以使组织您的部署变得更加简单和快速。
我们建议在您的根目录中添加一个 publish-packages
脚本到您的 package.json
{
"scripts": {
// Include build, lint, test - all the things you need to run
// before publishing
"publish-packages": "turbo run build lint test && changeset version && changeset publish"
}
}
我们推荐 publish-packages
,这样就不会与 npm 的内置 publish
脚本冲突。
这意味着,当您运行 publish-packages
时,您的单仓库将被构建、代码风格检查、测试和发布 - 并且您将受益于 Turborepo 的所有加速功能。