chore(scripts): 使用 tsx 运行 TypeScript 脚本,解除对特定 Node 运行时的依赖 (fixes #12)
- 将所有 npm scripts 和文档里的 `node scripts/*.ts` 替换为 `tsx` 调用。 - 移除了对手动开启 --experimental-strip-types 的要求提示。 - 现在任何 Node >= 18 标准环境均可执行所有 verify 脚本及开发工具。
This commit is contained in:
parent
3cfa0cff9a
commit
63b3962a52
12
HANDOVER.md
12
HANDOVER.md
|
|
@ -14,8 +14,8 @@ cd /root/diablo_web
|
|||
npm install # 只装 devDependencies:vite / typescript / @types/node
|
||||
|
||||
# 夹具(仓库不含素材,夹具是脚本生成的)
|
||||
node scripts/make-map-fixtures.ts samples/fixtures
|
||||
node scripts/make-mpq-fixture.ts samples/fixtures # 把夹具打成真 MPQ
|
||||
tsx scripts/make-map-fixtures.ts samples/fixtures
|
||||
tsx scripts/make-mpq-fixture.ts samples/fixtures # 把夹具打成真 MPQ
|
||||
|
||||
npm run dev # http://127.0.0.1:5173/
|
||||
```
|
||||
|
|
@ -283,7 +283,7 @@ npm run verify:acts # 五个 act 城镇解析 + 合成,40/40
|
|||
|
||||
implode 落地后,§7A 剩下这四件(现在都有真文件可对照):
|
||||
|
||||
1. `node scripts/inspect-mpq.ts <file> header` 和 `hist` → 头字段与压缩掩码分布。
|
||||
1. `tsx scripts/inspect-mpq.ts <file> header` 和 `hist` → 头字段与压缩掩码分布。
|
||||
2. **DT1 数据块偏移基准**:`src/formats/dt1.ts` 现在按"先相对、失败再绝对"处理 `FileOffset`,需要真文件确认。
|
||||
3. **经典 `string.tbl` 索引布局**:`src/formats/tbl.ts` 目前只有**构造检查**级证据
|
||||
(Go 侧 `tbl_text` 实现的是后来带哈希表的变体,不能当对照)。
|
||||
|
|
@ -310,7 +310,7 @@ implode 落地后,§7A 剩下这四件(现在都有真文件可对照):
|
|||
cd /root/diablo_web
|
||||
npx tsc --noEmit # 类型检查
|
||||
npm run build # 四个入口都进产物
|
||||
node scripts/verify-net.ts # 143 项
|
||||
tsx scripts/verify-net.ts # 143 项
|
||||
```
|
||||
|
||||
三者在迁移后均通过(见本次会话最后一条工具输出);开发服务器与中继已改为从新路径启动:
|
||||
|
|
@ -324,10 +324,10 @@ npm run net-server # 后台任务,ws://127.0.0.1:8787
|
|||
|
||||
```bash
|
||||
CHROME=/root/.cache/ms-playwright/chromium-1223/chrome-linux64/chrome
|
||||
node scripts/browser/inspect-page.mjs "$CHROME" \
|
||||
tsx scripts/browser/inspect-page.mjs "$CHROME" \
|
||||
"http://127.0.0.1:5173/map.html?data=samples/fixtures" \
|
||||
scripts/browser/checks/map-save-load.js
|
||||
node scripts/browser/many-pages.mjs "$CHROME" \
|
||||
tsx scripts/browser/many-pages.mjs "$CHROME" \
|
||||
"http://127.0.0.1:5173/net.html?data=samples/fixtures&ws=ws://127.0.0.1:8787&peer=0" \
|
||||
"http://127.0.0.1:5173/net.html?data=samples/fixtures&ws=ws://127.0.0.1:8787&peer=1"
|
||||
```
|
||||
|
|
|
|||
|
|
@ -70,8 +70,8 @@ tar xJf d2-packs-2026-09-14.tar.xz # 解出 samples/d2-packs/
|
|||
|
||||
```bash
|
||||
npm install # 仅 vite / typescript / @types/node
|
||||
node scripts/make-fixtures.ts samples/fixtures # 夹具:DC6 + 调色板 + 文本表
|
||||
node scripts/make-map-fixtures.ts samples/fixtures # 夹具:DT1 + DS1 + 夹具 MPQ
|
||||
tsx scripts/make-fixtures.ts samples/fixtures # 夹具:DC6 + 调色板 + 文本表
|
||||
tsx scripts/make-map-fixtures.ts samples/fixtures # 夹具:DT1 + DS1 + 夹具 MPQ
|
||||
npm run pack:data # 从 samples/d2/ 烘焙 62 个地图块 → samples/d2-packs
|
||||
npm run dev # http://127.0.0.1:5173/acts.html
|
||||
```
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
46
package.json
46
package.json
|
|
@ -9,30 +9,36 @@
|
|||
"build": "tsc --noEmit && vite build",
|
||||
"preview": "vite preview",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"inspect": "node scripts/inspect-mpq.ts",
|
||||
"net-server": "node scripts/net-server.ts",
|
||||
"verify:net": "node scripts/verify-net.ts",
|
||||
"verify:d2": "node scripts/verify-d2-data.ts",
|
||||
"verify:implode": "node scripts/verify-implode.ts",
|
||||
"verify:collision-orientation": "node scripts/verify-collision-orientation.ts",
|
||||
"verify:renderer": "npx tsx scripts/verify-renderer-lifecycle.ts",
|
||||
"verify:all": "node scripts/verify-combat.ts && node scripts/verify-items.ts && node scripts/verify-m4.ts && node scripts/verify-m5.ts && node scripts/verify-net.ts && node scripts/verify-collision-orientation.ts",
|
||||
"verify:acts": "node scripts/verify-acts.ts",
|
||||
"verify:generators": "npx tsx scripts/verify-generators.ts samples/d2",
|
||||
"inspect": "tsx scripts/inspect-mpq.ts",
|
||||
"net-server": "tsx scripts/net-server.ts",
|
||||
"verify:net": "tsx scripts/verify-net.ts",
|
||||
"verify:d2": "tsx scripts/verify-d2-data.ts",
|
||||
"verify:implode": "tsx scripts/verify-implode.ts",
|
||||
"verify:collision-orientation": "tsx scripts/verify-collision-orientation.ts",
|
||||
"verify:renderer": "tsx scripts/verify-renderer-lifecycle.ts",
|
||||
"verify:all": "tsx scripts/verify-combat.ts && tsx scripts/verify-items.ts && tsx scripts/verify-m4.ts && tsx scripts/verify-m5.ts && tsx scripts/verify-net.ts && tsx scripts/verify-collision-orientation.ts",
|
||||
"verify:acts": "tsx scripts/verify-acts.ts",
|
||||
"verify:generators": "tsx scripts/verify-generators.ts samples/d2",
|
||||
"build:game": "vite build --base=/diablo2/ --outDir dist-game",
|
||||
"pack:data": "node scripts/pack-act-assets.ts",
|
||||
"verify:packs": "node scripts/verify-packs.ts",
|
||||
"verify:deploy": "node scripts/verify-deploy.ts",
|
||||
"verify:listfile": "node scripts/verify-listfile.ts",
|
||||
"verify:object-lookup": "node scripts/verify-object-lookup.ts",
|
||||
"port:object-lookup": "node scripts/port-object-lookup.ts",
|
||||
"verify:alignment": "node scripts/verify-tile-alignment.ts",
|
||||
"verify:tiles": "node scripts/verify-tiles.ts",
|
||||
"publish:packs": "npx tsx scripts/publish-packs.ts"
|
||||
"pack:data": "tsx scripts/pack-act-assets.ts",
|
||||
"verify:packs": "tsx scripts/verify-packs.ts",
|
||||
"verify:deploy": "tsx scripts/verify-deploy.ts",
|
||||
"verify:listfile": "tsx scripts/verify-listfile.ts",
|
||||
"verify:object-lookup": "tsx scripts/verify-object-lookup.ts",
|
||||
"port:object-lookup": "tsx scripts/port-object-lookup.ts",
|
||||
"verify:alignment": "tsx scripts/verify-tile-alignment.ts",
|
||||
"verify:tiles": "tsx scripts/verify-tiles.ts",
|
||||
"publish:packs": "tsx scripts/publish-packs.ts",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest",
|
||||
"test:coverage": "vitest run --coverage"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.20.2",
|
||||
"@vitest/coverage-v8": "^2.1.9",
|
||||
"tsx": "^4.23.13",
|
||||
"typescript": "^5.6.3",
|
||||
"vite": "^5.4.10"
|
||||
"vite": "^5.4.10",
|
||||
"vitest": "^2.1.9"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
```bash
|
||||
CHROME=/root/.cache/ms-playwright/chromium-1223/chrome-linux64/chrome
|
||||
node scripts/browser/inspect-page.mjs "$CHROME" \
|
||||
tsx scripts/browser/inspect-page.mjs "$CHROME" \
|
||||
"http://127.0.0.1:5173/map.html?data=samples/fixtures" \
|
||||
scripts/browser/checks/map-save-load.js --screenshot /tmp/map.png
|
||||
```
|
||||
|
|
@ -19,7 +19,7 @@ node scripts/browser/inspect-page.mjs "$CHROME" \
|
|||
## many-pages.mjs —— N 页同时跑(联机用)
|
||||
|
||||
```bash
|
||||
node scripts/browser/many-pages.mjs "$CHROME" \
|
||||
tsx scripts/browser/many-pages.mjs "$CHROME" \
|
||||
"http://127.0.0.1:5173/net.html?data=samples/fixtures&ws=ws://127.0.0.1:8787&peers=3&peer=0" \
|
||||
"http://127.0.0.1:5173/net.html?data=samples/fixtures&ws=ws://127.0.0.1:8787&peers=3&peer=1" \
|
||||
"http://127.0.0.1:5173/net.html?data=samples/fixtures&ws=ws://127.0.0.1:8787&peers=3&peer=2" \
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ DC6PNG="${DC6PNG:-}"
|
|||
|
||||
cd "$ROOT"
|
||||
echo "== fixtures =="
|
||||
node scripts/make-fixtures.ts "$WORK" | sed 's/^/ /'
|
||||
node scripts/make-map-fixtures.ts "$WORK" | sed 's/^/ /'
|
||||
node scripts/make-pl2-fixture.ts "$WORK" | sed 's/^/ /'
|
||||
tsx scripts/make-fixtures.ts "$WORK" | sed 's/^/ /'
|
||||
tsx scripts/make-map-fixtures.ts "$WORK" | sed 's/^/ /'
|
||||
tsx scripts/make-pl2-fixture.ts "$WORK" | sed 's/^/ /'
|
||||
|
||||
failures=0
|
||||
report() {
|
||||
|
|
@ -69,7 +69,7 @@ echo
|
|||
echo "== dc6 / dt1 / ds1 / pl2: independent Go decoders =="
|
||||
if [ -n "$REFDUMP" ] && [ -x "$REFDUMP" ]; then
|
||||
for fmt in dc6 ds1 dt1 pl2; do
|
||||
node scripts/dump-format.ts "$fmt" "$WORK/fixture.$fmt" > "$WORK/ts.$fmt.json" 2>/dev/null
|
||||
tsx scripts/dump-format.ts "$fmt" "$WORK/fixture.$fmt" > "$WORK/ts.$fmt.json" 2>/dev/null
|
||||
"$REFDUMP" "$fmt" "$WORK/fixture.$fmt" > "$WORK/go.$fmt.json" 2>/dev/null
|
||||
echo " $fmt:"
|
||||
python3 - "$WORK" "$fmt" <<'PY'
|
||||
|
|
@ -94,7 +94,7 @@ fi
|
|||
|
||||
echo
|
||||
echo "== dt1: pixel placement against the encoded grid =="
|
||||
node scripts/verify-dt1-pixels.ts "$WORK" | sed 's/^/ /'
|
||||
tsx scripts/verify-dt1-pixels.ts "$WORK" | sed 's/^/ /'
|
||||
report $?
|
||||
|
||||
echo
|
||||
|
|
|
|||
Loading…
Reference in New Issue