用途:Turborepo 是面向 JavaScript 与 TypeScript monorepo 的高性能构建系统,用 Rust 编写,用于搭建多包仓库、优化构建性能、编排跨包任务、配置缓存策略、接入 CI/CD,以及从 Lerna、Nx 等迁移。
主要能力:支持工作区(npm/yarn/pnpm/bun)组织代码,区分根包、内部包与应用;通过 turbo.json 中 pipeline 定义任务依赖图,支持拓扑顺序(dependsOn 的 ^build 形式)、并行执行与持久任务;基于输入的内容哈希实现本地缓存(默认位于 ./node_modules/.cache/turbo)与远程缓存(Vercel 或自定义),仅当输入变化时重跑;可声明 outputs、inputs、env、passThroughEnv、cache、persistent、outputMode;命令包含 turbo run、turbo prune(如 --scope=web --docker)、turbo gen、turbo link、turbo login、turbo ls;过滤器支持按包名、模式、目录、Git 变更及依赖关系(如 --filter='...[origin/main]'、--filter='...web');并可与 Next.js、Vite、Nuxt、TypeScript、ESLint、Jest/Vitest、Prisma 及 GitHub Actions、GitLab CI、Docker 集成。
使用方式:需 Node.js 18+ 与包管理器。可全局安装(npm install turbo --global、yarn global add turbo、pnpm add turbo --global、bun add turbo --global)或项目内安装(npm install turbo --save-dev 等)。新建仓库使用 npx create-turbo@latest;手动方式需配置根 package.json 的 workspaces 与 turbo 脚本,并创建 turbo.json。运行任务示例:turbo run build、turbo run build test lint、turbo run build --filter=web、turbo run build --force。远程缓存需 turbo login 与 turbo link,CI 中通过 TURBO_TOKEN、TURBO_TEAM 环境变量启用。
适用场景与限制:适合多包仓库、共享库与微前端、需要依赖感知任务编排与团队级缓存复用的项目。资料未说明其具体收费、价格与性能数值;缓存正确性依赖 outputs、env 等配置的准确性,dev 等持续任务应关闭缓存并设为 persistent。