{ "name": "koa3-demo", "module": "index.js", "version": "0.0.1-alpha", "type": "module", "scripts": { "dev": "bun run server.ts", "build": "npm run build:client && npm run build:server", "build:client": "vite build --outDir dist/client", "build:server": "vite build --ssr client/entry-server.ts --outDir dist/server", "preview": "cross-env NODE_ENV=production node server", "check": "vue-tsc" }, "devDependencies": { "@types/bun": "latest", "@types/koa": "^3.0.0", "@types/node": "^24.0.1", "cross-env": "^10.0.0", "koa-send": "^5.0.1", "module-alias": "^2.2.3", "node-gyp": "^11.4.2", "vite": "^7.0.0", "vite-plugin-static-copy": "^3.1.0" }, "dependencies": { "@koa/etag": "^5.0.1", "@vitejs/plugin-vue": "^6.0.1", "bcryptjs": "^3.0.2", "consolidate": "^1.0.4", "extend-shallow": "^3.0.2", "formidable": "^3.5.4", "get-paths": "^0.0.7", "image-thumbnail": "^1.0.17", "jsonwebtoken": "^9.0.0", "jstransformer-markdown-it": "^3.0.0", "knex": "^3.1.0", "koa": "^3.0.0", "koa-bodyparser": "^4.4.1", "koa-connect": "^2.1.0", "koa-helmet": "^8.0.1", "koa-ratelimit": "^6.0.0", "koa-session": "^7.0.2", "lodash": "^4.17.21", "log4js": "^6.9.1", "marked": "^16.2.1", "minimatch": "^9.0.0", "node-cron": "^4.1.0", "path-to-regexp": "^8.2.0", "pretty": "^2.0.0", "pug": "^3.0.3", "sass": "^1.92.1", "sqlite3": "^5.1.7", "svg-captcha": "^1.4.0" }, "_moduleAliases": { "@": "./src", "config": "./src/config", "db": "./src/db", "utils": "./src/utils", "services": "./src/services" }, "peerDependencies": { "typescript": "^5.9.2" } }