🤖 AI 时代你还只做“切图仔”吗?试试用 Monorepo 把前后端握在一套工程里

52 阅读4分钟

AI 让交付更快,但也更容易“看起来能跑,工程上不可交付”。真正拖慢团队的往往不是写接口,而是前后端在两套工程里各自演进:返回结构不统一、鉴权口径不一致、错误处理各自为政,最后联调变成反复返工。

如果你也遇到过这些问题,这篇文章想分享一个思路:把接口契约当成唯一事实来源(Contract First),再用 Monorepo 把前后端放进同一套工程化护栏里——前端调用尽量稳定,后端实现可持续演进。

1. 痛点:为什么“全栈”更难的是对齐

  • AI 能加速样板代码,但无法替你稳定契约与边界
  • 契约一旦漂移,联调、回归与协作成本会迅速上升
  • 关键不在“多写接口”,而在收拢响应、错误、鉴权等统一口径

2. 思路:从“写接口”转为“落地契约”

  • 先对齐 URL/method/返回结构/错误结构/分页等调用习惯
  • 再把这些约定固化为后端的全局基础能力
  • 最终让后端实现可以迭代升级,而不是每次联调都推倒重来

3. vben 与 Nest 是什么

vben(Vue Vben Admin)更像一套“企业级前端工程底座”:提供成熟的目录约定、脚本与质量门禁,让多人协作下的开发体验与交付质量更可控。

Nest 是一套 TypeScript 后端框架,强调模块化与结构化的应用组织方式,适合在同一个仓库内与前端共享语言生态与工程工具链。

4. 一个可运行的落地样例:vben-nest 的 Monorepo 前后端一体化

4.1 这个项目做了什么:用 Nest 补齐后端,把前后端纳入同一个仓库

vben-nest 在 vben 的工程化底座上新增了 Nest 后端(见 apps/server),并把前端与后端放进同一个 monorepo:统一依赖治理、脚本编排、代码规范与提交门禁,让“一个人做全栈”或“小团队协作”更可控。

它坚持一个核心原则:

前端尽量保持调用稳定,后端在同一仓库内持续迭代。

路径、方法、响应结构、鉴权方式尽量保持一致,让你可以先把链路跑通,再逐步替换为真实业务逻辑。

4.2 一体化的关键:把约定固化为护栏

把前后端放进 monorepo 的意义,不是“代码都在一个仓库”这么简单,而是把协作里最容易漂移的东西收拢起来:

  • 同一套工程规则与质量门禁,让 AI 产出的代码也更容易被团队消化
  • 统一请求与错误口径,减少联调阶段的“各自解释”
  • 后端能力逐步补齐并沉淀为基础设施,业务开发只关心领域逻辑
  • 数据层预留可落库的演进路径,先跑通链路再逐步真实化

4.3 快速开始

环境要求

  • Node.js >= 20.19
  • pnpm >= 10(推荐使用 corepack)
  • Docker Desktop(推荐,用于一键启动 PostgreSQL)

安装与运行

# 克隆项目
git clone https://github.com/MiniJude/vben-nest.git
cd vben-nest

# 安装依赖
npm i -g corepack
pnpm install

# 启动数据库 (Docker Compose)
docker compose -f apps/server/docker-compose.yml up -d

# 初始化数据库结构与种子数据
pnpm -F @vben/server run db:init

# 启动后端服务
pnpm -F @vben/server run dev
# 默认端口:3000

# 启动前端 Playground (新开终端)
pnpm dev:play

默认账号

  • vben / 123456
  • admin / 123456
  • jack / 123456

4.4 目录结构速览:前端多方案 + 后端可落库

  • 前端应用:apps/web-*(多 UI 方案示例)
  • Playground:playground/(用于快速体验与联调)
  • Nest 后端:apps/server/(本项目新增后端服务)

4.5 全栈 + AI 的实践建议:契约先行

更推荐的协作方式是“契约先行(Contract First)”:

  • 先把接口契约稳定下来(URL、method、code/data 结构、分页约定、错误约定)
  • 再让 AI 生成 DTO、接口与数据模型的骨架
  • 依靠 lint、类型系统、提交规范,把代码质量稳定在可维护区间

前后端分离下,工具链可以帮助联调,但契约才是协作的“唯一事实来源”。

4.6 适合谁使用

  • 想从 vben 上手全栈的前端同学:用熟悉的前端工程体系,把后端也纳入同一条流水线
  • 想快速搭建企业级全栈脚手架的小团队:少做重复造轮子,把精力留给业务
  • 想在真实工程约束下用 AI 提效的人:让 AI 提速,同时保留规范与可演进性

4.7 项目链接

github.com/MiniJude/vb…

4.8 后续演进

当前版本更偏向“理念与路径”的最小落地:把前后端收拢到同一套工程化护栏与协作边界里。面向生产的后端工程还需要持续补齐监控、日志、权限、安全、审计等能力,本项目也会按迭代节奏逐步完善。

你的项目里,前后端最大的协作摩擦来自哪里:两套仓库、两套规范,还是两套发布节奏?你愿不愿意用 Monorepo 把它们收拢到一套工程里,从“契约对齐”开始把交付做得更稳?