Windows环境运行Electron项目npm start报无法打开X display、futex异常错误
问题解决步骤
问题根因定位
你遇到的Electron: Unable to open X display报错本质是Windows环境下调用了Linux版本的Electron二进制文件导致的,Linux版本Electron运行需要X server服务支持,所以会抛出该类Linux环境下才会出现的错误。
具体解决方法
- 排查npm调用的Electron路径优先级
在VSCode的PowerShell终端执行Get-Command electron,如果返回的路径是WSL挂载路径(如/mnt/开头或者WSL发行版存储目录路径),说明你把WSL的Node依赖路径加到了Windows系统环境变量的靠前位置,导致npm优先调用了Linux版本的Electron。
修复方法二选一:- 把Windows全局Node依赖路径(默认是
C:\Users\你的用户名\AppData\Roaming\npm)移动到系统环境变量Path的最上方,优先级高于WSL相关路径 - 直接修改项目
package.json中的scripts配置,把start脚本改为指定调用Windows版本的Electron执行文件:"start": "electron.cmd ."
- 把Windows全局Node依赖路径(默认是
- 修复直接启动Electron只显示默认启动页的问题
该现象是因为Electron没有加载到你项目的实际入口逻辑,排查以下两点:- 确认执行
electron.cmd main.js的工作目录是项目根目录,main.js文件在当前工作目录下存在 - 检查
main.js中的窗口创建逻辑,确认app.whenReady()回调中正确编写了窗口创建、加载项目页面的代码,加载页面路径如果用了相对路径,要保证和执行命令的工作目录匹配
- 确认执行
- 兜底修复方案
如果上述操作都无效,删除项目根目录下的node_modules文件夹和package-lock.json文件,执行npm install --platform=win32 electron强制安装Windows平台的Electron依赖,再执行npm start启动项目即可。
内容的提问来源于stack exchange,提问作者JDeere
相关产品推荐
相关产品推荐

