You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在fixed/locked模式下避免仅版本号更新的发布?

解决Lerna-Lite固定模式下无变更仍发布版本的问题

当你在fixed/locked模式下使用Lerna-Lite,即便没有符合版本升级规则的Conventional Commits提交,执行lerna version或publish仍会生成新版本,这是工具的默认行为,但可以通过以下方法规避:

1. 结合约定式提交与文件过滤

执行版本命令时,启用--conventional-commits让工具识别符合规则的提交,同时用--ignore-changes过滤不影响代码逻辑的文件变更(比如文档、注释类文件):

lerna version --conventional-commits --ignore-changes "*.md" "*.txt" "docs/**/*"

只有包含feat(minor升级)、fix(patch升级)或BREAKING CHANGE(major升级)的提交才会触发版本更新,无关变更不会触发空版本发布。

2. 配置文件固化规则

把上述参数写到lerna.json里,避免每次重复输入:

{
  "packages": ["packages/*"],
  "version": "fixed",
  "command": {
    "version": {
      "conventionalCommits": true,
      "ignoreChanges": ["*.md", "*.txt", "docs/**/*"]
    }
  }
}

之后直接运行lerna version就会自动应用这些校验规则。

3. 前置校验提交内容

在执行发布前,手动检查最近的提交是否包含触发版本升级的类型:

# 检查最近一次提交是否属于版本变更类型
git log --pretty=format:"%s" -1 | grep -E "^(feat|fix|BREAKING CHANGE)"

如果没有匹配结果,直接跳过本次发布即可。也可以把这个逻辑写成脚本,集成到你的发布流程中做自动校验。

4. 临时跳过版本更新(特殊场景用)

如果只是想执行发布流程但不需要更新版本,可临时使用--no-git-tag-version参数跳过版本文件修改和Git标签创建:

lerna publish --no-git-tag-version

注意:这个方法不适合常规流程,仅用于临时需求。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 07:57:33