Vercel

next-forge

Get started
Back to Posts

Turborepo 实践:如何管理包含 10+ 应用的 Monorepo

分享在真实项目中使用 Turborepo 管理多应用 Monorepo 的经验,包括任务编排、远程缓存、--affected 增量构建等关键配置。

Monorepo 的核心价值

Monorepo 不是简单地把代码放在一个仓库里。真正的价值在于:共享 packages(如 design-system、tsconfig、eslint-config),跨应用统一依赖版本,以及原子提交(一次改动可同时覆盖多个应用)。

turbo.json 任务编排

在 turbo.json 中定义任务依赖关系是关键。例如 build 任务依赖 ^build(先构建所有依赖包),dev 任务设置 persistent: true,lint 和 typecheck 可并行运行。

远程缓存配置

将 Turborepo 连接到 Vercel 远程缓存后,CI/CD 中的构建时间可减少 80%。执行 npx turbo link 并配置 TURBO_TOKEN 即可启用。团队成员之间也可共享缓存。

--affected 增量构建

通过 turbo run build --affected,Turborepo 会自动检测 Git 变更,只重新构建受影响的包和应用。在大型 Monorepo 中,这可以将 CI 时间从 20 分钟压缩到 2 分钟。

next-forge

This is the start of something new.

Pages

Post

Legal