# test **Repository Path**: dk_afei/test ## Basic Information - **Project Name**: test - **Description**: monorepo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-23 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Monorepo 项目 这是一个基于 pnpm + Turbo 的 monorepo 项目,支持前端、后端等多个项目的统一管理和开发。 ## 🏗️ 项目结构 ``` monorepo/ ├── apps/ # 应用程序 │ ├── web/ # Next.js 前端应用 (React) │ ├── front/ # Nuxt 3 前端应用 (Vue) │ ├── server/ # Hono 后端服务 (主要后端) │ └── api/ # Express 后端 API ├── packages/ # 共享包 │ ├── ui/ # 共享 UI 组件库 (React) │ └── utils/ # 共享工具函数 ├── deploy/ # 部署相关 │ ├── docker/ # Docker 配置 │ └── nginx/ # Nginx 配置 ├── docs/ # 项目文档 ├── scripts/ # 脚本文件 ├── package.json # 根 package.json ├── pnpm-workspace.yaml # pnpm 工作空间配置 ├── turbo.json # Turbo 构建配置 ├── biome.json # Biome 代码规范配置 └── README.md # 项目说明 ``` ## 🚀 技术栈 ### 包管理 - **pnpm**: 8.15.0+ (工作空间管理) ### 构建工具 - **Turbo**: 1.12.4+ (并行构建和缓存) ### 代码规范 - **Biome**: ESLint + Prettier 的替代方案 - **Husky**: Git 钩子管理 - **lint-staged**: 暂存文件检查 ### 版本管理 - **Changesets**: 版本管理和发布 ### 前端应用 - **apps/web**: Next.js 14 + React 18 + TypeScript + Ant Design - **apps/front**: Nuxt 3 + Vue 3 + TypeScript + Element Plus + Tailwind CSS ### 后端服务 - **apps/server**: Hono + MikroORM + PostgreSQL + Redis + TypeScript - 支持 OpenAPI/Swagger 文档 - SM2/SM3/SM4 加密支持 - 数据库迁移管理 - **apps/api**: Express + TypeScript (简单 API 服务) ### 共享包 - **packages/ui**: React UI 组件库 (基于 Radix UI + Tailwind CSS) - **packages/utils**: 共享工具函数 ## 📦 安装依赖 ```bash # 安装所有依赖 pnpm install # 或者使用 pnpm 的别名 pnpm i ``` ## 🛠️ 开发命令 ### 全局命令(在根目录执行) ```bash # 启动所有应用的开发服务器 pnpm dev # 构建所有项目 pnpm build # 运行代码检查 pnpm lint # 修复代码格式问题 pnpm lint:fix # 格式化代码 pnpm format # 检查代码格式 pnpm format:check # 类型检查 pnpm type-check # 运行测试 pnpm test # 清理构建产物 pnpm clean ``` ## 🎯 项目特定命令 ### Web 应用 (apps/web) - Next.js ```bash # 进入 web 应用目录 cd apps/web # 启动开发服务器 (http://localhost:3000) pnpm dev # 构建生产版本 pnpm build # 启动生产服务器 pnpm start # 代码检查和格式化 pnpm lint pnpm format pnpm type-check ``` **技术栈**: Next.js 14, React 18, TypeScript, Ant Design, Monaco Editor, Styled Components ### Front 应用 (apps/front) - Nuxt 3 ```bash # 进入 front 应用目录 cd apps/front # 启动开发服务器 pnpm dev # 构建生产版本 pnpm build # 预览构建结果 pnpm preview # 启动生产服务器 pnpm start # 代码检查和格式化 pnpm lint pnpm format pnpm type-check ``` **技术栈**: Nuxt 3, Vue 3, TypeScript, Element Plus, Tailwind CSS ### Server 服务 (apps/server) - Hono ```bash # 进入 server 目录 cd apps/server # 启动开发服务器 (http://localhost:3002) pnpm dev # 构建生产版本 pnpm build # 启动生产服务器 pnpm start # 数据库迁移 pnpm migration:create # 创建迁移 pnpm migration:up # 运行迁移 pnpm migration:down # 回滚迁移 pnpm schema:update # 更新数据库结构 # 代码检查和格式化 pnpm lint pnpm format pnpm type-check ``` **技术栈**: Hono, MikroORM, PostgreSQL, Redis, TypeScript, OpenAPI/Swagger **功能特性**: - 🔐 SM2/SM3/SM4 加密支持 - 🗄️ PostgreSQL 数据库 + MikroORM ORM - 🚀 Redis 缓存 - 📚 自动生成 OpenAPI 文档 (http://localhost:3002/docs) ### API 服务 (apps/api) - Express ```bash # 进入 API 目录 cd apps/api # 启动开发服务器 (http://localhost:3001) pnpm dev # 构建生产版本 pnpm build # 启动生产服务器 pnpm start # 代码检查和格式化 pnpm lint pnpm format pnpm type-check ``` **技术栈**: Express, TypeScript, CORS, Helmet ### 共享包 ```bash # 构建所有共享包 pnpm --filter "@monorepo/*" build # 监听模式构建 pnpm --filter "@monorepo/*" dev # 构建特定包 pnpm --filter "@monorepo/ui" build pnpm --filter "@monorepo/utils" build ``` ## 🔧 添加新项目 ### 添加新的前端应用 ```bash # 使用 Turbo 生成器创建新的 Next.js 应用 npx turbo gen next-app apps/new-web-app # 或者手动创建 mkdir apps/new-web-app cd apps/new-web-app # 复制 apps/web 的结构并修改配置 ``` ### 添加新的后端服务 ```bash # 手动创建新的 API 服务 mkdir apps/new-api cd apps/new-api # 复制 apps/server 或 apps/api 的结构并修改配置 ``` ### 添加新的共享包 ```bash # 手动创建新的共享包 mkdir packages/new-package cd packages/new-package # 复制 packages/utils 的结构并修改配置 ``` ## 📝 代码规范 项目使用 Biome 进行代码规范和格式化: - **Linting**: 代码质量检查 - **Formatting**: 代码格式化 - **Import Sorting**: 自动整理导入语句 ### 配置说明 - `biome.json`: Biome 配置文件 - `.lintstagedrc.json`: lint-staged 配置 - `.husky/pre-commit`: Git 提交前钩子 ### 代码风格规则 - 使用单引号 - 2 空格缩进 - 行宽 100 字符 - 总是使用分号 - 箭头函数总是使用括号 ## 🔄 版本管理 使用 Changesets 进行版本管理: ```bash # 添加变更记录 pnpm changeset # 版本升级 pnpm version-packages # 发布包 pnpm release ``` ## 🌟 最佳实践 1. **依赖管理**: 使用 pnpm 的 workspace 功能管理依赖 2. **代码规范**: 提交前自动运行 lint 和 format 3. **类型安全**: 使用 TypeScript 确保类型安全 4. **构建优化**: 使用 Turbo 的缓存机制加速构建 5. **包管理**: 合理使用 workspace 依赖避免重复安装 ## 📚 相关文档 - [pnpm 工作空间](https://pnpm.io/workspaces) - [Turbo 文档](https://turbo.build/repo/docs) - [Biome 文档](https://biomejs.dev/) - [Changesets 文档](https://github.com/changesets/changesets) - [Next.js 文档](https://nextjs.org/docs) - [Nuxt 3 文档](https://nuxt.com/docs) - [Hono 文档](https://hono.dev/) ## ✅ 服务状态 ### 后端服务 **Server 服务** (Hono) - 主要后端 - 🌐 地址: http://localhost:3002 - ✅ 健康检查: http://localhost:3002/health - 📚 API 文档: http://localhost:3002/docs - 📋 OpenAPI 规范: http://localhost:3002/openapi.json - 🔧 技术栈: Hono + TypeScript + MikroORM + PostgreSQL + Redis **API 服务** (Express) - 🌐 地址: http://localhost:3001 - ✅ 健康检查: http://localhost:3001/health - ✅ API 接口: http://localhost:3001/api/hello - 🔧 技术栈: Express + TypeScript + CORS + Helmet ### 前端应用 **Web 应用** (Next.js) - 🌐 地址: http://localhost:3000 - ✅ 服务状态: 正在运行 - 🔧 技术栈: Next.js + React + TypeScript + Ant Design **Front 应用** (Nuxt 3) - 🌐 地址: http://localhost:3003 (默认) - ✅ 服务状态: 正在运行 - 🔧 技术栈: Nuxt 3 + Vue 3 + TypeScript + Element Plus ## 🚀 访问方式 1. **前端应用**: - Next.js: http://localhost:3000 - Nuxt 3: http://localhost:3003 (默认) 2. **后端 API**: - Server (Hono): http://localhost:3002 - API 文档: http://localhost:3002/docs - 健康检查: http://localhost:3002/health - API (Express): http://localhost:3001 - 健康检查: http://localhost:3001/health - API 接口: http://localhost:3001/api/hello ## 📊 服务监控 您可以通过以下方式监控服务状态: ```bash # 检查端口占用 (Windows) netstat -ano | findstr ":300" # 检查端口占用 (Linux/Mac) lsof -i :3000 lsof -i :3001 lsof -i :3002 # 测试 API 接口 curl http://localhost:3001/health curl http://localhost:3001/api/hello curl http://localhost:3002/health ``` ## 🛠️ 开发命令 ```bash # 停止所有服务 Ctrl + C # 重新启动所有服务 pnpm dev # 单独启动服务 cd apps/web && pnpm dev # Next.js 前端 cd apps/front && pnpm dev # Nuxt 3 前端 cd apps/server && pnpm dev # Hono 后端 cd apps/api && pnpm dev # Express API ``` ## 🐳 Docker 部署 项目包含完整的 Docker 配置,支持开发和生产环境: ```bash # 使用 Docker Compose 启动所有服务 cd deploy/docker docker-compose up -d # 仅启动特定服务 docker-compose up -d server docker-compose up -d web # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` 详细部署说明请参考 `deploy/README.md` ## 📖 项目文档 - [架构说明](./docs/ARCHITECTURE.md) - [导入接口相关](./docs/导入接口相关.md) - [导出接口相关](./docs/导出接口相关.md) 现在您可以在浏览器中访问前端应用,同时后端 API 也在正常运行,可以开始开发了!🎯