Monorepo 项目规范
name: monorepo-project-standard
by bovinphang · published 2026-04-01
$ claw add gh:bovinphang/bovinphang-monorepo-project-standard---
name: monorepo-project-standard
description: Monorepo 项目规范,涵盖 pnpm workspace、Turborepo、Nx 的目录结构、依赖管理、任务编排、包发布。当用户提到 monorepo、workspace、多包、pnpm workspace、Turborepo、Nx 时自动激活。
version: 1.0.0
---
# Monorepo 项目规范
适用于使用 pnpm workspace、Turborepo 或 Nx 的多包前端仓库。
适用场景
工具选择
| 工具 | 适用 | 特点 |
|------|------|------|
| **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
packages:
- 'apps/*'
- 'packages/*'依赖管理
{
"dependencies": {
"@repo/ui": "workspace:*",
"@repo/utils": "workspace:*"
}
}Turborepo 任务编排
{
"$schema": "https://turbo.build/schema.json",
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"lint": {
"dependsOn": ["^build"]
},
"test": {
"dependsOn": ["^build"]
}
}
}Nx 任务编排
{
"targetDefaults": {
"build": {
"dependsOn": ["^build"],
"outputs": ["{projectRoot}/dist"],
"cache": true
}
}
}包命名
强约束
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...