# 本地开发指南 ## 开发工作流 ### 日常开发流程 1. **拉取最新代码** ```bash git pull origin monorepo pnpm install ``` 2. **创建功能分支** ```bash git checkout -b feature/your-feature-name ``` 3. **启动开发环境** ```bash # 构建共享包(如果修改了共享代码) pnpm run build:mini-ui-packages # 启动应用 pnpm dev ``` 4. **开发和测试** - 在浏览器中访问 http://localhost:8080 - 进行功能开发和调试 5. **代码检查** ```bash # 类型检查 pnpm typecheck # 代码检查 pnpm lint # 运行测试 pnpm test ``` 6. **提交代码** ```bash git add . git commit -m "feat: 描述你的功能" git push origin feature/your-feature-name ``` ## 包开发 ### 开发共享包 共享包(如 `shared-utils`, `shared-types`)在开发时需要启用监听模式: ```bash cd packages/shared-utils pnpm dev # 启动 TypeScript 监听模式 ``` ### 开发业务模块 #### 后端模块开发 ```bash cd allin-packages/channel-module # 编辑代码 # src/entities/channel.entity.ts # src/services/channel.service.ts # src/routes/channel.routes.ts # 运行测试 pnpm test # 类型检查 pnpm typecheck ``` #### UI包开发 ```bash cd packages/user-management-ui # 编辑组件 # src/components/UsersTable.tsx # 开发模式(如果有) pnpm dev # 类型检查 pnpm typecheck ``` ### 开发小程序UI包 ```bash cd mini-ui-packages/yongren-dashboard-ui # 编辑组件 # src/components/DashboardCard.tsx # 构建包 pnpm build # 运行测试 pnpm test ``` ## 调试技巧 ### 后端调试 #### 使用 VS Code 调试 创建 `.vscode/launch.json`: ```json { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug Web Server", "runtimeExecutable": "pnpm", "runtimeArgs": ["run", "dev:web"], "cwd": "${workspaceFolder}", "console": "integratedTerminal" } ] } ``` #### 日志调试 ```typescript import { logger } from '@d8d/shared-utils'; // 使用logger而不是console.log logger.info('User created', { userId: user.id }); logger.error('Failed to create order', { error }); ``` ### 前端调试 #### React DevTools 1. 安装 React DevTools 浏览器扩展 2. 在开发者工具中查看组件树和状态 #### 网络请求调试 ```typescript import { hc } from 'hono/client'; import type AppRoutes from '@d8d/server'; // 在客户端查看RPC调用 const client = hc('/api'); // 浏览器网络标签中查看请求 ``` ### 小程序调试 #### 微信开发者工具 1. 打开微信开发者工具 2. 导入项目:选择 `mini/` 或 `mini-talent/` 目录 3. 使用调试工具查看组件和状态 #### H5 模式调试 在浏览器中打开: - 员工小程序: http://localhost:8080 - 人才小程序: http://localhost:8081 ## 测试 ### 运行单元测试 ```bash # 运行所有测试 pnpm test # 运行特定包的测试 cd packages/core-module/auth-module pnpm test # 监听模式 pnpm test:watch ``` ### 运行集成测试 ```bash # 集成测试需要数据库连接 cd packages/core-module/auth-module pnpm test:integration ``` ### 运行E2E测试 ```bash # 在根目录 pnpm test:e2e # 指定浏览器 pnpm test:e2e:chromium ``` ### 测试覆盖率 ```bash pnpm test:coverage ``` ## 数据库操作 ### 运行迁移 ```bash # TypeORM迁移 cd web pnpm db:migrate ``` ### 数据库备份 ```bash # 备份数据库 pnpm db:backup # 列出备份 pnpm db:backup:list # 恢复数据库 pnpm db:restore ``` ### 重置数据库 ```bash # ⚠️ 警告:这会删除所有数据 pnpm db:reset ``` ## 常见任务 ### 添加新的依赖 ```bash # 添加到根目录 pnpm add package-name # 添加到特定包 cd packages/your-package pnpm add package-name # 添加开发依赖 pnpm add -D package-name ``` ### 添加新的共享包 ```bash # 在 packages/ 或 allin-packages/ 创建新包 mkdir packages/new-package cd packages/new-package # 初始化 package.json pnpm init # 配置包导出 # ... ``` ### 创建新的UI组件 ```bash # 在UI包中创建组件 cd packages/user-management-ui/src/components # 创建组件文件 touch UserForm.tsx ``` ## 性能优化 ### 构建优化 ```bash # 使用 Turbo 缓存加速构建 pnpm build # 清理缓存 rm -rf .turbo ``` ### 开发模式优化 - 使用 `--filter` 只构建相关包 - 并行构建调整工作空间并发数 ```bash # 只构建特定包 pnpm --filter "@d8d/user-management-ui" build ``` ## 故障排查 ### 端口已被占用 ```bash # 查找占用端口的进程 lsof -i :8080 # 杀死进程 kill -9 ``` ### 热重载不工作 1. 清理 `.turbo` 缓存 2. 重启开发服务器 3. 检查 `vite.config.ts` 配置 ### 类型错误 ```bash # 清理并重新安装 rm -rf node_modules .pnpm-store pnpm install # 重置 TypeScript 项目服务 # 在 VS Code 中: Ctrl+Shift+P -> TypeScript: Restart TS Server ``` ## 相关文档 - [开发环境设置](./setup.md) - [编码标准](../standards/coding-standards.md) - [测试规范](../standards/testing-standards.md) --- **文档版本**: 1.0 **最后更新**: 2026-01-07