# 前端 TypeScript + esbuild 迁移计划 决策:Q1(a) 单文件 ESM `chat.js`;Q2 esbuild;Q3 构建产物入库;Q4 `node --test` + Node 原生 TS(禁 enum/namespace 等不可擦除语法)。 ## 目标结构 ``` frontend/ package.json / tsconfig.json / esbuild.config.mjs src/{types,api,dom,state,ws,main}.ts tests/{state,ws}.test.ts ``` - 构建产物:`src/genesis/server/static/chat.js`(ESM,入库)。 - `chat_state.js` / `chat_ws.js` 删除(并入 bundle)。 - `chat.html`:`