node.js - 如何为电子安装 node-hid
问题描述
我正在尝试运行一个与 HID 设备交互的简单电子应用程序。我遇到了很多困难,我能够安装和运行node-hid
,只是不在电子中。
我的 package.json 看起来像这样:
{
"name": "test-proj",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron .",
"rebuild": "electron-rebuild --force",
"postinstall": "electron-rebuild"
},
"author": "me",
"license": "ISC",
"devDependencies": {
"electron": "^9.2.0",
"electron-rebuild": "^1.11.0"
},
"dependencies": {
"node-hid": "^1.3.0"
}
}
我的 main.js 有标准的电子演示样板代码以及一些 HID 调用:
const {app, BrowserWindow, ipcMain} = require('electron');
var HID = require('node-hid');
var device = new HID.HID(5824, 1500);
// Standard electron app window stuff
尝试运行该应用程序时,我立即收到错误消息new HID.HID()
:
Error: Module did not self-register: '\\?\C:\Users\Nathan\Desktop\carriage_return_app\node_modules\node-hid\build\Release\HID.node'.
at process.func [as dlopen] (electron/js2c/asar.js:140:31)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1034:18)
at Object.func [as .node] (electron/js2c/asar.js:140:31)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Module._load (internal/modules/cjs/loader.js:727:14)
at Function.Module._load (electron/js2c/asar.js:769:28)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at bindings (C:\Users\Nathan\Desktop\carriage_return_app\node_modules\bindings\bindings.js:112:48)
at loadBinding (C:\Users\Nathan\Desktop\carriage_return_app\node_modules\node-hid\nodehid.js:25:42)
环顾四周,我看到了一些如何安装 node-hid 并在电子中使用它的示例,但没有一个对我有帮助。
我在这里遵循了电子重建说明:https ://www.electronjs.org/docs/tutorial/using-native-node-modules
我也按照说明从这里复制了示例:https ://github.com/node-hid/node-hid#electron-projects-using-node-hid
没运气。我module did not self-register
每次都得到。node-hid 应该支持电子,我没有看到其他人抱怨。有人遇到过这个问题或有解决问题的想法吗?
解决方案
问题已解决,所以我将其标记为已回答。我想我仍然想要更多关于 WHY 的信息。
提示来自构建两个示例项目:
运行第一个项目,electron-hid-test
工作顺利。添加electron-builder
为依赖项并添加"postinstall": "electron-builder install-app-deps"
为脚本解决了我项目中的问题,我还不想要electron-builder
,但至少它表明 node-hid 可以在给定特定设置的情况下与电子一起使用。
第二项也有效,但不适用于:
npm install
npm rebuild
npm start
相反,特别需要将run
命令添加到重建命令:
npm install
npm run rebuild
npm start
之后,它的工作原理。关于为什么这种行为不同的任何见解?
推荐阅读
- excel - 在vba中查找对象范围的方法失败
- python - 在 Python 中转换 excel 日期时出错 - 如果 np.isnan(date): TypeError: Not implemented for this type
- java - 将 Java 库作为子模块添加到 Android 项目中会导致找不到库错误
- c# - 如何重复游戏对象的运动?
- javascript - 如何在 K6 中为函数应用迭代条件
- python - 为什么这会在 kivy 中保存相同的输入?
- javascript - 将随机字符集与模式匹配的问题
- php - Laravel yoeunes/toastr 得到白色背景和白色文本
- c# - 具有数据存储库的服务层
- javascript - DOM 准备好前获取 DOM 准备好后回调