Electron中fibers.node缺失问题求助:执行build命令仍无效
解决Electron中node-fibers文件缺失的矛盾报错
我来帮你拆解这个问题——你遇到的是典型的原生模块ABI版本不匹配问题:
报错说
win32-x64-57\fibers.node缺失,但运行node build却提示该文件存在且正常
这是因为node build编译出来的fibers是给你的系统Node.js用的(ABI 57对应Node.js 8.x系列),但Electron内置了自己的Node.js环境,它的ABI版本很可能和你系统的Node不一样,导致Electron找不到它需要的那版fibers.node文件。
下面是具体的解决步骤:
1. 先搞清楚Electron用的是哪个ABI版本
先确认你的Electron对应的Node.js模块版本(也就是ABI号):
- 最简单的方法:在Electron主进程里加一行代码运行:
console.log(process.versions.modules); // 输出的数字就是ABI号,比如57、64、73等 - 或者查Electron版本对应表:比如Electron 1.8.x对应ABI 57,2.x对应64,9.x对应80,以此类推。
2. 用electron-rebuild一键修复(推荐)
electron-rebuild是专门为Electron适配原生模块的工具,能自动帮你重新编译fibers到正确的ABI目录:
- 先安装依赖:
npm install --save-dev electron-rebuild - 运行编译(Windows用cmd,Mac/Linux用终端):
# Windows .\node_modules\.bin\electron-rebuild.cmd # Mac/Linux ./node_modules/.bin/electron-rebuild
等它跑完,再启动Electron应该就不会报错了。
3. 手动指定Electron版本重新安装fibers
如果electron-rebuild没生效,你可以手动指定Electron版本来编译fibers:
npm install fibers --target=你的Electron版本号 --runtime=electron --disturl=https://atom.io/download/electron --build-from-source
比如你的Electron是1.8.8,就跑:
npm install fibers --target=1.8.8 --runtime=electron --disturl=https://atom.io/download/electron --build-from-source
额外排查小提示
- 去
node_modules/fibers/bin目录看看,里面应该有对应你Electron ABI号的文件夹(比如win32-x64-64),里面必须有fibers.node才对。 - 之前的
node build命令是给系统Node编译的,不是给Electron的,所以才会出现“文件存在但Electron找不到”的矛盾情况,别再跑这个命令啦。
内容的提问来源于stack exchange,提问作者Gunnar Marino
相关产品推荐
相关产品推荐

