build: adopt esbuild for frontend bundling (build:web → public/build/)

- esbuild dev dep; build:web/dev:web bundle public/main.ts → public/build/main.js
- gitignore public/build/; tsconfig.web.json now typecheck-only
- frontend build convention documented in PLAN §1, DISPATCH, ARCHITECTURE §5
- resolves the T1 deferred decision
This commit is contained in:
Yaojia Wang
2026-06-16 07:36:01 +02:00
parent 987cab8eb7
commit 409b208928
8 changed files with 38 additions and 18 deletions

View File

@@ -12,7 +12,8 @@
"start": "tsx src/server.ts",
"dev": "tsx watch src/server.ts",
"build": "tsc -p tsconfig.json",
"build:web": "tsc -p tsconfig.web.json",
"build:web": "esbuild public/main.ts --bundle --format=esm --outdir=public/build --sourcemap",
"dev:web": "esbuild public/main.ts --bundle --format=esm --outdir=public/build --sourcemap --watch",
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.web.json",
"test": "vitest run",
"test:watch": "vitest"
@@ -28,6 +29,7 @@
"@types/express": "^5.0.6",
"@types/node": "^25.9.3",
"@types/ws": "^8.18.1",
"esbuild": "^0.28.1",
"tsx": "^4.22.4",
"typescript": "^6.0.3",
"vitest": "^4.1.9"