lerna publish

lerna publish 就是将 monorepo 需要发布的包,发布到 npm registry 上面去。

 分为几种不同的场景去运行:

lerna publish 永远不会发布 package.json 中 private 设置为 true 的包

lerna publish  
# lerna version + lerna publish from-git
# 发布自上次发布来有更新的包(这里的上次发布也是基于上次执行lerna publish 而言)
lerna publish from-git 
# 发布当前 commit 中打上 annoted tag version 的包(即 lerna publish from-git)
lerna publish from-packages 
# 发布 package 中 package.json 上的 version 在 registry(高于 latest version)不存在的包
# 发布在最近 commit 中修改了 package.json 中的 version (且该 version 在 registry 中没有发布过)的包(即 lerna publish from-package)
  • from-git 即根据 git commit 上的 annotaed tag 进行发包

  • from-package 即根据 lerna 下的 package 里面的 pkg.json 的 version 变动来发包

  • --canary 发测试版本的包

  • 剩下不带参数的情况就直接走一个 bump version(即执行 lerna version)

 思维导图

configureProperties -> initialize -> execute

在 lerna 中,几乎所有子命令源码的执行顺序都是按照这样一个结构在进行,lerna 本身作为一个 monorepo,主要是使用 core 核心中的执行机制来去分发命令给各个子项目去执行

 参考:深入 lerna 发包机制 —— lerna publish

猜你喜欢

转载自blog.csdn.net/qq_30436011/article/details/121103005