fix: 自动修复 Electron 二进制安装

- 添加 scripts/fix-electron.sh 自动检测并下载 Electron 二进制
- postinstall 自动运行修复脚本
- 支持 x64/arm64 架构
- npm run fix:electron 可手动触发
This commit is contained in:
2026-07-04 20:01:08 +08:00
parent f1123b734d
commit 363495bf8a
3 changed files with 871 additions and 2589 deletions
+828 -2586
View File
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -14,7 +14,8 @@
"dev": "electron-vite dev",
"build": "electron-vite build",
"start": "electron-vite preview",
"postinstall": "electron-builder install-app-deps",
"postinstall": "electron-builder install-app-deps && bash scripts/fix-electron.sh",
"fix:electron": "bash scripts/fix-electron.sh",
"build:unpack": "npm run build && electron-builder --dir",
"build:win": "npm run build && electron-builder --win",
"build:mac": "npm run build && electron-builder --mac",
@@ -27,9 +28,10 @@
"pinia": "^3.0.4"
},
"devDependencies": {
"@element-plus/icons-vue": "^2.3.1",
"@vitejs/plugin-vue": "^5.2.0",
"electron": "^33.4.11",
"electron-builder": "^25.1.0",
"electron": "^43.0.0",
"electron-builder": "^26.15.3",
"electron-vite": "^3.0.0",
"element-plus": "^2.9.0",
"typescript": "^5.7.0",
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
# scripts/fix-electron.sh - 自动修复 Electron 二进制文件
ELECTRON_DIR="node_modules/electron"
ELECTRON_VERSION=$(node -e "console.log(require('$ELECTRON_DIR/package.json').version)" 2>/dev/null)
if [ -z "$ELECTRON_VERSION" ]; then
echo "❌ 未找到 electron 包"
exit 1
fi
# 检查是否已安装
if [ -f "$ELECTRON_DIR/dist/electron" ]; then
echo "✅ Electron v$ELECTRON_VERSION 已安装"
exit 0
fi
echo "⏳ 正在下载 Electron v$ELECTRON_VERSION..."
# 下载
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
ARCH="x64"
elif [ "$ARCH" = "aarch64" ]; then
ARCH="arm64"
fi
URL="https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/electron-v${ELECTRON_VERSION}-linux-${ARCH}.zip"
curl -L -o /tmp/electron.zip "$URL"
# 解压
rm -rf "$ELECTRON_DIR/dist"
mkdir -p "$ELECTRON_DIR/dist"
unzip -q /tmp/electron.zip -d "$ELECTRON_DIR/dist/"
printf 'electron' > "$ELECTRON_DIR/path.txt"
rm /tmp/electron.zip
echo "✅ Electron v$ELECTRON_VERSION 安装完成"