Turborepo 是用于 JavaScript/TypeScript monorepo 的高性能构建系统,核心能力包括智能缓存、并行执行与增量构建。适用于在 apps/ 与 packages/ 结构下配置工作区、优化构建管线、设置缓存和管理多包仓库。
典型用法:根 package.json 中通过 turbo run build 等脚本调用 turbo;turbo.json 定义 tasks,如 build 使用 dependsOn: ["^build"]、inputs、outputs 与 env,dev 设 cache:false、persistent:true、interactive:true。工作区由 pnpm-workspace.yaml 的 apps/、packages/ 定义,内部依赖用 workspace:*。
缓存支持本地(node_modules/.cache/turbo,--force 强制未命中)与远程(npx turbo login、npx turbo link,或设置 TURBO_API、TURBO_TOKEN、TURBO_TEAM)。可用 turbo watch 监听变更重跑任务,用 turbo prune web --docker 生成精简工作区供 Docker 构建。过滤支持按包(--filter=web、--filter=web...、--filter=...^ui)、按源码变更(--filter=[main...my-feature])以及 --affected。CI 中可结合远程缓存与 --affected 只构建变更包,GitHub Actions 需 fetch-depth: 0。
限制与注意:package.json、turbo.json 与包管理器锁文件始终计入输入,无法忽略;passThroughEnv 变量不参与缓存哈希;文档中未提供具体收费或价格信息。