用途:Turborepo 是面向 JavaScript/TypeScript monorepo 的构建系统,通过任务缓存与依赖图并行执行来加速构建、测试和检查等流程。本技能用于指导 turbo.json 配置、任务流水线、dependsOn、缓存与远程缓存、turbo CLI、过滤与 CI 集成。
主要能力:任务定义 dependsOn、outputs、env、inputs、persistent 等;缓存与远程缓存;使用 --filter 和 --affected 只运行变更包及其依赖方;turbo watch 监视变更;通过 turbo boundaries 检查架构边界;支持 GitHub Actions、Vercel 等 CI 场景,并可用 turbo-ignore 跳过无变更的构建。
使用方式:优先采用包级任务而非根任务。在各包 package.json 定义脚本,在根 turbo.json 注册任务,根 package.json 仅通过 turbo run <task> 委派。写入代码或 CI 时始终用 turbo run,交互式终端才可用简写 turbo。
限制与注意:不要用 && 串联 turbo 任务,不要用 prebuild 手动构建依赖,应声明 workspace 依赖并让 dependsOn: ["^build"] 处理构建顺序;避免过度宽泛的 globalDependencies,避免在 inputs 中用 ../ 越出包目录,改用 $TURBO_ROOT$;文件型任务应声明 outputs,环境变量与 .env 变更需纳入哈希;待缓存任务不要使用 --parallel 绕过依赖图;大型 env 数组本身不视为问题。缺失信息暂未提供。