Electron-builder打包时Bad text encoding Error 报错

使用Electron-Builder打包时,可能会遇到报错 Bad text encoding,Error in script “<stdin>” on line 77 — aborting creation process 而导致打包失败的问题。
正文
问题日志
ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Processing script file: "<stdin>" (ACP)
Error output:
Bad text encoding
Error in script "<stdin>" on line 77 -- aborting creation process
关键字:ERR_ELECTRON_BUILDER_CANNOT_EXECUTE、Bad text encoding、Error in script “<stdin>” on line 77
问题原因
文本编码错误,Makensis 未设置成 UTF-8 字符集。
关于 node-makensis 此项可能的取值,可参考:
https://github.com/idleberg/node-makensis#inputcharset
解决方法
打开 node_module/app-builder-lib/out/targets/nsis/NsisTarget.js
文件,在 executeMakensis 方法中加入我们所需的参数。
//node_module/app-builder-lib/out/targets/nsis/NsisTarget.js
async executeMakensis(defines, commands, script) {
const args = this.options.warningsAsErrors === false ? [] : ["-WX"];
//此处新增
args.push("-INPUTCHARSET", "UTF8");
//结束
for (const name of Object.keys(defines)) {
const value = defines[name];
if (value == null) {
args.push(`-D${name}`);
} else {
args.push(`-D${name}=${value}`);
}
}
虽然没找到对我有用的东西,但是页面做的挺好哒