我是初学者,我试图在我的树莓派上运行Homebridge。当我去运行它时,我收到一个错误:
pi@raspberrypi:/ $ homebridge
/usr/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:35
throw ex;
^
Error: The module '/usr/lib/node_modules/homebridge/node_modules/mdns/build/Release/dns_sd_bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 48. This version of Node.js requires
NODE_MODULE_VERSION 51. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or`npm install`).
at Object.Module._extensions..node (module.js:598:18)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:24:20)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
其他博文指出此命令将解决此问题:
npm install --save-dev electron-rebuild
此外我也遇到错误:
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.
任何人都可以提供任何建议吗?非常感谢。
干杯
答案 0 :(得分:0)
由于有问题的文件以.node
结尾,因此它是节点运行时的二进制扩展,因此需要重新编译以与特定版本的节点一起使用。
解决这个问题的第一步是询问Homebridge的其他用户如何解决它。
我的下一步是cd /usr/lib/node_modules/homebridge/node_modules/mdns
并尝试通过调用mdns
重建npm rebuild
模块(如错误消息中所述)。请注意,这假设您具有所需的环境在你的Pi上编译(即gcc,g ++,make,node-gyp等)
最后,我将考虑通过running a cross-compiler为PI平台重建所需的模块。
另一个想法是将当前node
安装降级为electron-rebuild
模块所需的版本。
你对安装electron-rebuild
的建议是值得怀疑的,因为我不相信你在electron
中运行(我可能是错的。)无论如何,安装失败,因为指定的npm命令必须在与电子package.json
文件相同的目录中调用。