# Seclusion 基于 Next.js + NestJS 的 Monorepo 项目模板,使用 pnpm workspace + Turborepo 管理。 ## 技术栈 - **前端**: Next.js 15 + React 19 + TypeScript - **后端**: NestJS 10 + Prisma + Swagger + JWT - **工具链**: pnpm + Turborepo + ESLint + Prettier ## 项目结构 ``` seclusion/ ├── apps/ │ ├── web/ # Next.js 前端应用 │ └── api/ # NestJS 后端应用 ├── packages/ │ ├── shared/ # 共享代码(类型、工具函数) │ ├── eslint-config/ # ESLint 配置 │ └── typescript-config/ # TypeScript 配置 ├── package.json ├── pnpm-workspace.yaml └── turbo.json ``` ## 快速开始 ### 环境要求 - Node.js >= 20.0.0 - pnpm >= 9.0.0 ### 安装依赖 ```bash pnpm install ``` ### 配置环境变量 ```bash # 后端 cp apps/api/.env.example apps/api/.env # 前端 cp apps/web/.env.example apps/web/.env.local ``` ### 初始化数据库 ```bash # 生成 Prisma Client pnpm db:generate # 推送数据库 schema pnpm db:push ``` ### 启动开发服务器 ```bash # 同时启动前端和后端 pnpm dev ``` - 前端: http://localhost:3000 - 后端: http://localhost:4000 - API 文档: http://localhost:4000/api/docs ## 常用命令 ```bash # 开发 pnpm dev # 启动所有应用的开发服务器 # 构建 pnpm build # 构建所有应用 # 代码质量 pnpm lint # 运行 ESLint pnpm format # 格式化代码 # 数据库 pnpm db:generate # 生成 Prisma Client pnpm db:push # 推送 schema 到数据库 pnpm db:migrate # 运行数据库迁移 # 清理 pnpm clean # 清理所有构建产物和 node_modules ``` ## API 接口 ### 认证相关 - `POST /auth/register` - 用户注册 - `POST /auth/login` - 用户登录 - `GET /auth/me` - 获取当前用户信息(需认证) ### 用户管理 - `GET /users` - 获取所有用户(需认证) - `GET /users/:id` - 获取指定用户(需认证) - `PATCH /users/:id` - 更新用户信息(需认证) - `DELETE /users/:id` - 删除用户(需认证) ## 共享包使用 ```typescript // 导入类型 import type { User, ApiResponse } from '@seclusion/shared'; // 导入工具函数 import { formatDate, generateId } from '@seclusion/shared'; ```