changeset发版管理工具
是什么:自动化更新包版本、变更日志,并根据提供的信息发布新版本的包。不用在每次发布版本后手动在变更日志中追加发版内容,工具会自动追加变更内容,日志遵循 https://semver.org/ 规范
怎么用:
1. 安装,我用的pnpm,所以第一步 pnpm i changeset
2. pnpm exec changeset init,然后生成.changeset文件夹,下面有个 config.json 配置,配置大概说明:
changelog:changelog 生成方式
commit: 不要让 changeset 在 publish 的时候帮我们做 git add
linked: 配置哪些包要共享版本
access: 公私有安全设定,内网建议 restricted ,开源使用 public
baseBranch: 项目主分支
updateInternalDependencies: 确保某包依赖的包发生 upgrade,该包也要发生 version upgrade 的衡量单位(量级)
ignore: 不需要变动 version 的包
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: 在每次 version 变动时一定无理由 patch 抬升依赖他的那些包的版本,防止陷入 major 优先的未更新问题
3. 我针对常用命令做了几个自定义指令放在script,可以通过pnpm run XXX的方式启动,如下:
"scripts": { "changeset": "changeset", // 这个命令会让你选择几种发版方式,补丁,主版本,次版本,如图1.1,选版本后,会让你输入这次提交代码的修改内容,输入回车后会新增一个md文件,包括了刚才提交的内容,该文件在.changeset下,如图1.2 "changeset-version": "changeset version", // 执行后修改版本号,此时 新增.changeset下的md文件会消失,内容会合并到CHANGELOG.md中 "changeset-pre-beta": "changeset pre enter beta", // 进入预发布模式,有beta next alpha,默认next "changeset-pre-next": "changeset pre enter next", "changeset-pre-alpha": "changeset pre enter alpha", "changeset-pre-exit": "changeset pre exit"// 推出预发布模式 },
图1.1,发布内容的类型选择
图1.2,提交更新内容后产生的文件位置和内容
4. 建议在README.md中加入一个变更日志链接。然后放上这个CHANGELOG.md的链接,方便使用者了解发布信息
5.更多信息可以参考:https://blog.csdn.net/bobo789456123/article/details/137018577
6.demo文件:https://github.com/864684766/changesetTest/blob/main/CHANGELOG.md