- Set up pnpm workspace with 4 packages: shared, server, client-mobile, client-screen - Implement Redis atomic voting with Lua scripts (HINCRBY + distributed lock) - Add optimistic UI with IndexedDB queue for offline resilience - Configure Socket.io with auto-reconnection (infinite retries) - Separate mobile (Vant) and big screen (Pixi.js) dependencies Tech stack: - Frontend Mobile: Vue 3 + Vant + Socket.io-client - Frontend Screen: Vue 3 + Pixi.js + GSAP - Backend: Express + Socket.io + Redis + Prisma/MySQL Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
35 lines
855 B
JSON
35 lines
855 B
JSON
{
|
|
"name": "@gala/client-mobile",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vue-tsc --noEmit && vite build",
|
|
"preview": "vite preview",
|
|
"typecheck": "vue-tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@gala/shared": "workspace:*",
|
|
"vue": "^3.5.13",
|
|
"vue-router": "^4.5.0",
|
|
"pinia": "^2.3.0",
|
|
"pinia-plugin-persistedstate": "^4.1.3",
|
|
"vant": "^4.9.14",
|
|
"socket.io-client": "^4.8.1",
|
|
"axios": "^1.7.9",
|
|
"idb-keyval": "^6.2.1"
|
|
},
|
|
"devDependencies": {
|
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
"@vant/auto-import-resolver": "^1.3.0",
|
|
"unplugin-vue-components": "^0.27.5",
|
|
"unplugin-auto-import": "^0.18.6",
|
|
"vite": "^6.0.7",
|
|
"vite-plugin-pwa": "^0.21.1",
|
|
"sass": "^1.83.1",
|
|
"typescript": "^5.7.3",
|
|
"vue-tsc": "^2.2.0"
|
|
}
|
|
}
|