SuperAPI AI 工具集

shared-monorepo-turborepo

通用与其它

查看项目

更新于 10-15 19:52

技能介绍

用途:面向 JavaScript/TypeScript 单体仓库(monorepo)的构建编排与包管理,使用 Turborepo 2.x 配合 workspaces,减少构建时间并统一内部包规范。

主要能力:在 turbo.json 中定义任务流水线,用 dependsOn: ["^build"] 保证拓扑顺序;通过 outputs、inputs、env 控制缓存与失效;对 dev 服务器、代码生成等有副作用任务设 cache: false;支持本地缓存与远程缓存共享(链接 Vercel 账号或自托管缓存后设置 TURBO_TOKEN、TURBO_TEAM)。workspaces 用于包链接,内部依赖使用 workspace:* 协议;syncpack 同步依赖版本;内部包统一 @repo/* 命名,package.json 显式声明 exports 字段以支持 tree-shaking,组件包中 React 应放 peerDependencies。

使用方式:根 package.json 声明 "workspaces": ["apps/", "packages/"];apps/ 放可部署应用,packages/ 放共享代码;内部依赖写 "@repo/ui": "workspace:*"。常用命令:bun run build --force 忽略缓存;bun run build --filter=...[HEAD^1] 只构建受影响包。--filter=...[HEAD^] 在 GitHub Actions 中需 fetch-depth: 2。

适用场景:多应用共享包、构建超过 30 秒或缓存收益明显的仓库;配置共享配置包(@repo/eslint-config、@repo/typescript-config)。

限制与不适用:单应用项目、无共享包、极小项目、偏好 polyrepo、已使用 Nx 或 Lerna 的项目不建议使用;应用专属代码应留在应用目录。资料未提供具体收费与价格信息。