一、初始化项目
powershell
npm init
或
yarn init
初始化完文件
package.json
{
"name": "electron-test",
"version": "1.0.0",
"description": "Hello Electron!",
"main": "main.js",
"author": "LiPingAn",
"license": "MIT",
"dependencies": {
"electron": "^37.2.3"
}
}
二、解决文件占用问题
-
Electron 下载失败 (ReadError)
- 错误信息:
ReadError: The server aborted pending request
- 原因:从 GitHub 下载 Electron 二进制文件时网络中断(可能因网络波动、防火墙或 GitHub 限流)
- 错误信息:
-
文件权限问题 (EPERM)
- 错误信息:
EPERM: operation not permitted, rmdir
- 原因:文件被进程占用导致无法删除(常见于 Windows 系统)
- 影响路径:
node_modules\@electron\get\dist\cjs
- 错误信息:
-
安装流程中断
postinstall
脚本node install.js
执行失败(退出代码 1)- 残留文件导致后续清理失败
完整解决方案
第一步:解决文件占用问题
-
强制删除残留文件:
powershell# 关闭所有 Node.js 进程 taskkill /f /im node.exe # 强制删除 node_modules Remove-Item -Recurse -Force node_modules
-
清除 npm 缓存:
powershellnpm cache clean --force
第二步:配置 Electron 镜像加速下载
在项目根目录创建或修改 .npmrc
文件:
ini
# .npmrc 配置内容
set electron_mirror="https://npmmirror.com/mirrors/electron/"
set electron_custom_dir="{{ version }}"
第三步:安全重装步骤
-
使用镜像安装 Electron:
powershell# 设置临时环境变量 $env:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/" $env:ELECTRON_CUSTOM_DIR="{{ version }}" # 单独安装 Electron npm install electron@25.4.0 --ignore-scripts
-
手动执行安装脚本:
powershellcd node_modules/electron node install.js
-
完整安装项目依赖:
powershellcd ../.. # 回项目根目录 npm install
备选方案(若镜像仍不稳定)
方法 1:手动下载二进制文件
-
访问镜像地址下载:
bashhttps://npmmirror.com/mirrors/electron/25.4.0/electron-v25.4.0-win32-x64.zip
-
创建缓存目录:
powershellmkdir %USERPROFILE%\AppData\Local\electron\Cache
-
将下载的 ZIP 文件放入缓存目录并重命名为:
pythonelectron-v25.4.0-win32-x64.zip
方法 2:使用离线安装模式
powershell
npm config set offline true
npm install --offline
预防措施
-
永久镜像配置(推荐):
powershell# 全局配置 npm config set electron_mirror "https://npmmirror.com/mirrors/electron/" npm config set electron_custom_dir "{{ version }}"
-
安装前预下载:
powershellnpx @electron/get download --version=25.4.0
-
使用 yarn 替代 npm:
powershellyarn config set "electron_mirror" "https://npmmirror.com/mirrors/electron/" yarn add electron
如果仍遇到问题,可尝试切换镜像源至清华源:
ini
set electron_mirror="https://mirrors.tuna.tsinghua.edu.cn/electron/"