{ "name": "reading-platform-backend", "version": "1.0.0", "description": "幼儿阅读教学服务平台后端", "main": "dist/src/main.js", "scripts": { "prestart:dev": "npx tsc", "start:dev": "node dist/src/main.js", "build": "npx tsc", "start": "node dist/src/main.js", "start:prod": "node dist/src/main.js", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:studio": "prisma studio", "seed": "ts-node prisma/seed.ts" }, "dependencies": { "@nestjs/common": "^10.3.0", "@nestjs/config": "^3.1.1", "@nestjs/core": "^10.3.0", "@nestjs/jwt": "^10.2.0", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.4.22", "@nestjs/schedule": "^6.1.1", "@nestjs/swagger": "^11.2.6", "@nestjs/throttler": "^5.2.0", "@prisma/client": "^5.22.0", "@types/multer": "^2.0.0", "ali-oss": "^6.18.1", "bcrypt": "^5.1.1", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", "compression": "^1.8.1", "dayjs": "^1.11.10", "exceljs": "^4.4.0", "passport": "^0.7.0", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0", "reflect-metadata": "^0.1.14", "rxjs": "^7.8.1", "xlsx": "^0.18.5" }, "devDependencies": { "@nestjs/cli": "^10.3.0", "@nestjs/schematics": "^10.1.0", "@nestjs/testing": "^10.3.0", "@playwright/test": "^1.58.2", "@types/bcrypt": "^5.0.2", "@types/express": "^4.17.21", "@types/jest": "^29.5.11", "@types/node": "^20.10.6", "@types/passport-jwt": "^4.0.0", "@types/passport-local": "^1.0.38", "@typescript-eslint/eslint-plugin": "^6.18.0", "@typescript-eslint/parser": "^6.18.0", "eslint": "^8.56.0", "jest": "^29.7.0", "prisma": "^5.8.0", "source-map-support": "^0.5.21", "ts-jest": "^29.1.1", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "tsconfig-paths": "^4.2.0", "typescript": "^5.6.3" } }