monorepo介绍

monorepo介绍

Posted by SkioFox on March 11, 2020

多项目管理策略:monorepo

What Is monorepo ?

Monorepo 是一种多项目放在一个仓库 (repository) 的管理策略,这样的项目可以叫做 monorepo 项目。

优点 (Pros)

  • 易于使用重复代码:类似的功能或通信协议可以抽象到共享库中,并直接包含在项目中,而无需单独安装依赖
  • 简化依赖关系管理:多个项目依赖的第三方依赖可能会多次下载或构建,在 monorepo 中,因为依赖都在同一个代码库里,可以轻松优化构建,统一管理依赖关系
  • 原子提交:原子提交是在版本控制里约定的最小提交,方便回滚的工作量及方便查实错误处。多个项目同时编辑提交,保证了代码同步;
  • 大规模代码重构:由于开发人员可以访问整个项目,因此重构可以确保重构后项目的每个部分都能继续运行;
  • 团队之间的协作:由于开发人员可以访问整个项目,对于开发中遇到问题都能针对源码进行调试;

缺点 (Cons)

  • 缺少对每个项目的访问控制:开发人员可以对 monorepo 里所有项目进行读取访问,这会带来一些安全问题。
  • 占用更多的存储空间:假如只对某一个项目感兴趣,那么你需要签出整个 monorepo 项目。
  • CI 环境的性能问题 :如果把整个 monorepo 库放在 CI 里进行构建和测试,可能会导致性能问题。

参考资料:

> https://en.wikipedia.org/wiki/Monorepo