electron node 版本不匹配的解决细节

在使用 Electron 项目时,经常遇到NODE_MODULE_VERSION错误。通过查看Electron版本文档,了解到需将NODE_MODULE_VERSION改为69。解决方法包括:选择Node版本与Electron的NODE_MODULE_VERSION相同,或者利用electron-rebuild,通过指定abi值进行重建。执行`cnpm rebuild --runtime=electron --target=4.0.5 --disturl=https://atom.io/download/atom-shell --abi=69`命令,成功解决了Node-Serialport和Node-ffi的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用electron项目经常会遇到NODE_MODULE_VERSION的错误,如下:

error:: Error: The module '<project>/node_modules/electron/node_modules/ref/build/Release/binding.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 57. This version of Node.js requires
NODE_MODULE_VERSION 54. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or`npm install`)

解决方法:

npm i electron-rebuild -s
./node_modules/.bin/electron-rebuild

查看Electron版本文档库中,发现有这么一句话:Change the NODE_MODULE_VERSION to 69

问题原因终于找到了,但是怎么解决?问题分析到这种程度,可以得出两种解决方案:

1) 选取Node版本与Electron版本的NODE_MODULE_VERSION一致。(由于没有找到electron各个版本对应的NODE_MODULE_VERSION,这里可以稍后研究一下)

2)依据electron-rebuild的思路,把二者转换成一致。在rebuild的时候,指定一下abi的值不就可以了?查了一下这方面的资料,发现才真能指定abi的值。
cnpm rebuild --runtime=electron --target=4.0.5 --disturl=https://atom.io/download/atom-shell --abi=69

运行成功。同时解决了Node-Serialport串口读取,也能解决Node-ffi读取dll。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值