【Electron】Electron-builder打包Electron应用步骤 常见Electron-builder打包错误解决方法

打包步骤

根据Electron-builder官方文档打包需要分以下几步:

  1. 使用npm安装该插件
    npm install  electron-builder -D
    //-D是install的命令参数-save-dev的缩写形式,表示将其当作开发环境依赖
    
    查看更多install的命令参数
  2. 生成package.json文件npm init
  3. 指定package.json文件中build选项中的配置(配置参数详情):
    在这里插入图片描述
  4. 添加script选项中命令:
    在这里插入图片描述
    通过命令npm run dist以可分发格式(例如dmg、windows安装程序、deb包

    通过npm run pack只生成包目录,而不实际打包它。这对于测试目的很有用

问题1:网速过慢导致打包出错

当运行npm run dist时发生报错:
在这里插入图片描述
此时根据官方文档设置镜像源为淘宝镜像:

//将 Electron 镜像源设置为淘宝镜像源
npm config set ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
//将 Electron-builder 镜像源设置为淘宝镜像源
npm config set ELECTRON_BUILDER_BINARIES_MIRROR=http://npm.taobao.org/mirrors/electron-builder-binaries/

问题2:淘宝镜像无法下载nsis、winCodeSign依赖

手动下载文件

根据官方文档在相应位置手动防止文件:

nsis 存放位置

C:\Users\admin\AppData\Local\electron-builder\Cache\winCodeSign
在这里插入图片描述

winCodeSign 存放位置

C:\Users\admin\AppData\Local\electron-builder\Cache\winCodeSign
在这里插入图片描述

将对应版本的文件手动下载后解压至这两个文件夹即可

问题3:ERR_ELECTRON_BUILDER_CANNOT_EXEC乱码报错

运行时又报了一大堆带乱码的东西:
在这里插入图片描述
应该是文本编码错误,Makensis 未设置成 UTF-8 字符集

今天又遇到这个问题了,这次修改NsisTarget.js文件依然无用,最后发现把自定义的图标删除,使用默认图标就可以了

打开 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}`);
      }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

列队猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值