monorepo 不仅限于前端,但此篇博文只谈前端。
是什么
wikipedia: In version control systems, a monorepo (“mono” meaning ‘single’ and “repo” being short for ‘repository’) is a software development strategy where code for many projects is stored in the same repository.
翻译过来就是:在版本控制系统中,monorepo 是一种软件开发策略,其中许多项目的代码存储在同一存储库中。
为什么
在公司内,如果项目较多,每一个项目都会有一个Git仓库,就会导致新来的员工每一次更改项目的时候都需要从 Git 仓库上面拉一份代码下来比较麻烦。
那如果将所有的项目放在一个仓库一起管理呢?这就是 monorepo。
优点
- 对依赖统一进行管理。
- 可以抽取逻辑维护公共库。
- 所有项目统一配置相同的工程配置。
缺点
- 需要有比较严格的 CR 规范。
- Git 权限管理难以控制。
- 版本控制比较麻烦
项目都需要规范的流程。
怎么做
目前来说,前端算是有两种比较常见的对 monorepo 的方案:
当然,它们也可以同时使用。