前言

monorepo仓库管理,其实社区已经有很多成熟的方案出来了,总结一句话就是All In One。例如,多个包全部收纳到一个仓库里去做发布管理,一套配置,一套命令,完成buildpublish等。

参考:monorepo road map

今天着重讲一下在使用lerna包管理工具时,出现的问题。

问题:当lerna publish无法使用时,nexus也不允许重复提交。

先解释一下,什么是:”nexus也不允许重复提交”?>> nexus发包策略:1. 重复提交;2. 不允许重复提交。

原始人思路

  1. npm view pkg version;
  2. diff local pkg version;
  3. collect different pkg list;
  4. publish pkg list;

使用工具库:compare-versions

高级灵长类

学习lerna的思路:

  1. fetch from integrity with local version;
  2. publish pkg at the same time;

使用工具库: pacote

综合考量下来,第二种方案更为优雅,大批量包版本发布耗时最短。