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