Electron app throw版本模块版本不匹配错误。预计49,得到48

时间:2016-08-03 10:56:54

标签: node.js npm electron

在将节点更新为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

请有人帮助我。提前谢谢。

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版本作为第二个参数传递,但不应该这样做。