【问题标题】:Cannot use node-hid library in electron app无法在电子应用程序中使用节点隐藏库
【发布时间】:2019-05-03 04:59:45
【问题描述】:

我在我的 electron 应用程序 中集成了 OpenTok.js 库用于视频通话,我想为此使用 logitech 设备 并使用我需要 node-hid 库,我的应用程序可以使用它来检测设备。

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

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

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

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

谢谢

【问题讨论】:

    标签: electron logitech


    【解决方案1】:

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

    另外一件事,在 Linux 上,当你运行开发模式时,你必须以 sudo 运行脚本。否则会引发另一个问题,例如cannot open device with path...

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

    【讨论】:

    • 我有同样的错误,没有任何帮助。我试过你的解决方案。我的空白 reactjs 项目中也没有 webpack.config。
    • 我需要一个用于 Win32 x32 / ia32 的 node-hid 构建,在一个 linux CI 管道上......知道吗?因为对于 Win32 x32 / ia32,node-hid 的预构建不存在。
    【解决方案2】:

    我自己也遇到了这个问题,并认为我会分享对我有用的解决方案。 @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'
        }
    

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

    【讨论】:

      猜你喜欢
      • 2021-08-21
      • 2018-05-16
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2015-11-05
      • 2021-10-15
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多