简介

Changesets 旨在简化版本管理和更新日志的生成过程。它允许开发者在开发过程中声明变更的发布方式,随后自动化更新包版本、生成更新日志,并发布新版本的包。Changesets 的核心优势在于解决多包仓库中包之间的依赖关系问题,确保依赖彼此的包保持同步更新,并且方便对一组包进行批量修改。

为什么需要 Changesets?

在组织包的发布过程中,可能希望将多个由不同人编写或在较长时间内完成的变更组合在一起发布。最佳的捕获这些信息的时机是在提交 PR 时(此时信息还在脑海中),而不是在最终批量发布这些变更时。Git 并不是一个存储此类信息的理想场所,因为它不鼓励编写详细的变更描述。Changesets 提供了一个更好的解决方案,允许开发者在 PR 提交时记录详细的变更信息,这些信息将被用于后续的版本控制和更新日志生成。

核心概念

  1. Changeset 文件

  2. 版本合并

  3. 更新日志生成

使用

  1. 初始化 Changesets
# pnpm
pnpm dlx @changesets/cli init
# yarn
yarn add @changesets/cli && yarn changeset init
# npm
npx @changesets/cli init

这将初始化 Changesets 配置文件 .changeset/config.json,并创建一个 .changeset 文件夹,用于存储 changeset 文件。

  1. 添加 changeset(变更记录)
pnpm changeset

该命令会启动一个交互式流程,提示你选择需要发布的包、指定版本类型(majorminorpatch),并输入变更描述。完成后,Changesets 会生成一个 changeset 的 Markdown 文件。

image.png