- 配置 pnpm workspace + Turborepo - 创建 Next.js 15 前端应用 (apps/web) - 创建 NestJS 10 后端应用 (apps/api) - 集成 Prisma ORM + Swagger + JWT 认证 - 添加共享包 (packages/shared, eslint-config, typescript-config) - 添加项目文档 (README, CLAUDE.md, docs/design.md) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
117 lines
2.3 KiB
Markdown
117 lines
2.3 KiB
Markdown
# 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';
|
|
```
|