70MB 陈旧构建产物致 Gemini CLI 连续发包失败,一行 rmSync 修复

Likhith-BlueLotus · ghdev · 2026-11-09

google-gemini/gemini-cli 的一份 P0 修复 PR:自 2026-11-05 起,每夜发布都在向 npm 发布时因 413 Request Entity Too Large 失败。

排查发现根因是 esbuild 用 content-hash 命名 chunk 输出到 bundle/,但构建前从不清理该目录;发布流程又会打包两次(prepare 一次、版本号变更后再一次),导致旧 chunk 全部残留——106MB 的 JS 里约 70MB 是不可达的历史产物,多个 chunk 各存了 4 份完整拷贝。tarball 从 25.1MB 涨到 25.2MB,base64 编码后恰好越过 App Engine 32MiB 请求上限,压垮发布。

修复只需在构建前 rmSync 清空 bundle/,tarball 体积减半。对维护长生命周期 CI 构建是个典型案例:内容哈希输出目录不清理会静默积累垃圾,直到撞上某个看似无关的硬限制。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →