一 Monorepo 是管理项目代码的一个方式,指在一个项目仓库 (repo) 中管理多个模块/包 (package),不同于常见的每个模块建一个 repo。
目前不少开源项目采用这种方式,如 Babel
二 Lerna:
monorepo不好的方面则主要是 repo 的体积较大。特别是,因为各个 package 理论上都是独立的,所以每个 package 都维护着自己的 dependencies,而很大的可能性,package 之间有不少相同的依赖,而这就可能使install
时出现重复安装,使本来就很大的 node_modues
继续膨胀,所以目前最常见的 monorepo 解决方案是 Lerna 和 yarn
的 workspaces
特性
推荐阅读: