多项目管理策略:monorepo
What Is monorepo ?
Monorepo
是一种多项目放在一个仓库
(repository) 的管理策略
,这样的项目可以叫做 monorepo 项目。
优点 (Pros)
易于使用重复代码
:类似的功能或通信协议可以抽象到共享库中,并直接包含在项目中,而无需单独安装依赖
;简化依赖关系管理
:多个项目依赖的第三方依赖
可能会多次下载或构建
,在 monorepo 中,因为依赖都在同一个代码库里,可以轻松优化构建,统一管理依赖关系
;- 原子提交:原子提交是在版本控制里约定的最小提交,方便回滚的工作量及方便查实错误处。多个项目同时编辑提交,保证了代码同步;
大规模代码重构
:由于开发人员可以访问整个项目,因此重构可以确保重构后项目的每个部分都能继续运行;团队之间的协作
:由于开发人员可以访问整个项目,对于开发中遇到问题都能针对源码进行调试;
缺点 (Cons)
缺少对每个项目的访问控制
:开发人员可以对 monorepo 里所有项目进行读取访问,这会带来一些安全问题。占用更多的存储空间
:假如只对某一个项目感兴趣,那么你需要签出整个 monorepo 项目。CI 环境的性能问题
:如果把整个 monorepo 库放在 CI 里进行构建和测试,可能会导致性能问题。
参考资料:
> https://en.wikipedia.org/wiki/Monorepo