如何解决如何为电子安装节点隐藏
我正在尝试运行一个与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)
环顾四周,我看到了一些如何安装节点隐藏并将其用于电子的示例,但没有一个对我有帮助。
我在这里遵循电子重建说明: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应该支持电子,我看不到其他人在抱怨。
是否有人遇到这个问题或有解决此问题的想法?
解决方法
问题已解决,因此我将其标记为已回答。我想我仍然希望了解更多信息。
提示来自构建两个示例项目:
运行第一个项目,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
在那之后,它起作用了。 为什么这会有不同的见解?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。