用途:Turborepo 是 JavaScript/TypeScript monorepo 的构建系统,基于依赖图并行运行任务并缓存任务输出。本技能提供配置指导,触发词包括 turbo.json、任务流水线、dependsOn、缓存、远程缓存、turbo CLI、--filter、--affected、CI 等。
主要能力与规则:任务应定义在各相关包的 package.json 中,并在根 turbo.json 注册;根 package.json 只通过 turbo run <task> 委派,不应把任务逻辑放在根脚本里,否则会破坏并行化。根任务(//#taskname)仅用于确实无法放入包中的任务。写入代码的命令应使用 turbo run,简写 turbo <task> 仅用于人工或智能体在终端直接执行的一次性命令。
缓存与过滤:任务输出需声明 outputs 才能恢复;缓存未命中可用 --summarize 或 --dry 调试,跳过缓存可用 --force 或 cache: false。只运行变更包推荐 turbo run build --affected,它自动对比默认分支并包含依赖方;也可用 --filter 按包名、目录、依赖或依赖方过滤。环境变量未加入 env 键会导致缓存命中错误,.env 文件变化需加入 inputs 才能触发重建。
其他配置:可用 turbo watch 监听变更,持久任务用 persistent: true,依赖变更重启用 interruptible: true;配置应避免过度宽泛的 globalDependencies、用 && 串联 turbo 任务、prebuild 手动构建依赖、在 inputs 中用 ../ 越出包目录(应使用 $TURBO_ROOT$)等反模式。仓库根目录放置 .env 文件被视为反模式,应放在需要它的包内。
适用场景:monorepo 任务配置、缓存调试、CI(如 GitHub Actions、Vercel)、包结构设计与架构边界检查(turbo boundaries)。限制:本资料为技能指导文本,未提供具体安装命令、收费、价格或平台信息。