lerna 发布失败后的解决方案

发布于 2022-06-16 17:25:57 字数 1876 浏览 1046 评论 0

lerna 作为多个包依赖的管理解决方案,确实解决了很多痛点,我目前在工作和生活中已经大量使用了 lerna,但同时也会遇到一些问题,发布失败后的问题是遇到比较频繁的问题,因此记录一下

lerna publish 主要做了以下几件事:

  • 检查从上一个 git tag 之后是否有提交,没有提交就会显示 No changed packages to publish 的信息,然后退出
  • 检查依赖了修改过的包的包,并更新依赖信息
  • 提交相应版本的 git tag
  • 发布修改的包及依赖它们的包

看上去非常理想,但是使用起来可能很蛋疼,往往出问题的可能就是最后一步,发布包的问题,有可能你的网络情况有问题,有可能你没有登录npm(包括公司内部的 registry ),如果你需要发布到指定的 registry 上,你可以在 lerna.json 上指定:

"command": {
    "publish": {
      "message": "chore(release): publish",
      "registry": "http://legos.wq.jd.com/legosv5/registry/"
    }
  },

我已经遇到了好几次这个问题,如下:

关于这个问题,社区也有相应的讨论,可以在 lerna 项目的issue中找到,如 524、1894

对此,lerna 到目前为止并没有提供很好的解决方案。

你可以在你这次失败之后使用 from-git 参数,即 lerna publish from-git

或者我们可以手动回退 git 到 release 之前的版本,并删除相应的 git tag,如下:

git reset --hard HEAD~1 && git tag -d $(git log --date-order --tags --simplify-by-decoration --pretty=format:'%d' | head -1 | tr -d '()' | sed 's/,* tag://g')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

慕烟庭风

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文