Files
wuziqi/package.json
T
root 59bfc98afa feat: 在线双人五子棋(Socket.IO + Vue3 + Canvas)
- 服务端权威状态机:落子校验、四方向五连判胜、悔棋请求、认输、离线判负、交换黑白再来一局
- 断线重连:resumeToken 凭证 + localStorage,刷新/锁屏自动回到原座位
- 移动端 Canvas 棋盘:DPR 适配、触摸容差吸附、最后一手标记、胜利连子高亮
- Docker 多阶段构建,非 root + 只读根文件系统
- k8s 清单:单副本 Recreate(内存态房态)、Ingress WebSocket 超时与粘性会话注释
2026-09-10 18:17:10 +08:00

38 lines
1.1 KiB
JSON

{
"name": "wuziqi",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "在线五子棋 · 双人手机对弈(Socket.IO 单副本,无数据库)",
"scripts": {
"dev": "concurrently -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"",
"dev:server": "tsx watch server/index.ts",
"dev:web": "vite",
"build": "npm run build:server && npm run build:web",
"build:server": "tsc -p tsconfig.server.json",
"build:web": "vite build",
"start": "node dist-server/server/index.js",
"smoke": "node scripts/smoke.mjs",
"typecheck": "tsc -p tsconfig.server.json --noEmit && vue-tsc -p tsconfig.web.json --noEmit"
},
"dependencies": {
"express": "^4.21.2",
"socket.io": "^4.8.1"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/node": "^20.17.10",
"@vitejs/plugin-vue": "^5.2.1",
"concurrently": "^9.1.0",
"socket.io-client": "^4.8.1",
"tsx": "^4.19.2",
"typescript": "^5.6.3",
"vite": "^5.4.11",
"vue": "^3.5.13",
"vue-tsc": "^2.1.10"
},
"engines": {
"node": ">=20"
}
}