2

我在电子应用程序中集成了用于视频通话的OpenTok.js库,为此我想使用罗技设备并使用它我需要节点隐藏库,我的应用程序可以使用它来检测设备。

我已经完成了在 Electron 项目中使用 node-hid 的所有必要操作,包确实安装了,但是当我在我的 js 文件中需要它时使用:-

var HID = require('node-hid');
var devices = HID.devices();

并运行我的应用程序,它给出了一个错误

错误:模块版本不匹配。预期 50,得到 51。所以请帮我解决这个问题。

谢谢

4

2 回答 2

4

用于electron-rebuild重建适合电子的模块。一些节点模块并不完全适合电子,因为电子使用它自己构建的节点。因此,electron-rebuild将解决我们使用的节点模块的任何不兼容或功能问题。"postinstall": "electron-rebuild --force"将行添加到文件scripts的推荐方式。package.json

另一件事,在 linux 上,当您运行开发模式时,您必须将脚本作为sudo. 否则会引发另一个问题,例如cannot open device with path...

希望这对某人有所帮助... :)

于 2018-06-19T05:48:48.940 回答
1

我自己遇到了这个问题,并认为我会分享对我有用的解决方案。@Tharanga 是正确的 - 解决此问题的推荐方法是在 package.json “脚本”部分中包含以下内容:

    "postinstall": "electron-rebuild --force"

但是,我在这种方法上经历了不一致的成功。

另一种方法是,在安装“node-hid”之后,运行它(如果在 mac 上):

    .\node_modules\.bin\electron-rebuild

或者对于 Windows:

    .\node_modules\.bin\electron-rebuild.cmd

最后,如果您在项目中使用 webpack,则必须将此行添加到 webpack.config.js 文件(在 module.exports 块中):

    externals: {
        "node-hid" : 'commonjs node-hid'
    }

我希望这对将来的一些人有所帮助!

于 2019-05-02T20:59:45.450 回答