# Electron 镜像源配置指南 ## 问题描述 打包 Electron 应用时,如果未开启翻墙,会出现 "fetch failed" 错误,这是因为 Electron 和相关工具需要从国外的 GitHub releases 下载二进制文件。 ## 解决方案 ### 方案 1:使用 npm 配置(推荐) #### 1.1 全局配置 在项目根目录创建 `.npmrc` 文件: ```ini registry=https://registry.npmmirror.com electron_mirror=https://npmmirror.com/mirrors/electron/ electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ ``` #### 1.2 Electron 目录配置 在 `electron/` 目录创建 `.npmrc` 文件: ```ini electron_mirror=https://npmmirror.com/mirrors/electron/ electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ registry=https://registry.npmmirror.com ``` ### 方案 2:使用环境变量(已配置) #### 2.1 Windows 在 `electron/package.json` 中已经配置: ```json { "scripts": { "pack:win": "cross-env ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ node ../scripts/prepare-electron.cjs && npx @electron/packager . MyGame --platform=win32 --arch=x64 --out=../release --overwrite" } } ``` #### 2.2 Mac/Linux ```bash export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ export ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ ``` ### 方案 3:使用批处理脚本 #### Windows 使用 `scripts/pack-win.bat`: ```batch @echo off set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ set ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ call npm run pack:win ``` #### Mac/Linux 使用 `scripts/pack-mac.sh`: ```bash #!/bin/bash export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ export ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ npm run pack:mac ``` ### 方案 4:使用系统环境变量 #### Windows ```powershell # 临时设置(当前会话) set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ set ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ # 永久设置 setx ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ setx ELECTRON_BUILDER_BINARIES_MIRROR https://npmmirror.com/mirrors/electron-builder-binaries/ ``` #### Mac/Linux ```bash # 临时设置(当前会话) export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ export ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ # 永久设置(添加到 ~/.bashrc 或 ~/.zshrc) echo 'export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/' >> ~/.bashrc echo 'export ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/' >> ~/.bashrc source ~/.bashrc ``` ## 验证配置 ### 检查 npm 配置 ```bash npm config get electron_mirror npm config get electron_builder_binaries_mirror ``` 应该输出: ``` https://npmmirror.com/mirrors/electron/ https://npmmirror.com/mirrors/electron-builder-binaries/ ``` ### 检查环境变量 #### Windows ```cmd echo %ELECTRON_MIRROR% echo %ELECTRON_BUILDER_BINARIES_MIRROR% ``` #### Mac/Linux ```bash echo $ELECTRON_MIRROR echo $ELECTRON_BUILDER_BINARIES_MIRROR ``` ## 可用的镜像源 ### 淘宝镜像(推荐) ```ini electron_mirror=https://npmmirror.com/mirrors/electron/ electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ ``` ### 华为云镜像 ```ini electron_mirror=https://mirrors.huaweicloud.com/electron/ electron_builder_binaries_mirror=https://mirrors.huaweicloud.com/electron-builder-binaries/ ``` ### 腾讯云镜像 ```ini electron_mirror=https://mirrors.cloud.tencent.com/npm/electron/ ``` ## 常见问题 ### Q1: 配置后仍然失败 **A:** 检查以下几点: 1. 确认配置已生效 2. 清除 npm 缓存:`npm cache clean --force` 3. 删除 node_modules 重新安装:`rm -rf node_modules && npm install` 4. 检查网络连接 ### Q2: 某些包仍然需要翻墙 **A:** 可能是其他依赖包的问题,可以: 1. 检查具体的错误信息 2. 使用 `.npmrc` 配置其他镜像源 3. 手动下载相关包 ### Q3: 下载速度慢 **A:** 可以尝试: 1. 更换其他镜像源 2. 使用 CDN 加速 3. 使用代理 ### Q4: 如何恢复默认配置 **A:** 删除或注释掉 `.npmrc` 中的相关配置: ```bash npm config delete electron_mirror npm config delete electron_builder_binaries_mirror ``` ## 完整的打包流程 ### 1. 首次配置 ```bash # 安装依赖 npm install cd electron npm install # 配置镜像源(已在 .npmrc 中配置) # 无需额外操作 ``` ### 2. 日常打包 ```bash # Windows npm run pack:win # Mac npm run pack:mac ``` ### 3. 故障排查 如果打包失败: ```bash # 1. 检查配置 npm config get electron_mirror # 2. 清除缓存 npm cache clean --force # 3. 重新安装依赖 cd electron rm -rf node_modules npm install # 4. 重新打包 npm run pack:win ``` ## 其他工具的镜像配置 ### yarn ```bash yarn config set electron_mirror https://npmmirror.com/mirrors/electron/ yarn config set electron_builder_binaries_mirror https://npmmirror.com/mirrors/electron-builder-binaries/ ``` ### pnpm ```bash pnpm config set electron_mirror https://npmmirror.com/mirrors/electron/ pnpm config set electron_builder_binaries_mirror https://npmmirror.com/mirrors/electron-builder-binaries/ ``` ## 性能优化 ### 1. 使用缓存 Electron 下载的二进制文件会被缓存,后续打包会更快: ```bash # 查看缓存位置 npm config get cache # Windows: C:\Users\\AppData\Roaming\npm-cache # Mac: ~/.npm # Linux: ~/.npm ``` ### 2. 离线模式 如果已经下载过 Electron,可以设置离线模式: ```bash export ELECTRON_BUILDER_CACHE=~/.electron ``` ## 总结 通过配置镜像源,你可以在不翻墙的情况下成功打包 Electron 应用。推荐使用: 1. **`.npmrc` 配置** - 最简单,一次配置永久生效 2. **环境变量** - 灵活,可以针对不同项目配置 3. **批处理脚本** - 方便,可以一键打包 现在你可以愉快地打包 Electron 应用了!🎉