在将 Node 更新为6.3.0之后,我尝试运行 Electron 应用程序。

我将所有依赖关系更新为最新版本,当我尝试运行该应用程序时,它会引发以下错误,

/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.0npm 3.8.6electron-prebuild 1.3.1
请有人帮我。提前致谢。

最佳答案

我刚刚创建了一个Shell脚本来专门针对Electron进行处理。为什么?因为删除node_modules并不总是可行的,所以很多人都遇到了这个问题。没有特殊标志的简单重建也不一定会起作用。

该脚本将目标abi版本作为第一个参数,并自动检测您的Electron版本。您可以选择将您的 Electron 版本作为第二个参数传递,但是99%的“预期” abi版本应该足够了。

它是:https://github.com/TomAshley303/electron-abi-fix

只需将其放入您的项目目录并运行:sh electro-abi-fix.sh 49

(如果您的错误中预期的abi版本为49)。您也可以将Electron版本作为第二个参数传递,但不必这样做。

关于node.js - Electron 应用程序抛出版本模块版本不匹配错误。预期为49,得到48,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38741625/

10-11 23:59
查看更多