已转入 yarn2,放弃使用 lerna+yarn1 的组合,具体原因参考 yarn2 使用 中描述的动机。

根据依赖图并行运行 npm 命令

lerna run --include-dependencies --stream <npm script>

参考: --streamopen in new window--include-dependenciesopen in new window

rollup 捆绑 monorepo 仍然存在错误

目前 rollup + node-resolve 插件捆绑本地依赖时仍然存在一些问题,参考:https://github.com/rollup/plugins/issues/743open in new window,目前的替代方案是 esbuildopen in new window

有时候会始终无法安装正确的版本

例如在 package.json 中声明了依赖

{
  "rollup": "^2.51.0" // 实际安装的可能是 2.50.6
}

1622999313766

强制发布新版本

有时候,你也许不小心发布了一个错误的版本,如果希望重新发布,请使用 lerna publish --force-publish

适用场景

  • 多个开源工具库:例如 babel、react、vue 这种包含许多功能的开源项目
  • 不同技术栈的功能的分离:例如分离 electron 主进程与渲染进程,分别在不同的模块开发

如何清理所有 node_modules 和 dist

lerna clean -y && lerna exec -- rimraf dist