在使用 Electron-builder 打包时,有时会卡在 downloading 半天不动,导致打包失败。

问题描述

使用 Electron-builder 打包,有时会在下载ElectronnsiswinCodeSign的过程中 Timeout 导致打包失败(鉴于国内的网络情况)。

  • electron-builder  version=22.5.1 os=10.0.18362
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=dist\builder-effective-config.yaml
  • packaging       platform=win32 arch=x64 electron=8.2.3 appOutDir=dist\win-unpacked
  • default Electron icon is used  reason=application icon is not set
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.6.0/winCodeSign-2.6.0.7z size=5.6 MB parts=1

日志中可见, downloading 步骤会依此下载工具链,Timeout 即在于此。

解决方法

  1. 解决 Electron 下载慢
    项目根目录新建.npmrc文件,加入如下环境变量:

    ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
    

    此项将 Electron 镜像源设置为淘宝镜像源。

  2. 解决 nsis、winCodeSign 下载慢
    照猫画虎,在.npmrc中同样设置ELECTRON_BUILDER_BINARIES_MIRROR镜像源地址,cnpm 同样提供了对应的镜像源:

    ELECTRON_BUILDER_BINARIES_MIRROR=http://npm.taobao.org/mirrors/electron-builder-binaries/
    

    这样即可高速下载所需的工具链文件。

选读

在写这篇文章草稿时,淘宝ELECTRON_BUILDER_BINARIES_MIRROR镜像源是一直挂掉的,如果你用它,会发现 nsis、winCodeSign 压根拉不下来。

2020 年 4 月 25 日,我和一个兄弟评论了对应的 issues#1539 ,而后有个大兄弟把这问题修了。

所以,当时采取的措施是手动下载文件,并将其放置于 Electron-builder 文件夹,这也有必要了解一下。

  • Nsis 存放位置
    C:\Users\admin\AppData\Local\electron-builder\Cache\winCodeSign
    

    electron-builder-nsis

  • winCodeSign 存放位置

    C:\Users\admin\AppData\Local\electron-builder\Cache\winCodeSign
    

    electron-builder-wincodesign

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

梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/6208.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*