Files
freedakgmail 2968484d2d 优化: 大文件拆分+代码分割+按需加载+console清理+any类型替换
- Money.tsx (2260行→54行): 拆分为 money/ 子目录4个组件, React.lazy二级分割
- AIAssistant.tsx (2038行→63行): 拆分为 ai-assistant/ 子目录6个组件, React.lazy二级分割
- xlsx改为动态导入, OvertimeTab从345KB降至12.7KB
- api-services.ts: 请求参数 any→Record<string,unknown>
- 移除前端3处console.log残留
- 后端console替换为pino logger
- 前后端未使用import/变量清理
- Zod schema验证: termination/platform/special-status/work-process
- 新增 leave.routes.ts, acceptance-test.routes.ts
- UI组件: PageGuide, QueryError, Stepper
2026-08-04 07:53:37 +08:00

55 lines
1.4 KiB
JSON

{
"name": "hr-compliance-backend",
"private": true,
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate dev",
"prisma:seed": "tsx prisma/seed.ts",
"prisma:seed-multi": "tsx prisma/seed-multi-org.ts"
},
"dependencies": {
"@prisma/client": "^5.18.0",
"@types/multer": "^2.2.0",
"@types/redis": "^4.0.10",
"bcryptjs": "^2.4.3",
"compression": "^1.7.4",
"cors": "^2.8.5",
"exceljs": "^4.4.0",
"express": "^4.19.0",
"express-rate-limit": "^7.4.0",
"helmet": "^7.1.0",
"jsonwebtoken": "^9.0.2",
"mammoth": "^1.12.0",
"morgan": "^1.10.0",
"multer": "^2.2.0",
"node-cron": "^3.0.3",
"openai": "^6.48.0",
"pino": "^10.3.1",
"pino-pretty": "^13.1.3",
"redis": "^6.1.0",
"uuid": "^10.0.0",
"xlsx": "^0.18.5",
"zod": "^3.23.0"
},
"devDependencies": {
"@types/bcryptjs": "^2.4.6",
"@types/compression": "^1.7.5",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/jsonwebtoken": "^9.0.6",
"@types/morgan": "^1.9.9",
"@types/node": "^20.14.0",
"@types/node-cron": "^3.0.11",
"@types/uuid": "^10.0.0",
"prisma": "^5.18.0",
"ts-node-dev": "^2.0.0",
"tsx": "^4.23.1",
"typescript": "^5.5.0"
}
}