You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS虚拟机运行Electron app执行npm start报Unknown system error -8

解决Electron在MacOS虚拟机中启动时的spawn错误(Unknown system error -8)

问题场景

Electron应用在Linux、Windows下正常运行,但在MacOS虚拟机执行npm start时抛出以下错误:

> NoRA@0.0.1 start
> electron .

node:internal/child_process:421
    throw errnoException(err, 'spawn');
    ^

Error: spawn Unknown system error -8
    at ChildProcess.spawn (node:internal/child_process:421:11)
    at Object.spawn (node:child_process:761:9)
    at Object.<anonymous> (/Users/user/electron-test/node_modules/electron/cli.js:7:20)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
    at node:internal/main/run_main_module:28:49 {
  errno: -8,
  code: 'Unknown system error -8',
  syscall: 'spawn'
}

Node.js v20.11.1

错误源自node_modules/electron/cli.js的这行代码:

const child = proc.spawn(electron, process.argv.slice(2), { stdio: 'inherit', windowsHide: false });

环境为全新安装的Node.js,已执行npm install。

错误原因分析

该错误通常和以下因素相关:

  • MacOS虚拟机架构与安装的Electron二进制架构不匹配(比如虚拟机是x86_64,却安装了arm64版本的Electron)
  • Electron二进制文件损坏或未通过MacOS安全验证
  • Node.js版本与Electron版本不兼容

修复步骤

1. 强制安装与虚拟机架构匹配的Electron

先检查虚拟机的MacOS架构:

uname -m

如果输出为x86_64,则强制安装x64架构的Electron:

rm -rf node_modules package-lock.json
npm install --arch=x64

也可以在package.json的start脚本中指定架构:

"scripts": {
  "start": "electron . --arch=x64"
}

2. 修复Electron二进制文件权限与完整性

  • 清理npm缓存后重新安装:
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
  • 移除MacOS的扩展属性限制(解决未签名二进制被阻止的问题):
xattr -cr ./node_modules/electron/dist/Electron.app
  • 尝试直接启动Electron验证二进制是否正常:
open ./node_modules/electron/dist/Electron.app

如果能正常启动,再执行npm start。

3. 调整MacOS安全设置

打开系统设置 → 隐私与安全性,查看是否有“已阻止Electron运行”的提示,点击“允许”即可。

4. 匹配Node.js与Electron版本兼容性

Node.js 20.x需要搭配Electron 25.x及以上版本,若当前Electron版本过低,执行升级:

npm install electron@latest --save-dev

内容的提问来源于stack exchange,提问作者Pablo Pazos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:05:18