陶泥儿打包标注单文件整读的性能隐患

- pack.mjs 在整读+压缩处补 TODO(perf),说明单文件峰值内存约 2× 与 ZIP data descriptor 流式改法
- 同步 agc-skills manifest.json 版本与技能哈希
This commit is contained in:
2026-10-07 14:26:37 +08:00
parent e66be01269
commit 7d8b966d1f
2 changed files with 6 additions and 2 deletions
@@ -1,6 +1,6 @@
{
"schemaVersion": "agc-skill-pack.v1",
"version": "2026-08-26.73",
"version": "2026-08-26.74",
"skills": [
{
"name": "agc-unity-editor",
@@ -195,7 +195,7 @@
"scripts/pack.mjs",
"scripts/vite.config.taonier.mjs"
],
"sha256": "7fd71386d85e03fe18ff8d5285a710a7c249729956467d17ba2f8079ac4474e9"
"sha256": "c73edcd88384e8824c5d6b932562196020b305e926a7837929272130df515364"
},
{
"name": "vite-export-xhs-minitool",
@@ -178,6 +178,10 @@ function writeZipEntries(entries, zipPath) {
let uncompressed = 0;
if (!entry.dir) {
// TODO(perf): 这里每个文件都整读一遍、再压出一份副本,单文件峰值内存约 2×;H5 里超大
// 音频/贴图/WASM 可能顶爆内存或导出失败。彻底做法是改用 ZIP data descriptor(通用标志位
// bit 3):先写数据、后回填压缩大小与 CRC,实现按文件流式写盘;代价是本地 zip 头与中央
// 目录记账要重写。当前保留现状,先在此标注。
const raw = readFileSync(entry.full);
uncompressed = raw.length;
const deflated = deflateRawSync(raw, { level: 9 });