1. 什么是MonoRepo
MonoRepo 是一种将多个项目代码存储在一个仓库里的软件开发策略(mono 意为单一,repo 意为 仓库)。与之相对的是另一种流行的代码管理方式 MultiRepo,即每个项目对应一个单独的仓库来分散管理。
2. 工作区
MonoRepo 的主要构件是工作空间。您构建的每个应用程序和包都将在它自己的工作区中,有它自己的package.json。工作空间可以相互依赖。
您还将拥有一个根工作区在代码库的根文件夹中。这是地方用来:
1. 指定整个monorepo中存在的依赖关系
2. 添加在上操作的任务全部monorepo,不仅仅是个人工作区
3. 添加关于如何使用monorepo的文档
3. 代码分享
代码分享有以下方式
1. build + npm:需要打包、发布的操作
2. npm link:基于源码的共享,但是存在一些需要build的使用场景
3. build + npm link
4. MonoRepo 工具
lerna
Changesets
Turborepo
Nx