Commit Graph
2 Commits
Author SHA1 Message Date
AskaEth 7a64e83ecf fix(build): build-linux.sh 自己重新生成随包说明书,不再把旧文档打进包
踩过一次:Linux 包内「升级说明.txt」停在 dev_0.5.2,而源码已经走到 0.5.11。
根因是脚本只 **拷** console/extra/*.txt(那些是 deploy/prepare-extra.mjs 的产物),
自己从不重新生成 —— 于是把「上一次生成时的旧说明书」原样打进了包。
(Windows 侧不受影响:build.bat 里有这一步,所以那边一直是新的。)

现在脚本在摆随包文件之前先跑一次 node deploy/prepare-extra.mjs;
生成失败**不阻断**构建(Linux 包不该因为说明书而失败),但打印一行警告,
避免以后又静默发一份旧文档出去。

已验证:重跑脚本后,包内「升级说明.txt」的最新节是 ## dev_0.5.11。
2026-09-17 00:12:53 +08:00
AskaEth a85115c96e build(linux): 新增 deploy/build-linux.sh —— 手工拼 arm64 Console 包(绕开 electron-builder 在 Linux 上的必崩路径)
为什么手工拼:electron-builder 26.x 在「需要下载 Electron 运行时/7zip 工具」那条分支上会抛
`Cannot read properties of undefined (reading 'ReadWrite')`(`app-builder-lib/util/electronGet.ts` 里
`ElectronDownloadCacheMode` 未定义),本机与构建机都复现过。

脚本做三件事:
1. 交叉编译 arm64 服务端(CGO_ENABLED=0,纯 Go SQLite 驱动,产物静态链接);
2. 用本地现成的 Electron linux-arm64 运行时光手拼出可运行的包树
   (Electron 可执行改名 + resources/app/ 放 console 代码 + 服务端二进制放包根);
3. 打 tar.gz(幂等:每次先清旧产物)。

包内布局依据 console/main 里的路径解析链:服务端与 Console 同级(包根),
config.yaml / rules/ 也在包根(首启由 userpaths 复制到 $XDG_DATA_HOME/ScoreboardConsole/)。
本机 Xvfb 实测:Console 起得来、拉起服务端、/api/health 200、XDG 路径与 Linux 文件名都生效。
2026-09-15 01:14:50 +08:00