跨独立仓库管理多个包会增加复杂性和不一致性。本技能提供经过验证的单仓库设置模式,包括 Turborepo、Nx 和 pnpm 工作区,以实现代码共享和高效构建。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“monorepo-management”。 设置 Turborepo 单仓库结构
预期结果:
创建了包含 apps/web(Next.js)、apps/docs(Next.js)、packages/ui(React 组件)、packages/config(共享配置)和 packages/tsconfig(TypeScript 配置)的单仓库。配置了 turbo.json,包含 build、test、lint 和 dev 管道。
正在使用“monorepo-management”。 为三个包配置 pnpm 工作区
预期结果:
使用 apps 和 packages 目录设置 pnpm-workspace.yaml。创建了启用 shamefully-hoist 和 auto-install-peers 的 .npmrc。在工作区根目录安装共享依赖,并在需要时添加包级别的覆盖。
正在使用“monorepo-management”。 优化 Turborepo 缓存
预期结果:
在 turbo.json 管道中配置了正确的 dependsOn 链、用于缓存的 outputs 和用于缓存失效的 inputs。使用 Vercel 启用远程缓存。对于未更改的包,构建时间从 12 分钟减少到 3 分钟。
安全审计
安全This skill contains documentation-only markdown files with instructional code examples. Static analysis flagged 60 patterns (external commands, network URLs, filesystem references, environment variables) but all are false positives - they appear in markdown code blocks as examples, not executable code. No security threats detected after manual review.
质量评分
你能构建什么
构建多应用平台的初创公司
一家初创公司需要在 Web 应用、移动应用和文档站点之间共享 UI 组件和工具,同时保持一致的工具链。
整合微服务的企业
一家企业希望将相关的微服务整合到单个仓库中,以便更轻松地进行跨服务重构和共享类型定义。
开源库维护者
一位维护者希望将一个大型库拆分为多个专注的包,同时将它们保留在单个仓库中以便更好地协调。
试试这些提示
帮助我使用 Turborepo 和 pnpm 创建一个新的单仓库。我需要两个应用(web 和 docs)以及一个共享的 UI 包。提供初始文件夹结构和关键配置文件。
我有三个独立的仓库:一个 Next.js 应用、一个 React 组件库和一个共享工具包。指导我将它们迁移到使用 Turborepo 的单个 pnpm 工作区中。
我的单仓库构建需要 15 分钟。分析我的 turbo.json 配置,并建议改进缓存、并行化和远程缓存设置以减少构建时间。
为我的 Turborepo 单仓库创建一个 GitHub Actions 工作流,在拉取请求上运行 lint、test 和 build,在合并到 main 时仅部署受影响的应用程序。
最佳实践
- 在根级别锁定依赖版本,并使用工作区协议处理内部包
- 精确配置 Turborepo 的 inputs 和 outputs 以最大化缓存命中率,同时确保正确性
- 使用 changesets 进行多包的协调版本管理和发布
避免
- 在 package.json 依赖项中未声明就导入包
- 在单仓库中的包之间创建循环依赖
- 将缓存 outputs 配置得过于宽泛,导致来自未缓存文件的过时构建