next-forge
分享在真实项目中使用 Turborepo 管理多应用 Monorepo 的经验,包括任务编排、远程缓存、--affected 增量构建等关键配置。
Monorepo 不是简单地把代码放在一个仓库里。真正的价值在于:共享 packages(如 design-system、tsconfig、eslint-config),跨应用统一依赖版本,以及原子提交(一次改动可同时覆盖多个应用)。
在 turbo.json 中定义任务依赖关系是关键。例如 build 任务依赖 ^build(先构建所有依赖包),dev 任务设置 persistent: true,lint 和 typecheck 可并行运行。
将 Turborepo 连接到 Vercel 远程缓存后,CI/CD 中的构建时间可减少 80%。执行 npx turbo link 并配置 TURBO_TOKEN 即可启用。团队成员之间也可共享缓存。
通过 turbo run build --affected,Turborepo 会自动检测 Git 变更,只重新构建受影响的包和应用。在大型 Monorepo 中,这可以将 CI 时间从 20 分钟压缩到 2 分钟。