mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-30 06:22:53 +00:00
## 问题 打包脚本从两处找 Electron 运行时: 1) ~/.cache/electron 里的 electron-v<ver>-linux-<arch>.zip 2) cmd/gui/node_modules/electron/dist(目标架构 == host 时) 全新 GitHub runner **两处都没有** —— 脚本在都没有时只能跳过 GUI, 于是 client/full 包会**静默地不含界面**(正是脚本作者担心的「假包」)。 实测:本地移走缓存后 GUI 被跳过,包仍能产出。 ## 改法 打包前在 cmd/gui 执行 `npm ci`,让 electron 落到 node_modules。 runner 是 amd64 == 目标架构,脚本便走第 2 条路径。 **用 npm ci 而不是 `npm install electron@<range>`**:后者是非确定性的 (range 会随上游漂移,也锁不住传递依赖),zizmor 也把它标为 adhoc-packages 风险。package-lock.json(lockfileVersion 3)已锁定 electron,ci 严格按 lock 安装 ⇒ 同一 commit 永远得到同一套依赖。 不能用 `npm install --production`:那会跳过 devDependencies, 而 electron 正是 devDependency(这正是脚本自己那条命令找不到它的原因)。 ## 验证 - 无声 cache + 有 node_modules/electron 时,脚本走 host-arch 回退并 成功构建 GUI(263M / x86-64)—— 已本地实测 - 两者都无时改为打印明确原因并跳过(配合上一个 commit 的 find 修复) - npm ci --dry-run 通过;actionlint 全绿