我正在尝试自动化托管在私有(private) github 存储库上的 Node.js 项目的版本升级。
该项目旨在在本地运行,因此未发布,也未发布。我组织中的人只需 pull 出 main
分支,然后使用 yarn && yarn start
在他们的机器上运行它。
我想要实现的目标
我想要实现的是,在预提交阶段对该项目的 package.json
进行版本更新(主要、补丁或次要),并与更改的代码一起提交根据提交信息。
我只想让我的 PR 包含 package.json
中的更改,而无需我手动执行。我不需要为此发布或 CI。
我成功的地方
我已经设置了 Husky 和 commitlint 以验证常规提交消息并且它工作正常。
我尝试过但失败了
我尝试使用 semantic-release
和其他包来提供此功能,但它们都暗示某处存在 CI 构建或发布,所以我被卡住了。
有什么想法吗?
最佳答案
如果你有任何类型的 CICD 管道(不完全限于 git hooks 范围),你可以使用 gitversion cli
它支持每个提交消息正则表达式的版本提升 configuration example :
major-version-bump-message: '\+semver:\s?(breaking|major)'
minor-version-bump-message: '\+semver:\s?(feature|minor)'
patch-version-bump-message: '\+semver:\s?(fix|patch)'
no-bump-message: '\+semver:\s?(none|skip)'
意味着带有消息 my commit msg +semver: fix
的提交将触发 patch
version bump
参见 this article并附有详细的设置说明。
关于node.js - 使用预提交 Hook 更新 package.json 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71267666/