簡體   English   中英

Linux節點模塊版本不匹配

[英]Linux Node Module Version Mismatch

我是一個初學者,我想在樹莓派上運行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.

誰能提供任何建議? 將不勝感激。

干杯

由於所討論的文件以.node結尾,因此它是節點運行時的二進制擴展,因此需要重新編譯以使用特定版本的節點。

解決此問題的第一步是詢問Homebridge的其他用戶如何解決它。

我的下一步將是cd /usr/lib/node_modules/homebridge/node_modules/mdns並嘗試通過調用npm rebuild來重建mdns模塊(如錯誤消息中所述。)請注意,這假定您具有編譯所需的環境在您的Pi上(例如gcc,g ++,make,node-gyp等)

最后,我將通過運行 PI平台的交叉編譯器來研究重建所需的模塊。

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

而且,由於我不相信您正在使用electron (我可能是錯的),因此您獲得關於安裝electron-rebuild的建議是可疑的(我可能是錯的。)無論如何,安裝失敗,因為必須在與目錄相同的目錄中調用指定的npm命令。電子package.json文件。

可以在電子生成器源存儲庫的自述文件錯誤部分中找到更多策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM