我有一个可以在 Linux 和 Windows 上正确运行的 Electron 应用程序,尽管我尝试在 MacOS VM 上运行它,但它始终在 npm start 上抛出错误。
> [email protected] 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 });
但是错误本身并不能描述正在发生的事情或我可以修复什么。
这是 Nodejs 的全新安装,并且进行了 npm 安装。
尝试提供一个最小的可重现示例并将其扔到 Electron 开发人员脚前似乎不太适用,如果每次启动 任何 Elecron 应用程序时都会发生错误(即使是最简单的空脚本)一)在你的机器上,但你不知道为什么。
我只能告诉你:
就我而言,出现这个错误是因为我在无头Linux虚拟机上安装了Electron(使用yarn install),然后切换到MacOS执行,因为只有在那里,我才有可用的窗口管理器。
在 Linux 上运行时,yarn 似乎安装了特定于平台的东西,这导致了 MacOS 上的错误。
在 MacOS 上再次运行
yarn install
修复了我机器上的这个问题。