node.js - 使用预提交 Hook 更新 package.json 版本

标签 node.js git package.json husky

我正在尝试自动化托管在私有(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/

相关文章:

javascript - 如何将所需的模块对象传递给 puppeteer page.evaluate

javascript - 我可以使用 Visual Studio Code 分析 NodeJS 应用程序吗?

javascript - 使用 webhooks 将 Github 版本部署到 Node 服务器

reactjs - 由于 react 脚本错误,无法运行 React 项目

javascript - 更改URL的特定参数

node.js - Node.js/Express.js 中的 Redis Bitset 操作

git - 在大型项目中使用 zend 框架和 git

git-commit 类似 vim 的语法在 emacs 中突出显示

javascript - 如何自动更新 package.json 中的条目?

javascript - 如何在 package.json 脚本中运行多个命令?