electron有几种打包方式,我使用的是electron-builder
。虽然下载依赖的时候让我暴躁,使用起来也很繁琐,但是它能进行很多自定义,打包完成后的体积也要小一些。
安装electron-builder
:
npm install electron-builder -D
使用 npm
下载 electron-builder
真的非常非常难受! 总是失败!
electron-builder
官方建议使用yarn
下载,并且明确表示Yarn is strongly recommended instead of npm.
yarn add electron-builder --dev
在 package.json
中进⾏相关配置:
{"name": "my-electron-app", // 应⽤程序的名称"version": "1.0.0", // 应⽤程序的版本"main": "main.js", // 应⽤程序的⼊⼝⽂件"scripts": {"start": "electron .", // 使⽤ `electron .` 命令启动应⽤程序"build": "electron-builder" // 使⽤ `electron-builder` 打包应⽤程序,⽣成安装包},"build": {"appId": "my-electron-app", // 应⽤程序的唯⼀标识符// 打包windows平台安装包的具体配置"win": {"icon": "./favicon.ico", //应⽤图标"target": [{"target": "nsis", // 指定使⽤ NSIS 作为安装程序格式"arch": ["x64"] // ⽣成 64 位安装包}]},"nsis": {"oneClick": false, // 设置为 `false` 使安装程序显示安装向导界⾯,⽽不是⼀键安装"perMachine": true, // 允许每台机器安装⼀次,⽽不是每个⽤户都安装"allowToChangeInstallationDirectory": true // 允许⽤户在安装过程中选择安装⽬录}},"devDependencies": {"electron": "^30.0.0", // 开发依赖中的 Electron 版本"electron-builder": "^24.13.3" // 开发依赖中的 `electron-builder` 版本},"author": "zhangSan", // 作者信息"license": "ISC", // 许可证信息"description": "一个测试用的electron项目" // 应⽤程序的描述
}
配置完成后,执行打包命令:
npm run build
问题及解决方案
下载Electron v32.1.2 的压缩包时出现了问题,导致后续的操作无法进行:
Electron 默认打包会从github上下载相关二进制包,在国内访问github非常慢,下载相关资源失败是很可能的事情。
直接通过浏览器访问 https://github.com/electron/electron/releases/download/v32.1.2/electron-v32.1.2-win32-x64.zip
,看是否能够正常下载:
解决方案
- 翻一下墙,打开开关,解决问题
- 配置electron相关资源的镜像源
修改npm配置文件(没有就创建):
- 可以在终端输入
npm config edit
命令,打开.npmrc
文件 - 可以按路径
C:\Users\PC
找到.npmrc
文件并打开 - 设置
electron
和electron-builder-binaries
的镜像地址:
electron_mirror=https://registry.npmmirror.com/-/binary/electron/
electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/
always-auth=false
electron_mirror
:这个环境变量指定了 Electron 的下载镜像地址。当项目需要下载 Electron 时,会优先从这个地址去获取二进制文件。
electron_builder_binaries_mirror
:这个环境变量指定了 electron-builder-binaries
的下载镜像地址。electron-builder
是一个用于构建 Electron 应用的工具,而 electron-builder-binaries
包含了一些预编译的二进制文件,用于不同的平台和架构。设置这个镜像地址可以确保在构建过程中能够快速、稳定地获取这些二进制文件。
always-auth=false
:表示在访问这些镜像资源时不需要进行身份验证。
.ico
文件的尺寸至少是256 * 256
重新生成符合要求的favicon.ico