fix(installer): 安装器脚本不能带 BOM —— 它会拼进大脚本中间让 makensis 报 Invalid command
构建机上真实失败:`Invalid command: "?;"` / `Error in script "<stdin>" on line 83`。 本机单编这个脚本一切正常,只有 electron-builder 出包才炸。 根因:electron-builder 把「它的共享头部 + 我们的脚本」拼成一个整脚本、经 stdin 喂给 makensis, 而 Node 的 readFileSync(…, 'utf8') **不会**吃掉文件开头的 BOM —— 那个 U+FEFF 落在拼接结果 中间某一行的行首,makensis 就把它当成命令名的一部分(控制台显示成问号)。 - 去掉 console/installer/installer.nsi 的 UTF-8 BOM - deploy/prepare-extra.mjs 的检查反向:从「必须有 BOM」改成「必须没有 BOM」,并把原因写进注释, 避免下一个人再按直觉加回去;中文编码改由 makensis 的 -INPUTCHARSET UTF8 保证 (electron-builder 本来就会传这个参数,本机手工编译也要带) 验证:无 BOM → prepare-extra 退出 0;临时加回 BOM → 退出 1 且提示准确。
This commit is contained in:
1 parent
877ff15823
commit
9fee6f2da5
2 files changed
+12
-8
No files matched your search
@@ -1,4 +1,4 @@
|
||||
; =============================================================================
|
||||
; =============================================================================
|
||||
; 赛事积分榜 安装器 —— 完全自绘的五页向导
|
||||
;
|
||||
; 这是 electron-builder 的「自定义 installer 脚本」(package.json 的 build.nsis.script)。
|
||||
|
||||
Reference in new issue
Block a user