介绍

简单来说 changesets 就是生成 changelog的工具,有助于自动化发布流程,适用于管理版本及变更日志的工具,专注于多包管理,适合 Monorepo 项目的版本更新、管理和更新日志管理
它主要关心 [[monorepo]] 项目下子项目版本的更新、changelog 文件的生成、包的发布,它包含的信息有:

  • 需要发布的包
  • 包版本的更新层级(遵循 semver 规范)
  • CHANGELOG 信息

工作流程

Transclude of Changesets-包版本工具工作流程

命令

init

changeset init 再当前项目根目录生成一个 .changeset 目录,里面会生成一个 changeset 的 config 文件

add

可以直接执行 changeset 不带 add
根据 monorepo 下的项目生成一个changeset文件,里面会包含

  • 更新包的名称
  • 版本层级
  • CHANGELOG 信息

version

消耗 changeset 文件并且修改对应包版本以及依赖该包的包版本,同时会根据之前 changeset 文件里面的信息来生成对应的 CHANGELOG 信息

publish

会执行包的发布,并消耗掉 .changeset 目录下开发者生成的 changeset 文件,并自动写入根目录下的 CHANGELOG 文件

与 Pnpm 一起使用

在 pnpm 中使用 Changesets | pnpm