- 配置 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>
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# CLAUDE.md
|
||
|
||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||
|
||
## Project Overview
|
||
|
||
Seclusion 是一个基于 Next.js + NestJS 的 Monorepo 项目模板,使用 pnpm workspace + Turborepo 管理。
|
||
|
||
## Commands
|
||
|
||
```bash
|
||
# 开发(同时启动前后端)
|
||
pnpm dev
|
||
|
||
# 构建
|
||
pnpm build
|
||
|
||
# 代码检查
|
||
pnpm lint
|
||
pnpm format # 格式化
|
||
pnpm format:check # 检查格式
|
||
|
||
# 测试
|
||
pnpm test
|
||
cd apps/api && pnpm test:watch # 单个测试文件监听
|
||
|
||
# 数据库
|
||
pnpm db:generate # 生成 Prisma Client
|
||
pnpm db:push # 推送 schema 到数据库
|
||
pnpm db:migrate # 运行迁移
|
||
cd apps/api && pnpm db:studio # 打开 Prisma Studio
|
||
```
|
||
|
||
## Architecture
|
||
|
||
### Monorepo 结构
|
||
|
||
- **apps/web** - Next.js 15 前端 (端口 3000)
|
||
- **apps/api** - NestJS 10 后端 (端口 4000,API 文档: /api/docs)
|
||
- **packages/shared** - 共享类型定义和工具函数
|
||
- **packages/eslint-config** - 共享 ESLint 配置
|
||
- **packages/typescript-config** - 共享 TypeScript 配置
|
||
|
||
### 后端模块 (apps/api)
|
||
|
||
NestJS 采用模块化架构:
|
||
- **PrismaModule** - 全局数据库服务,其他模块通过依赖注入使用
|
||
- **AuthModule** - JWT 认证(注册、登录、token 验证)
|
||
- **UserModule** - 用户 CRUD
|
||
|
||
认证流程:使用 `@Public()` 装饰器标记公开接口,其他接口需要 JWT Bearer Token。
|
||
|
||
### 共享包使用
|
||
|
||
```typescript
|
||
import type { User, ApiResponse } from '@seclusion/shared';
|
||
import { formatDate, generateId } from '@seclusion/shared';
|
||
```
|
||
|
||
## Key Files
|
||
|
||
- `apps/api/prisma/schema.prisma` - 数据库模型定义
|
||
- `apps/api/.env` - 后端环境变量 (DATABASE_URL, JWT_SECRET)
|
||
- `apps/web/.env.local` - 前端环境变量 (NEXT_PUBLIC_API_URL)
|
||
- `turbo.json` - Turborepo 任务依赖配置
|