2017-04-11 170 views
0

我是一名初學者,我試圖在我的覆盆子pi上運行Homebridge。當我去運行它,我得到一個錯誤:Linux節點模塊版本不匹配

[email protected]:/ $ 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

其他版本爲$ node -v v7.8.0 $ npm -v 4.2.0 –

回答

0

由於有問題的文件結束在.node,這是一個二進制擴展到節點運行,因此需要重新編譯你的節點的特定版本的工作。

解決這個問題的第一步是詢問Homebridge的其他用戶他們是如何解決這個問題的。

我的下一個步驟將是cd /usr/lib/node_modules/homebridge/node_modules/mdns並試圖重建mdns模塊調用npm rebuild(如錯誤消息中提到。)請注意,這是假定你有你的皮編譯所需的環境(如GCC,G ++, make,node-gyp等)

最後,我想研究一下PI平臺上的running a cross-compiler所需的模塊。

另一個想法是將您當前的node安裝降級到electron-rebuild模塊所需的版本。

和你有安裝electron-rebuild的建議是值得商榷的,因爲我不相信你在運行electron(我可能是錯的。)無論如何,安裝失敗,因爲指定的NPM命令必須在同一目錄中調用作爲電子文件package.json

其他策略可以在READMEBugs部分的電子製造商源回購中找到。