- 配置 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>
1.8 KiB
1.8 KiB
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
# 开发(同时启动前后端)
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。
共享包使用
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 任务依赖配置