对于Monorepo的理解
对于Monorepo的理解
传统的项目管理方式就是一个项目便新建一个代码仓库地址。 Monorepo
核心就是把所有项目放在一个代码仓库中进行管理。然后不同
项目使用不同的文件夹进行管理,一般情况下,以Vue3为例Monorepo
的项目架构是这样
├── packages
| ├── pkg1
| | ├── package.json
| ├── pkg2
| | ├── package.json
├── package.json
这样分割代码,每个项目的开发、其实只需要关注少数几个文件夹便可以了。
Menorepo 管理方案
参考 http://www.zyiz.net/tech/detail-141856.html
Monorepo 的优点
- 可见性
每个人都可以看到其他人的代码,这样可以带来更好的协作和跨团队贡献——不同团队的开发人员都可以修复代码中的bug,而你甚至都不知道这个bug的存在。 - 更简单的依赖关系管理
共享依赖关系很简单,因为所有模块都托管在同一个存储库中,因此都不需要包管理器。 - 唯一依赖源
每个依赖只有一个版本,意味着没有版本冲突,没有依赖地狱。 - 一致性
当你把所有代码库放在一个地方时,执行代码质量标准和统一的风格会更容易。 - 共享时间线
API或共享库的变更会立即被暴露出来,迫使不同团队提前沟通合作,每个人都得努力跟上变化。 - 原子提交
原子提交使大规模重构更容易,开发人员可以在一次提交中更新多个包或项目。 - 统一的CI/CD 和 构建流程
Monorepo 的缺点
- 性能差
代码都聚集在一起,IDE, GIT 都会变得缓慢 - 破坏主线
每个人都可以提交代码,若主线遭到破坏,会影响到所有人。 - 学习困难
大量的代码都紧密耦合在一起,增加了学习成本 - 权限管理困难
GIT没有项目内目录的权限控制,只能通过人为的CodeView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具