Files
tianshu-engine/docs/electron-mirror-setup.md
2026-06-10 14:16:46 +08:00

285 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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\<username>\AppData\Roaming\npm-cache
# Mac: ~/.npm
# Linux: ~/.npm
```
### 2. 离线模式
如果已经下载过 Electron可以设置离线模式
```bash
export ELECTRON_BUILDER_CACHE=~/.electron
```
## 总结
通过配置镜像源,你可以在不翻墙的情况下成功打包 Electron 应用。推荐使用:
1. **`.npmrc` 配置** - 最简单,一次配置永久生效
2. **环境变量** - 灵活,可以针对不同项目配置
3. **批处理脚本** - 方便,可以一键打包
现在你可以愉快地打包 Electron 应用了!🎉