SuperAPI AI 工具集

turborepo

通用与其它

查看项目

更新于 10-16 01:17

技能介绍

用途:Turborepo 是 JavaScript/TypeScript monorepo 的构建系统,依据依赖图并行运行任务并缓存任务输出,减少重复构建。本技能用于指导 turbo.json 任务管线、dependsOn、缓存与远程缓存、turbo CLI、--filter、--affected 及 CI 配置。

主要能力:任务依赖编排(dependsOn,^build 表示先构建依赖包)、输出缓存(outputs)、环境变量参与哈希(env)、输入声明(inputs)、持久化与监听任务(persistent、turbo watch)、包过滤(--filter、--affected)、远程缓存、架构边界检查(turbo boundaries)、CI 集成(GitHub Actions、Vercel)与 turbo-ignore。

使用方式:任务脚本应写在各自包的 package.json 中,并在根 turbo.json 的 tasks 中注册;根 package.json 只通过 turbo run <task> 委派,不承载任务逻辑。写入代码或 CI 时使用 turbo run,如 turbo run build --affected;简写 turbo <task> 仅用于人工在终端一次性执行。仅运行变更包用 --affected,可配合 --affected-base=origin/develop;按名称或目录过滤用 --filter=web、--filter=./apps/*。

适用场景:多包仓库的构建、lint、测试、类型检查、开发监听与 CI 增量构建;需要跨包依赖顺序与缓存复用的项目。

限制与注意:Turborepo 不加载 .env 文件,需由框架加载,但需将 .env 加入 inputs 才能正确失效缓存;未在 package.json 声明依赖时 ^build 不会触发依赖构建;避免在根 package.json 用 && 串联任务或写 prebuild 手动构建依赖;避免使用 --parallel 绕过依赖图;避免在 inputs 中用 ../ 越出包目录,应使用 $TURBO_ROOT$;根目录 .env 属反模式。资料未提供收费、价格与平台支持等细节。