参考文章:【译】配置 Monorepo 的几种工具 lerna、npm、yarn 及其性能对比 - 知乎
Monorepo
Monorepo 是管理项目代码的一个方式,指在一个项目仓库 (repo) 中管理多个模块/包 (package),常见的是组件库 和 大型复杂的项目中。
类似下面的结构
├── packages
| ├── pkg1
| | ├── package.json
| ├── pkg2
| | ├── package.json
├── package.json
具有一下优势
1. 统一的工作流和Code Sharing:比如我想看一个 pacakge 的代码、了解某段逻辑,不需要找它的 repo,直接就在当前 repo;当某个需求要修改多个 pacakge 时,不需要分别到各自的 repo 进行修改、测试、发版或者 npm link
,直接在当前 repo 修改,统一测试、统一发版。
2. 简化依赖管理:避免重复安装包,因此减少了磁盘空间的占用,并降低了构建时间
3.统一配置:合并同类项 - Eslint,Typescript 与 Babel