115 lines
3.6 KiB
JSON
115 lines
3.6 KiB
JSON
{
|
|
"name": "voicehub",
|
|
"version": "1.7.0.0",
|
|
"description": "校园广播站点歌管理系统 - 基于数据库存储的现代化点歌、排期和播放管理平台",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "nuxt build",
|
|
"dev": "nuxt dev",
|
|
"generate": "nuxt generate",
|
|
"preview": "nuxt preview",
|
|
"start": "node .output/server/index.mjs",
|
|
"db:migrate": "drizzle-kit migrate",
|
|
"db:generate": "drizzle-kit generate --name=auto-migration",
|
|
"db:push": "drizzle-kit push --force",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:drop": "drizzle-kit drop",
|
|
"db:check": "drizzle-kit check",
|
|
"db:reset": "tsx scripts/reset-database.js",
|
|
"redis:scan-legacy": "tsx scripts/redis-scan-legacy.js",
|
|
"init-help": "tsx scripts/init-help.js",
|
|
"test": "node --test",
|
|
"setup": "npm ci && npm run db:migrate",
|
|
"create-admin": "tsx scripts/create-admin.js",
|
|
"clear-db": "tsx scripts/clear-database.js",
|
|
"safe-migrate": "tsx scripts/safe-migrate.js",
|
|
"deploy": "node scripts/deploy.js",
|
|
"vercel-build": "node scripts/deploy.js",
|
|
"netlify-build": "node scripts/netlify-build.js",
|
|
"check-deploy": "node scripts/check-deploy.js",
|
|
"postinstall": "nuxt prepare && node scripts/postinstall.js",
|
|
"lint": "nuxt prepare && eslint .",
|
|
"lint:fix": "nuxt prepare && eslint . --fix",
|
|
"format": "prettier --write ."
|
|
},
|
|
"dependencies": {
|
|
"@alicloud/dysmsapi20170525": "^4.5.1",
|
|
"@alicloud/openapi-client": "^0.4.15",
|
|
"@alicloud/tea-util": "^1.4.11",
|
|
"@applemusic-like-lyrics/lyric": "^0.4.1",
|
|
"@applemusic-like-lyrics/vue": "^0.5.2",
|
|
"@breezystack/lamejs": "^1.2.7",
|
|
"@lucide/vue": "^1.41.0",
|
|
"@netlify/functions": "^2.8.2",
|
|
"@nuxtjs/tailwindcss": "^6.14.0",
|
|
"@pixi/app": "^7.4.3",
|
|
"@pixi/core": "^7.4.3",
|
|
"@pixi/display": "^7.4.3",
|
|
"@pixi/filter-blur": "^7.4.3",
|
|
"@pixi/filter-bulge-pinch": "^5.1.1",
|
|
"@pixi/filter-color-matrix": "^7.4.3",
|
|
"@pixi/sprite": "^7.4.3",
|
|
"@sansenjian/qq-music-api": "2.6.0",
|
|
"@simplewebauthn/browser": "^13.3.0",
|
|
"@simplewebauthn/server": "^13.3.3",
|
|
"@types/crypto-js": "^4.2.2",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"@types/lodash-es": "^4.17.12",
|
|
"@types/multer": "^2.1.0",
|
|
"@types/nodemailer": "^6.4.23",
|
|
"@types/pg": "^8.20.0",
|
|
"@ungap/structured-clone": "^1.3.0",
|
|
"@vercel/speed-insights": "^1.3.1",
|
|
"axios": "^1.20.0",
|
|
"bcryptjs": "^2.4.3",
|
|
"bezier-easing": "^2.1.0",
|
|
"chalk": "^5.6.2",
|
|
"core-js": "^3.49.0",
|
|
"crypto-js": "^4.2.0",
|
|
"dayjs": "^1.11.23",
|
|
"deep-freeze": "^0.0.1",
|
|
"dotenv": "^17.4.2",
|
|
"drizzle-kit": "^0.31.10",
|
|
"drizzle-orm": "^0.45.2",
|
|
"formidable": "^3.5.4",
|
|
"gl-matrix": "4.0.0-beta.2",
|
|
"html-to-image": "^1.11.13",
|
|
"ignore": "^5.3.2",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"jspdf": "^3.0.4",
|
|
"jszip": "^3.10.1",
|
|
"lodash-es": "^4.18.1",
|
|
"marked": "^18.0.11",
|
|
"multer": "^2.1.1",
|
|
"nodemailer": "^8.0.11",
|
|
"nuxt": "^4.5.2",
|
|
"otplib": "^12.0.1",
|
|
"postgres": "^3.4.9",
|
|
"prompts": "^2.4.2",
|
|
"qrcode": "^1.5.4",
|
|
"redis": "^5.12.1",
|
|
"sass": "^1.104.0",
|
|
"svg-captcha": "^1.4.0",
|
|
"tsx": "^4.21.0",
|
|
"vite-plugin-glsl": "^1.5.6",
|
|
"vite-plugin-top-level-await": "^1.6.0",
|
|
"vite-plugin-wasm": "^3.6.0",
|
|
"vue": "^3.5.42",
|
|
"vue-router": "^4.6.4",
|
|
"wasm-media-encoders": "^0.7.0",
|
|
"xlsx": "^0.18.5",
|
|
"xss": "^1.0.15",
|
|
"zod": "^4.5.4"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.11.0"
|
|
},
|
|
"devDependencies": {
|
|
"@nuxt/eslint": "^1.17.0",
|
|
"eslint": "^9.39.5",
|
|
"prettier": "^3.9.6",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|