浏览代码

📝 docs(architecture): 更新项目结构文档为monorepo架构

- 更新版本信息为3.0,日期2025-10-22
- 添加packages/server目录结构说明
- 移除web/server中的API相关代码说明
- 更新集成指南,添加monorepo架构说明和pnpm workspace配置
- 添加架构优势部分,说明monorepo带来的好处
yourname 1 月之前
父节点
当前提交
18cd33cc98
共有 1 个文件被更改,包括 73 次插入27 次删除
  1. 73 27
      docs/architecture/source-tree.md

+ 73 - 27
docs/architecture/source-tree.md

@@ -3,7 +3,7 @@
 ## 版本信息
 | 版本 | 日期 | 描述 | 作者 |
 |------|------|------|------|
-| 2.5 | 2025-10-21 | 更新为实际项目结构 | Winston |
+| 3.0 | 2025-10-22 | 更新为 monorepo 结构,添加 packages/server | Winston |
 
 ## 实际项目结构
 ```text
@@ -50,6 +50,66 @@ d8d-mini-starter/
 │   │   ├── index.ts            # 配置入口
 │   │   └── prod.ts             # 生产环境配置
 │   └── package.json
+├── packages/                   # 共享包
+│   └── server/                 # API服务器包 (@d8d/server)
+│       ├── src/
+│       │   ├── api/            # API路由
+│       │   │   ├── auth/       # 认证相关
+│       │   │   │   ├── index.ts                 # 认证路由入口
+│       │   │   │   ├── login/post.ts            # 登录接口
+│       │   │   │   ├── logout.ts                # 登出接口
+│       │   │   │   ├── me/get.ts                # 获取用户信息
+│       │   │   │   ├── me/put.ts                # 更新用户信息
+│       │   │   │   ├── mini-login/post.ts       # 小程序登录
+│       │   │   │   ├── register/create.ts       # 注册接口
+│       │   │   │   └── sso-verify.ts            # SSO验证
+│       │   │   ├── files/      # 文件管理
+│       │   │   │   ├── [id]/delete.ts           # 删除文件
+│       │   │   │   ├── [id]/download.ts         # 下载文件
+│       │   │   │   ├── [id]/get-url.ts          # 获取文件URL
+│       │   │   │   ├── index.ts                 # 文件列表
+│       │   │   │   ├── multipart-complete/post.ts # 完成分片上传
+│       │   │   │   ├── multipart-policy/post.ts # 分片上传策略
+│       │   │   │   └── upload-policy/post.ts    # 上传策略
+│       │   │   ├── roles/index.ts               # 角色管理
+│       │   │   ├── users/index.ts               # 用户管理
+│       │   │   └── users/custom.ts              # 自定义用户接口
+│       │   ├── modules/        # 业务模块
+│       │   │   ├── auth/       # 认证模块
+│       │   │   │   ├── auth.service.ts          # 认证服务
+│       │   │   │   └── mini-auth.service.ts     # 小程序认证服务
+│       │   │   ├── files/      # 文件模块
+│       │   │   │   ├── file.entity.ts           # 文件实体
+│       │   │   │   ├── file.schema.ts           # 文件模式
+│       │   │   │   ├── file.service.ts          # 文件服务
+│       │   │   │   └── minio.service.ts         # MinIO服务
+│       │   │   └── users/      # 用户模块
+│       │   │       ├── role.entity.ts           # 角色实体
+│       │   │       ├── role.schema.ts           # 角色模式
+│       │   │       ├── role.service.ts          # 角色服务
+│       │   │       ├── user.entity.ts           # 用户实体
+│       │   │       ├── user.schema.ts           # 用户模式
+│       │   │       └── user.service.ts          # 用户服务
+│       │   ├── middleware/     # 中间件
+│       │   │   ├── auth.middleware.ts           # 认证中间件
+│       │   │   └── permission.middleware.ts     # 权限中间件
+│       │   ├── share/          # 共享类型
+│       │   │   └── types.ts                     # 共享类型定义
+│       │   ├── types/          # 类型定义
+│       │   │   └── context.ts                   # 上下文类型
+│       │   ├── utils/          # 工具函数
+│       │   │   ├── backup.ts                    # 数据库备份
+│       │   │   ├── concrete-crud.service.ts     # 具体CRUD服务
+│       │   │   ├── errorHandler.ts              # 错误处理
+│       │   │   ├── generic-crud.routes.ts       # 通用CRUD路由
+│       │   │   ├── generic-crud.service.ts      # 通用CRUD服务
+│       │   │   ├── jwt.util.ts                  # JWT工具
+│       │   │   ├── logger.ts                    # 日志工具
+│       │   │   ├── parseWithAwait.ts            # 异步解析
+│       │   │   └── restore.ts                   # 数据库恢复
+│       │   ├── data-source.ts                   # 数据库连接
+│       │   └── index.ts                         # 服务器入口
+│       └── package.json
 ├── web/                        # Web应用 (Hono + React SSR)
 │   ├── src/
 │   │   ├── client/             # 客户端代码
@@ -82,31 +142,9 @@ d8d-mini-starter/
 │   │   │   │       └── ...                      # 其他50+组件
 │   │   │   ├── api.ts                           # API客户端
 │   │   │   └── index.tsx                        # 前端入口
-│   │   ├── server/             # 服务器端代码
-│   │   │   ├── api/            # API路由
-│   │   │   │   ├── auth/       # 认证相关
-│   │   │   │   │   ├── index.ts                 # 认证路由入口
-│   │   │   │   │   ├── login/post.ts            # 登录接口
-│   │   │   │   │   ├── logout.ts                # 登出接口
-│   │   │   │   │   ├── me/get.ts                # 获取用户信息
-│   │   │   │   │   ├── me/put.ts                # 更新用户信息
-│   │   │   │   │   ├── mini-login/post.ts       # 小程序登录
-│   │   │   │   │   ├── register/create.ts       # 注册接口
-│   │   │   │   │   └── sso-verify.ts            # SSO验证
-│   │   │   │   ├── files/      # 文件管理
-│   │   │   │   │   ├── [id]/delete.ts           # 删除文件
-│   │   │   │   │   ├── [id]/download.ts         # 下载文件
-│   │   │   │   │   ├── [id]/get-url.ts          # 获取文件URL
-│   │   │   │   │   ├── index.ts                 # 文件列表
-│   │   │   │   │   ├── multipart-complete/post.ts # 完成分片上传
-│   │   │   │   │   ├── multipart-policy/post.ts # 分片上传策略
-│   │   │   │   │   └── upload-policy/post.ts    # 上传策略
-│   │   │   │   ├── roles/index.ts               # 角色管理
-│   │   │   │   ├── users/index.ts               # 用户管理
-│   │   │   │   ├── users/custom.ts              # 自定义用户接口
-│   │   │   │   └── api.ts                       # API路由入口
-│   │   │   ├── data-source.ts                   # 数据库连接
-│   │   │   └── index.tsx                        # 服务器入口
+│   │   ├── server/             # 服务器端代码 (SSR)
+│   │   │   ├── index.tsx                        # 服务器入口
+│   │   │   └── renderer.tsx                     # React渲染器
 │   │   └── share/              # 共享代码
 │   ├── tests/
 │   │   ├── e2e/                # E2E测试 (Playwright)
@@ -120,14 +158,17 @@ d8d-mini-starter/
 ├── .claude/                    # Claude配置
 ├── .git/                       # Git仓库
 ├── package.json                # 根项目配置
+├── pnpm-workspace.yaml         # pnpm workspace 配置
 └── pnpm-lock.yaml              # 依赖锁定文件
 ```
 
 ## 集成指南
 - **文件命名**: 保持现有kebab-case命名约定
-- **项目结构**: 采用monorepo模式,包含小程序(mini)和Web应用(web)两个独立项目
+- **项目结构**: 采用monorepo模式,包含小程序(mini)、Web应用(web)和共享服务器包(packages/server)
+- **包管理**: 使用pnpm workspace管理多包依赖关系
 - **小程序架构**: 基于Taro框架,支持多平台(微信小程序、H5等)
 - **Web应用架构**: 基于Hono + React SSR,使用shadcn/ui组件库
+- **API服务器**: 独立的`@d8d/server`包,基于Hono框架,提供RESTful API
 - **API设计**: 使用Hono框架,RESTful API设计,支持文件分片上传
 - **数据库**: 使用PostgreSQL + TypeORM
 - **存储**: 使用MinIO进行文件存储
@@ -137,3 +178,8 @@ d8d-mini-starter/
   - E2E测试位于`tests/e2e/` (Playwright)
 - **开发环境**: 多八多云端开发容器,包含Node.js 20.19.2、PostgreSQL 17、Redis 7、MinIO
 - **构建工具**: 使用Vite + pnpm,支持SSR构建
+- **架构优势**:
+  - 服务器代码可独立部署和测试
+  - 前端和后端可独立开发
+  - 共享类型定义减少重复代码
+  - 统一的错误处理和中间件