Turborepo 是用于 JavaScript/TypeScript monorepo 的构建系统,它依据依赖图并行执行任务并缓存任务输出,从而加速构建、测试与校验流程。本资料是一份使用指导,覆盖 turbo.json 配置、任务管道、dependsOn 依赖、缓存与远程缓存、turbo CLI、--filter、--affected 以及 CI 场景。
核心用法:任务应定义在各包的 package.json 中,并在根 turbo.json 的 tasks 里注册;根 package.json 只通过 turbo run <task> 委派,不要把任务逻辑写在根脚本里,否则会破坏并行能力。写入代码或 CI 时应使用 turbo run(如 turbo run build --affected),简写 turbo <task> 仅用于人工在终端一次性执行。
常用能力:用 --affected 只运行变更包及其依赖方,用 --filter 按包名、目录、依赖或反向依赖筛选;用 dependsOn 中的 ^build 表示先构建依赖包,build(无 ^)表示同包内先执行;用 outputs 声明需缓存的产物(如 Next.js 的 .next/、Vite 的 dist/);用 env 与 inputs 让环境变量和 .env 变化触发缓存失效;用 persistent、with、interruptible 配置开发与监听任务;可用 turbo watch、turbo boundaries、turbo-ignore 等命令。
适用场景:需要并行与缓存加速的多包前端/全栈仓库、CI 中只构建变更包、远程缓存共享、架构边界约束等。
限制与注意:资料未提供安装命令、版本要求、收费与价格信息,暂未提供。正文为使用规范与反模式说明,需结合官方文档确认当前行为。