使用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}`);
      }
    }
梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/6250.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*