解决electron打包时,下载超时导致失败

本文指导如何在Electron开发中使用淘宝镜像加速npm包下载,包括electron、winCodeSign和nsis工具的安装过程,以及处理下载失败和打包后的产物管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对electron-v9.0.2-win32-x64.zip 和 SHASUMS256.txt-9.0.2 我首先给electron添加了淘宝镜像。

在终端中敲入: npm set ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/

打开C盘,在你当前用户下搜索 .npmrc 文件,用记事本打开,看看是否设置成功。

如果还担心下载不成功,那么就直接下载下来吧。按照二、1 中的地址下载两个文件。解压后放到 C:\Users\Administrator\AppData\Local\electron\Cache 目录下。


针对 winCodeSign-2.6.0 下载失败,大部分是网络原因,先行在github下载的速度也一样龟速,但起码看得见速度,也不会满屏报错。打开地址:https://github.com/electron-userland/electron-builder-binaries/releases 寻找你所需要的版本。

下载完之后解压到同名文件夹中。然后 C:\Users\Administrator\AppData\Local\electron-builder\Cache 进入到此目录下,新建一个文件夹,名为: winCodeSign ,再把刚刚解压出来的文件夹放到这个文件夹中。


针对 nsis-3.0.4.1 下载失败,大部分是网络原因,先行在github下载也一样龟速,但起码看得见速度,也不会满屏报错。打开地址: https://github.com/electron-userland/electron-builder-binaries/releases 寻找你所需要的版本。

下载完成后,打开此zip包,但不是所有文件都需要。我们需要其中两个文件:nsis 和 nsis-resources

将这两个文件夹提取出来。重命名:其中 nsis -> nsis-3.0.4.1 nsis-resources -> nsis-resourcers-3.4.1

然后 C:\Users\Administrator\AppData\Local\electron-builder\Cache 进入到此目录下,新建一个文件夹,名为: nsis ,再把刚刚解压出来的两个文件夹放到这个文件夹中。


至此,已经完成了打包的三个工具的安装,回到项目中执行:npm run electron:build 进行打包。


打包成功后会在根目录下多出一个 dist_electron 的文件夹,打包好的文件都在里面,包括exe格式文件,双击就可以执行安装了!

### Electron 使用 `electron-builder` 打包失败的常见原因及解决方案 #### 1. **网络问题导致依赖项下载失败** 当使用 `electron-builder` 进行打包,如果网络环境较差或者访问国外资源受限,则可能导致某些必要的二进制文件无法正常下载。例如,`nsis` 或其他构建工具可能因为网络超时而中断。 解决方法之一是从国内镜像站点手动下载所需的二进制文件并放置到指定目录中。可以前往以下链接获取所需版本的文件[^3]: - 镜像地址: https://registry.npmmirror.com/binary.html?path=electron-builder-binaries/ 对于 Windows 用户来说,需将下载好的 `.7z` 文件解压后放入本地缓存路径: ```plaintext C:\Users\<YourUsername>\AppData\Local\electron-builder\Cache\nsis\ ``` #### 2. **配置错误引发的打包异常** 另一个常见的问题是由于项目中的 `package.json` 或者 `builder.config.js` 的配置不正确引起的。这通常表现为缺少必要字段或参数设置不当。 确保在项目的根目录下的 `package.json` 中包含如下结构[^2]: ```json { "name": "your-app-name", "version": "1.0.0", "description": "", "main": "main.js", "scripts": { "build": "electron-builder" }, "devDependencies": { "electron": "^latest-version", "electron-builder": "^latest-version" } } ``` 同也可以创建单独的 `electron-builder` 配置文件来细化选项,比如: ```javascript module.exports = { appId: 'com.example.yourapp', directories: { output: 'dist' }, files: [ '**/*', '!node_modules/**' // 排除不必要的模块以减少最终体积 ], }; ``` #### 3. **权限不足或其他系统级冲突** 有即使解决了上述两个方面的问题,仍然会因操作系统本身的限制而导致打包过程受阻。特别是 Linux 和 macOS 平台上的用户需要注意是否有足够的磁盘空间以及运行脚本是否具备适当的操作权限。 尝试通过提升命令执行权限的方式来规避此类障碍(仅适用于Linux/MacOS): ```bash sudo npm run build --unsafe-perm=true ``` 另外,在Windows环境下建议关闭杀毒软件实防护功能暂避免误报干扰。 --- ### 示例代码片段展示如何调整基本配置 下面给出一段简单的 JavaScript 脚本来演示如何修改默认行为以便更好地适应特定需求: ```javascript const { app, BrowserWindow } = require('electron'); let mainWindow; function createWindow () { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: __dirname + '/preload.js', nodeIntegration: true } }); mainWindow.loadFile('index.html'); } app.whenReady().then(createWindow); ``` 以上示例展示了基础窗口初始化部分的内容;实际应用过程中还需要考虑更多细节如跨进程通信机制等。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值