引言

最近感觉Monorepo很火,就了解了一下,发现Monorepo可能会比较适合我的毕业设计。我的毕业设计是无人自习室实现方案,包括用户小程序端,商家管理后台和Nodejs的服务器。

这三个部分虽然独立,但是大家都是为了一个共同的项目,而且可能会有可以复用的部分,如API接口设计等。之前我已经建立了三个代码仓库,使用的是Vue框架。最近在腾讯实习的业务用的是React,所以干脆直接重新设计(反正原来也没有写啥代码😂)。

Monorepo

简介

Monorepo是一种项目代码的管理方式,指在单个git仓库中管理多个项目。

演进

阶段一:单仓库巨石应用,一个git仓库维护者所有项目代码,随着代码量增多,项目代码会越来越多,越来越复杂,构建效率也会变得很低,导致单体巨石应用。这种代码管理方式被称为Monolith。

阶段二:多仓库多模块应用,将项目拆解为多个业务模块,并在多个git仓库管理,模块解耦,降低了巨石应用的复杂度,每个模块都可以独立编码,测试,发版,单嘛管理变得简化,构建效率也得以提升,这种代码管理方式被称为Multirepo。

阶段三:单仓库多模块应用,随着业务复杂度的提升,模块仓库越来越多,Multirepo这种方式虽然从业务上解耦了,但增加了项目工程管理的难度,随着模块仓库达到一定的数量级,会有几个问题:跨仓库代码难以共享;分散在单仓库的模块依赖管理复杂。于是将多个模块的代码集成到一个仓库下,共享工程配置。这种代码管理方式称为Monorepo。

20250531213944