本项目采用 pnpm workspaces 实现 Monorepo 架构,统一管理多个应用、模块和共享包。
| 技术 | 版本 | 用途 |
|---|---|---|
| pnpm | 10.18.3 | 包管理和工作空间 |
| Turbo | - | 构建编排和缓存 |
| TypeScript | 5.9.3 | 类型安全 |
| Vite | 7.x | 构建工具 |
packages:
- 'mini' # 员工小程序
- 'mini-talent' # 人才小程序
- 'web' # 管理后台
- 'packages/*' # 核心包 (61个)
- 'allin-packages/*' # 业务模块包 (15个)
- 'mini-ui-packages/*' # 小程序UI包 (18个)
┌─────────────────────────────────────────────────────────────┐
│ 188-179 Monorepo │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 应用层 │ │ 应用层 │ │ 应用层 │ │
│ ├──────────────┤ ├──────────────┤ ├──────────────┤ │
│ │ web/ │ │ mini/ │ │ mini-talent/│ │
│ │ 管理后台 │ │ 员工小程序 │ │ 人才小程序 │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────────────┼─────────────────┘ │
│ │ │
│ ┌────────────────────────▼─────────────────────────────┐ │
│ │ 模块层 │ │
│ ├─────────────────────────────────────────────────────┤ │
│ │ packages/ allin-packages/ │ │
│ │ ├── core-module ├── channel-module │ │
│ │ ├── auth-module ├── company-module │ │
│ │ ├── user-module ├── disability-module │ │
│ │ ├── orders-module ├── order-module │ │
│ │ ├── goods-module ├── platform-module │ │
│ │ ├── merchant-module ├── salary-module │ │
│ │ └── ... └── statistics-module │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────▼─────────────────────────────┐ │
│ │ 共享层 │ │
│ ├─────────────────────────────────────────────────────┤ │
│ │ mini-ui-packages/ packages/ 共享 │ │
│ │ ├── mini-charts ├── shared-types │ │
│ │ ├── mini-shared-ui ├── shared-utils │ │
│ │ ├── yongren-* ├── shared-crud │ │
│ │ ├── rencai-* ├── shared-ui-components │ │
│ │ └── allin-enums └── ... │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
web/ → packages/core-module, packages/shared-ui-components
mini/ → mini-ui-packages/yongren-*, packages/core-module
mini-talent/ → mini-ui-packages/rencai-*, packages/core-module
*-module → packages/core-module, packages/shared-types
*-management-ui → packages/shared-ui-components, packages/*-module
所有包 → packages/shared-types, packages/shared-utils
<业务领域>-moduleauth-module, orders-module, goods-module<业务领域>-module-mt<业务领域>-management-uiuser-management-ui, order-management-uimini-*yongren-*rencai-*shared-*shared-types, shared-utils, shared-crud# 使用Turbo并行构建所有包
pnpm build
# 按类别并行构建
pnpm run build:mini-ui-packages
pnpm run build:mini-ui-packages:common
pnpm run build:mini-ui-packages:yongren
pnpm run build:mini-ui-packages:rencai
package.json{
"name": "order-management-ui",
"dependencies": {
"@d8d/orders-module": "workspace:*",
"@d8d/shared-ui-components": "workspace:*",
"@d8d/shared-types": "workspace:*"
}
}
部分模块支持多租户架构,具有独立的 -mt 变体:
| 单租户版本 | 多租户版本 |
|---|---|
| auth-module | auth-module-mt |
| goods-module | goods-module-mt |
| orders-module | orders-module-mt |
| user-module | user-module-mt |
多租户版本包含额外的租户隔离逻辑和数据过滤。
.turbo/ 目录--workspace-concurrency 控制并行度# 重新安装依赖
rm -rf node_modules .pnpm-store
pnpm install
# 清除Turbo缓存
rm -rf .turbo
# 重新构建
pnpm build
# 检查包依赖关系
pnpm list --depth 0