Files
seclusion/CLAUDE.md
charilezhou 74ced8c0c6 chore: 初始化 monorepo 项目脚手架
- 配置 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>
2025-12-28 14:51:40 +08:00

1.8 KiB
Raw Blame History

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 后端 (端口 4000API 文档: /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 任务依赖配置