工程管理monorepo,后端多模块

大中厂都在用monorepo工程管理你掌握了吗?monorepo如何统一工程规范【渡一教育】_哔哩哔哩_bilibili

这个视频讲解了monorepo和multirepo的区别

使用pnpm构建monorepo项目

凡是对子包做统一处理的地方,全在根工程中完成

配置统一ts配置,并在子包里写具体配置

配置代码风格和质量检查、git提交规范

大中厂都在用monorepo工程管理你掌握了吗?monorepo如何对子包进行打包、依赖、测试、发布【渡一教育】_哔哩哔哩_bilibili

统一打包

monorepo架构概念

6.Monorepo架构概念与优势对比_哔哩哔哩_bilibili

polyrepo也就是multirepo

前端架构师进阶:从零搭建 pnpm + Turborepo 高效 Monorepo 架构指南

1. 传统 Multi-repo 的痛点

假设你维护着 Admin(后台)和 H5(移动端)两个项目,它们都使用同一套 UI 库。

  • 代码复用难: 修改 UI 库后,需要 publish -> install 才能在业务项目中生效,调试流程漫长。
  • 依赖版本混乱: Admin 使用 React 16,H5 使用 React 18,长期迭代导致技术栈割裂。
  • 基建重复: 每个仓库都需要单独配置 ESLint、Prettier、Webpack/Vite,维护成本随项目数量线性增长。

2. Monorepo 的优势

Monorepo 将多个逻辑独立的项目管理在同一个 Git 仓库中。

  • 统一工作流: 一个命令启动所有项目,一个 Commit 完成跨项目修改。
  • 依赖原子化: 源码级引用共享库,修改即时生效,无需发包。
  • 统一依赖管理: 强制所有项目使用相同版本的核心库(如 React、Vue),避免依赖地狱。

案例

技术选型(pnpm+turbo)

7.现代前端工程化技术选型:PNPM + Turbo_哔哩哔哩_bilibili

为什么选pnpm

编排工具turborepo

monorepo目录树

搭建

安装 | Turborepo - Turborepo 构建系统

官网

项目初始化

8.基于Monorepo的AI项目架构设计_哔哩哔哩_bilibili

项目结构搭建

应用层子包放在apps/下,内部子包放在packages下

这个desktop是桌面应用、server是后端服务、web是web前端应用

自由编排,我看视频里是apps/下是frontend/和backend/再编排的

初始化 package.json

复制代码
pnpm init

随便在一个包初始化,然后复制粘贴,再修改name

既然是子包,我们都会把最外层的那个包作为一个集中的名称

ts

复制代码
pnpm add typescript -D

npx tsc --init 

类型系统与模块导入

先定义所需向外部导出的功能模块

定义入口

把入口文件向外部暴露

手动写上,然后pnpm i安装

后面就能使用了

在 Node.js 中,有两种模块标准:

  • CommonJS (CJS):使用 require() 和 module.exports。这是 Node.js 的传统标准
  • ECMAScript Modules (ESM):使用 import 和 export。这是现代 JS 的标准

当在 package.json 中只写了 "main": "index.js" 时,Node.js 默认会将这个 index.js 当作 CommonJS 模块来处理(除非你在 package.json 中显式声明 "type": "module")

通过软链的方式引用,然后安装

后端多模块

Java Maven 多模块 vs 前端 Monorepo

结构差异

Java Maven 多模块(当前项目):

复制代码
box-im/  
├── pom.xml                 # 父项目配置  
├── im-platform/           # 业务服务模块  
├── im-server/            # 消息服务模块    
├── im-client/            # SDK模块  
├── im-common/            # 公共模块  
├── im-web/               # Vue.js前端  
└── im-uniapp/            # 移动端应用  

前端 Monorepo(你提到的类型):

复制代码
project/  
├── apps/                 # 应用程序  
├── packages/             # 共享包  
└── tools/                # 工具  

为什么采用 Maven 多模块

  1. Java 生态标准:Maven 是 Java 项目的标准构建工具,多模块是其内置功能

  2. 依赖管理:通过 Maven 统一管理版本和依赖关系

技术栈决定架构

这个项目包含:

  • 后端 Java 服务:使用 Maven 管理
  • 前端应用:Vue.js 和 UniApp,独立目录但同仓库

混合技术栈的 monorepo 通常会采用各自生态的最佳实践,而不是强求统一的目录结构

相关推荐
USER_A0018 天前
创建Monorepo多项目管理
monorepo
We་ct1 个月前
前端包管理工具与Monorepo全面解析
前端·javascript·npm·pnpm·yarn·monorepo·包管理
木斯佳1 个月前
前端八股文面经大全:腾讯前端一面(2026-04-04)·深度解析
前端·ai·鉴权·monorepo
蜡台2 个月前
Monorepo 架构管理多个子项目实现
前端·javascript·vue.js·pnpm·monorepo
SuperEugene2 个月前
Monorepo + pnpm workspace 落地实操:Vue 中后台多项目 / 组件库 / 公共包管理|Vue 工程化篇
前端·javascript·vue.js·pnpm·vite·monorepo
怒放的生命19914 个月前
pnpm + Monorepo 使用教程(集成 Vue 3 项目)
前端·vue.js·pnpm·monorepo·前端工程化
weixin79893765432...4 个月前
Monorepo 单仓库管理
monorepo·单仓库管理
lkbhua莱克瓦245 个月前
项目知识——Monorepo(单体仓库)架构详解
架构·github·项目·monorepo