【问题标题】:Issues with lerna independent versioning + Github Actionslerna 独立版本控制 + Github Actions 的问题
【发布时间】:2020-10-23 10:11:32
【问题描述】:

这是我第一次与 lerna 合作,我在独立版本控制方面遇到了一些问题,刚开始我在没有 --independent 的情况下运行 lerna init,后来我在 lerna.json 中添加了它发布了初始版本。

我正在使用 Github Actions for CI,一切正常,但 lerna 继续发布我拥有的包的新版本,即使我没有对其进行更改,例如,如果我在 README 文件中添加一些内容,它将仍然更新我拥有的包的版本并发布一个新版本,我也在使用传统的提交。

这是我的lerna.json

{
  "packages": [
    "packages/*"
  ],
  "version": "independent",
  "npmClient": "npm",
  "workspaces": true,
  "command": {
    "publish": {
      "conventionalCommits": true,
      "message": "chore: new release"
    }
  }
}

我尝试删除所有标签并运行对包进行更改的构建以部署另一个版本,但在包外发生的所有其他更改仍会触发包的新版本..

【问题讨论】:

    标签: javascript github npm lerna


    【解决方案1】:

    除非设置了ignore-changes 标志,否则对源文件的更改将触发发布。它有其自身的局限性,请使用类似的用例查看此问题:https://github.com/lerna/lerna/issues/2437。常规提交将有助于正确的 SemVer 标记,但它至少会生成补丁升级,例如您的 README.md 文件更新。它不会阻止发布。

    您需要在 lerna 之外处理它,并且只有在您确定更改相关时才有条件地调用 lerna publishlerna changed 命令可以帮助您预览 lerna 看到的已更改包。

    此外,lerna 将在父级更改时发布子包。这可能会导致混淆和潜在的错误,请记住考虑到这一点。

    【讨论】:

    • 因此,例如,如果我对根目录进行更改,是否会触发所有包的版本冲突?这是为什么?有没有办法防止这种情况发生?
    • 不,根不应该触发更改,但是如果您更新任何包,它将发布其所有依赖关系树。
    • 好吧,当我更新根目录中的任何内容时,例如我的自动构建文件,它会触发所有包的版本提升,这是我现在遇到的问题:/
    • 如果不查看完整的 repo,我不能肯定地说,但它看起来像一些配置问题。也许使用 package.json 文件中的 main/files 引用,或者更深层次的东西。 NPM 可能正在寻找作为“可发布文件”的一部分的根目录,但实际上并非如此。
    • 这是有问题的仓库,它是我为试用 lerna 而制作的测试仓库:github.com/opllama2/opllamajs
    猜你喜欢
    • 2022-09-23
    • 2020-02-03
    • 2021-06-19
    • 1970-01-01
    • 2020-11-02
    • 2020-05-30
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多