【问题标题】:Is there a way to downgrade my npm version to match the node-hid library?有没有办法降级我的 npm 版本以匹配 node-hid 库?
【发布时间】:2019-08-20 14:32:22
【问题描述】:

使用 node.js,我想创建一个带有 RFID 阅读器的信息亭应用程序连接到信息亭。为了访问我的 RFID 阅读器,我安装了 node-hid 库 (https://github.com/node-hid/node-hid)。但是,当我尝试运行该应用程序时,出现了错误,提示:

未捕获的异常 错误:模块 'D:\Projects\Electron\SelfService\node_modules\node-hid...\build\HID.node' 是使用 NODE_MODULE_VERSION 72 针对不同的 Node.js 版本编译的。此版本的 Node.js 需要 NODE_MODULE_VERSION 73.

我已经将库和 node.js 版本更新到了最新的更新,但是由于库有点旧,它不再得到更新。

我试图降级节点版本,但是我找不到任何有用的教程。我知道有很多教程解释了如何安装旧版本的节点,但是我不能从上面显示的错误消息中简单地知道我需要什么版本的节点。

我需要让应用程序可以读取设备。如果不知何故,无法使用 node-hid 库,您推荐的从应用程序访问 RFID 阅读器的最新库是什么?

注意:我熟悉 Web 开发,包括 Javascript 语言,但 Node.js 对我来说是一种新体验。我会尽力提供有关我的项目的信息,但如果我描述问题的方式有一些错误,或者我在理解您的答案时遇到一些困难,请多多包涵。

编辑:我忘了说我在Windows 10上,我安装的节点版本是10.16.3

【问题讨论】:

标签: javascript node.js npm


【解决方案1】:

首先尝试这个命令 - 先卸载 electron 然后试试下面的命令

sudo npm install --save-dev electron@4.0.0

sudo npm i --save-dev electron-releases@4.0.0

并且还尝试更新 chrome

以上是确保最低限度使用具有 x64 处理器的 Linux 16.04 的解决方案,对于 npm 版本更改,请参见下文

Linux/Ubuntu NPM 版本降级

sudo npm install -g npm@version

例子-

sudo npm install -g npm@6.9

对于 Windows - 启动命令提示符管理员

npm install -g npm@version

例子-

npm install -g npm@6.9

【讨论】:

  • 我已经降级了 electron 和 npm 版本,但同样的错误仍然存​​在。此错误仅在我加载一些模块(如 node-hid 或 serialport)时发生。
  • 需要由 electron 运行的 main.js 文件中的所有依赖项。运行 npm i -D electron-rebuild 以添加 electron-rebuild 包删除 node-modules 文件夹以及 packages-lock.json 文件。运行 npm install 安装所有模块。运行 ./node_modules/.bin/electron-rebuild 重建一切 npm install 后直接运行 ./node_modules/.bin/electron-rebuild 非常重要。
  • .\node_modules\.bin\electron-rebuild.cmd 这将帮助你
  • 感谢@Gaurav 的回复,我以前在Windows 命令提示符下运行electron-rebuild 时遇到了一些困难。再问一个问题,这种方法是否也可以应用于其他有相同问题的模块?
  • 当我运行.\node_modules\.bin\electron-rebuild.cmd时,它显示一个很长的错误:An unhandled error occurred inside electron-rebuild gyp info it worked if it ends with ok gyp info using node-gyp@5.0.3 gyp info using node@10.16.3 | win32 | x64 gyp ERR! find Python gyp ERR! find Python Python is not set from command line or npm configuration gyp ERR! find Python Python is not set from environment variable PYTHON...
【解决方案2】:

您可以卸载当前节点,然后重新安装所需的节点版本。

但最佳做法是使用 nvm aka node version manager 安装 node.js。

使用nvm,您可以在不同的node 版本以及不同的npm 版本之间轻松切换。

这是一个quick start,用于在两者中都使用nvm 安装节点 windows、linux和unix平台。

NVM Official doc 适用于 unix 和 linux。

NVM alternative 用于窗口

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2023-02-23
    • 2013-07-11
    相关资源
    最近更新 更多