fix: upgrade to Node.js 20 to resolve ES module import issues

Fixes production error where dynamic imports of @svg-maps/world and @svg-maps/usa
packages fail with "Unexpected token 'export'" error.

**Root cause:**
- The @svg-maps packages use ES module syntax (`export default {...}`) in index.js
- Node.js 18 cannot load these files via dynamic import() without "type": "module"
- Node.js 20 has improved ES module support and handles this correctly

**Changes:**
- Dockerfile: FROM node:18-alpine → FROM node:20-alpine
- deploy.yml: node-version "18" → "20"

**Testing:**
-  Local dev server with Node 20: works (dynamic imports succeed)
-  Production container with Node 18: fails (dynamic imports fail)
-  Tested: `node -e "import('@svg-maps/world').then(...)"` succeeds on Node 20

This fix ensures the Socket.IO server can successfully process START_GAME moves
by loading map data via dynamic imports in the Validator.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Thomas Hallock
2025-11-23 10:56:03 -06:00
parent 801f6e99b4
commit 192de5c6b5
3 changed files with 21 additions and 5 deletions

View File

@@ -22,7 +22,7 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: "18"
node-version: "20"
cache: "pnpm"
- name: Install dependencies