← ClaudeAtlas

fec-monorepo-project-standardlisted

Use when creating, reviewing, or restructuring frontend monorepos with pnpm workspace, Turborepo, Nx, multi-package dependency boundaries, task orchestration, package naming, or package publishing; Chinese triggers include monorepo, workspace, 多包.
bovinphang/frontend-craft · ★ 14 · Code & Development · score 80
Install: claude install-skill bovinphang/frontend-craft
# Monorepo 项目规范 适用于使用 pnpm workspace、Turborepo 或 Nx 的多包前端仓库。 ## Purpose 规范 Monorepo 项目的目录结构、依赖管理、任务编排和包发布流程,确保多包协作的构建效率和版本一致性。 ## Procedure 1. 先确认仓库是否已使用 pnpm workspace、Turborepo 或 Nx,并沿用现有包命名与任务约定。 2. 将应用放在 `apps/`,共享库、配置和工具放在 `packages/` 或既有等价目录。 3. 内部依赖使用 `workspace:*`,通过依赖图驱动构建顺序。 4. 为 build、lint、test 配置可缓存、可并行、可增量的根任务,并明确输入、输出和环境变量。 5. 在 Turborepo/Nx 中配置 affected/changed 范围命令,CI 优先跑受影响包,同时保留主干全量验证入口。 6. 发布包前检查包边界、循环依赖、exports、peer dependencies 和版本策略。 ## 工具选择 | 工具 | 适用 | 特点 | | ------------------ | ---- | -------------------------- | | **pnpm workspace** | 基础 | 依赖提升、链接、脚本聚合 | | **Turborepo** | 推荐 | 缓存、并行、依赖图 | | **Nx** | 大型 | 增量构建、云缓存、插件生态 | ## 目录结构 ### pnpm + Turborepo ``` ├── package.json # 根 package,workspace 配置 ├── pnpm-workspace.yaml # workspace 包列表 ├── turbo.json # Turborepo 配置 │ ├── apps/ │ ├── web/ # 主应用 │ │ ├── package.json │ │ └── ... │ ├── admin/ # 管理后台 │ └── docs/ # 文档站 │ ├── packages/ │ ├── ui/ # 共享 UI 组件 │ │ ├── package.json │ │ └── src/ │ ├── utils/ # 工具函数 │ ├── config-eslint/ # 共享 ESLint 配置 │ └── config-typescript/ # 共享 TS 配置 │ └── tooling/ # 构建/测试工具(可选) └── scripts/ ``` ### pnpm-workspace.yaml ```yaml packages: - "apps/*" - "packages/*" ``` ## 依赖管理 - 内部包使用 `workspace:*` 协议 - 根 `packa