|
|
8847ce4cfd
|
fix(gui): 修发行打包的图标与资源漏装(Linux 包会缺星图依赖)
## 背景
上一提交修了 electron-packager 那条路径的 exe 图标。本提交处理另外两处
同类问题——**都是静默失败**:改了没人知道,坏了要等用户装上才发现。
## 1) package.json build 段(electron-builder 路径)
· files 白名单漏了 icon.ico / icon-tray.png / icon-tray@2x.png
⇒ 这些文件不会被打进包,托盘与窗口图标在发行版里丢失
· 补 win.target/win.icon;注意 electron-builder 的 icon 路径相对
**项目目录**(package.json 所在)解析,不是相对输出目录
(最初写成 'build/icon.ico',那会找不到文件 —— 已用存在性判据钉住)
· icon.ico 含 256x256,满足 electron-builder 对 win 图标的要求
## 2) deploy/packaging/package-linux.sh(Linux 发行实际走这条)
原实现手工 cp 七个文件:
main.js / preload.js / package.json
renderer/{index.html, app.js, style.css, mascot.svg}
实测漏掉:
· renderer/mascot.svg —— 源码里根本不存在(真名 mascot.webp)
· icon.svg / icon.ico / icon-tray*.png
· renderer/icon.svg
· renderer/vendor/* ★★ 本次本地化新增的四个第三方库
(three/OrbitControls/marked/purify)
⇒ Linux 发行包装完星图与 Markdown 渲染直接坏,
且**没有任何构建报错**
改为:
· renderer 按目录整体同步(cp -r "$gui_dir/renderer/.")
· 根级 *.svg / *.ico / icon-tray*.png 同步
· 新增必备文件校验:vendor 四库与 icon.svg 缺任一 ⇒ 报错并删目录跳过,
沿用本脚本既有的"宁可不发,也不发装了跑不起来的包"原则
## 判据
新增 cmd/gui/package-config.test.mjs(进 npm test),14 条断言覆盖三条
打包路径的配置一致性。已做变异测试:Makefile 去 --icon、files 去 icon.ico、
package-linux.sh 还原逐文件 cp,三者均判红。
判据:cmd/gui npm test 全绿(60 条)。
|
2026-10-02 10:25:43 +08:00 |
|