/** * 直接跑 electron-builder(跳过版本交互),并注入国内镜像环境变量 * 避免打 GitHub 超时:connect ETIMEDOUT 20.x.x.x:443 */ import { spawn } from 'node:child_process'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; const desktopRoot = join(dirname(fileURLToPath(import.meta.url)), '..'); const electronMirror = process.env.ELECTRON_MIRROR || 'https://npmmirror.com/mirrors/electron/'; const builderBinariesMirror = process.env.ELECTRON_BUILDER_BINARIES_MIRROR || 'https://npmmirror.com/mirrors/electron-builder-binaries/'; const env = { ...process.env, ELECTRON_MIRROR: electronMirror, ELECTRON_BUILDER_BINARIES_MIRROR: builderBinariesMirror, npm_config_electron_mirror: electronMirror, npm_config_electron_builder_binaries_mirror: builderBinariesMirror, }; console.log(`Electron 镜像: ${electronMirror}`); console.log(`Builder 工具链镜像: ${builderBinariesMirror}`); const child = spawn( 'pnpm exec electron-builder --config electron-builder.config.cjs', { cwd: desktopRoot, env, shell: true, stdio: 'inherit', }, ); child.on('close', (code) => { process.exit(code ?? 1); }); child.on('error', (err) => { console.error(err); process.exit(1); });