Skip to main content

加快打包速度

前言

打包之前,默认electron需要下载打包专用的版本,一般会从官方源下载,如果在国内下载速度会非常慢,甚至下载失败,而且网上非常多新手也会遇到的坑,特意记录

1、设置npm/yarn

国内常用的源

两个源可以互相切换,哪个速度快就用哪个。

  • 常用源1

    http://npm.taobao.org/mirrors/electron/
  • 常用源2

    https://cdn.npm.taobao.org/dist/electron/
  • npm

    npm config set registry https://registry.npm.taobao.org/
    npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/

  • .npmrc 文件

    // 大小写不敏感
    electron_mirror=http://npm.taobao.org/mirrors/electron/
    registry=https://registry.npm.taobao.org
  • yarn

    yarn config set registry https://registry.npm.taobao.org/
    yarn config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
  • .yarnrc

    registry "https://registry.npm.taobao.org/"
    ELECTRON_MIRROR http "//npm.taobao.org/mirrors/electron/"

2、预先准备离线文件

打包文件需要的文件默认会从 %LOCALAPPDATA%/electron/Cache 中获取/保存,我们也可以通过复制别人的预编译文件到自己的环境,或者到 https://npm.taobao.org/mirrors/electron/ 下载离线包

需要注意文件格式:

每个版本的SHASUM256和zip文件需要一一对应

  • Electron.vxxxx-xxxx-xx.zip
  • SHASUM256.txt-x.x.x

image-20211102235653508

3、设置成系统环境变量

win10 ( powershell )

function set_env($Name, $Value){
[Environment]::SetEnvironmentVariable($Name, $Value, 2)
}
set_env "ELECTRON_MIRROR" "https://registry.npm.taobao.org/"

win10 ( 手动 )

image-20211103000112508

4、验证

因为常用的两个打包工具 Electron-packagerElectron-builder 都是调用 Electron-download,所以提取了该包对应函数

// 以下函数提取自 Electron-download 
function baseUrl () {
return process.env.NPM_CONFIG_ELECTRON_MIRROR ||
process.env.npm_config_electron_mirror ||
process.env.ELECTRON_MIRROR ||
this.opts.mirror ||
'https://github.com/electron/electron/releases/download/v'
}

const test = baseUrl()

console.log(test)

image-20211103004726621

5、总结

通过官方翻查Electron-download的文档知道,我们还可以设置自定义的cache下载目录,下载的文件名,等

image-20211103010932216