将Lerna与Yarn工作区一起使用是否有任何优势?

时间:2018-09-05 09:31:09

标签: lerna monorepo yarn-workspaces

我们正在迁移Monorepo以使用Lerna

Lerna支持NPM和Yarn,并且还允许配置与Yarn工作区一起使用。对于我来说,尚不清楚带有纱线工作区的Lerna是否比带有NPM的Lerna有任何明显的优势。许多帖子声称Lerna开箱即用地与Yarn工作区差不多执行相同的操作。

与带有NPM的Lerna相比,将Lerna与Yarn工作区一起使用是否有任何优势?

2 个答案:

答案 0 :(得分:4)

据我所知,NPM没有与纱线workspaces相类似的任何机制。

Lerna + Yarn工作区在开发库时(与应用程序相对)开始发光,但是,我发现即使是应用程序,这种组合也可以通过提供诸如发布管理和功能等便利来使本地开发人员更好地体验。轻松定义和运行项目中所有包或选定包的“作用域”中的“根”脚本。

答案 1 :(得分:1)

经过一番调查,我发现以下差异:

  1. 使用NPM会为每个程序包生成一个package-lock.json文件,其中使用Yarn仅会在项目的根目录中创建一个
  2. 纱线工作区似乎对解决依赖关系树中的可能冲突提供了更好的支持(假设依赖关系在使用它们的模块中声明,请参见this issue