在将节点更新为6.3.0
之后,我尝试运行电子应用。
我将所有依赖项更新为最新版本,当我尝试运行该应用程序时,它会抛出以下错误,
/Volumes/Shankar_Drive/Work/git/safe_launcher/testApp/node_modules/bindings/bindings.js:83
throw e
^
Error: Module version mismatch. Expected 49, got 48.
at Error (native)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:167:20)
at Object.Module._extensions..node (module.js:568:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:167:20)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at bindings (/Volumes/Shankar_Drive/Work/git/safe_launcher/testApp/node_modules/bindings/bindings.js:76:44)
我尝试了npm cache clean && npm install
并删除了node_modules
文件夹并运行npm install
没有用。
我甚至尝试electron-rebuild
对特定模块说('ffi'和'ref'),但没有用
环境我运行这些:
node 6.3.0
npm 3.8.6
electron-prebuild 1.3.1
请有人帮助我。提前谢谢。
答案 0 :(得分:3)
我刚刚创建了一个shell脚本来专门为Electron处理这个问题。为什么?因为删除node_modules并不总是有效,所以很多人都有这个问题。没有特殊标志的简单重建也不一定有效。
此脚本将目标abi版本作为第一个参数,并自动检测您的Electron版本。您可以选择将您的电子版本作为第二个参数传递,但99%的时间可以通过"预期" abi版应该就够了。
这是:https://github.com/TomAshley303/electron-abi-fix
只需将其放入项目目录并运行:sh electron-abi-fix.sh 49
(如果49是您错误中预期的abi版本)。您也可以将Electron版本作为第二个参数传递,但不应该这样做。