我遇到过这个问题,从全新的Node和npm安装中,serial port
软件包不会加载Hello World Electron软件包中的以下错误:
我使用的是Node版本6.6.0和NPM版本3.10.7以及OS X 10.11.6。
我看看我是不是已经过时,但是看this list,我找不到任何模块版本为50的东西。这是一个错误吗?
我尝试了npm rebuild
,以及删除模块并重新安装,但没有骰子。
更新:即使我运行node -v
时它打印v6.6.0
,在网络控制台中运行process.versions.node
也会给我v6.5.0
。这是怎么回事?
答案 0 :(得分:15)
这是known issue,它是由serialport
模块使用为不同版本的Node构建的本机代码引起的。如果您有兴趣,可以阅读更多关于插件here的内容;它们只是用C / C ++编写的模块,可以与Node接口,因此模块可以更容易地与硬件连接。
该问题提出的解决方案是:
npm rebuild --runtime=electron --target=1.2.5 --disturl=https://atom.io/download/atom-shell --build-from-source
如果您尚未安装electron-rebuild
,则可能有助于确保重建过程正常运行:
npm install --save-dev electron-rebuild
即使我运行节点-v它打印v6.6.0,在Web控制台中运行process.versions.node给了我v6.5.0。这是怎么回事?
Electron使用其自身版本的Node未连接到您的系统节点安装(请参阅homepage查看最新Electron使用的Node版本,或使用process.versions.node
,就像您所做的那样在问题中)。
您可以尝试旧版本(可能是1.1.0,使用Chrome 50吗?),以防出现问题。
答案 1 :(得分:4)
在我的情况下,错误是:
App threw an error during load
Error: Module version mismatch. Expected 50, got 48.
at Error (native)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
at Object.Module._extensions..node (module.js:583:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/myapp/node_modules/sqlite3/lib/sqlite3.js:4:15)
重建错误后修复错误:
npm install --save-dev electron-rebuild
npm rebuild --runtime=electron --target=1.4.3 --disturl=https://atom.io/download/atom-shell --build-from-source