【问题标题】:Installing node_usb_detection for Electron in Windows 10在 Windows 10 中为 Electron 安装 node_usb_detection
【发布时间】:2017-06-29 14:26:19
【问题描述】:

我正在尝试在 Windows 10 的 Electron 中检测 USB 记忆棒的插入。(electron.atom.io)

我已经 npm 安装了 node_usb_detection 并成功重建了它所依赖的本机 node_usb 模块。

node_usb 模块的usb.js 文件中的以下行 (5) 导致错误:

var usb = exports = module.exports = require(binding_path);

错误是:

binding_path : C:\Users\Developer\Desktop\tmp\electron-quick-
start\node_modules\usb\src\binding\usb_bindings.node

App threw an error during load
Error: A dynamic link library (DLL) initialization routine failed.
\\?\C:\Users\Developer\Desktop\tmp\electron-quick-start\node_modules\usb\src\binding\usb_bindings.node
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
at Object.Module._extensions..node (module.js:598:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (C:\Users\Developer\Desktop\tmp\electron-quick-start\node_modules\usb\usb.js:5:38)
at Object.<anonymous> (C:\Users\Developer\Desktop\tmp\electron-quick-start\node_modules\usb\usb.js:394:3)

谁能建议我接下来可以做什么来解决这个错误?已经不好玩了!

(我必须安装python2.7,SDK8.1和vs2013才能使usb_bindings.node成功重建。但是,这并没有解决问题。)

【问题讨论】:

    标签: javascript node.js usb electron libusb


    【解决方案1】:

    你需要electron-rebuildhttps://github.com/electron/electron-rebuild,因为 Electron 很可能使用与系统中安装的 Node 二进制文件不同的 V8 版本,你必须在构建本机模块时手动指定 Electron 头文件的位置,electron-rebuild 确实如此这是给你的。

    npm install --save-dev electron-rebuild
    
    // Every time you run "npm install", run this or 
    // bind it to a npm script in your package.json:
    ./node_modules/.bin/electron-rebuild
    
    // On Windows if you have trouble, try:
    .\node_modules\.bin\electron-rebuild.cmd
    

    【讨论】:

    • 我试过了,它运行,报告重建完成,然后简单地删除我的usb_bindings.node 文件,哈哈! (Good Grief Charlie Brown - 这一直在继续......)
    • 也许它确实依赖于prebuild,那么您必须添加参数--build-from-source 并将环境变量npm_config_build_from_source 设置为true。原生模块可能非常棘手:P
    • github.com/electron/electron/blob/master/docs/tutorial/… 可以让你更好地了解这件事;)
    • 我是否应该期望通过运行 electron-rebuild.cmd 来修改 usb_bindings.node 文件?我想知道它是否将其输出放在其他地方。调用electron-rebuild.cmd 后文件似乎未修改。
    • 顺便说一句,我正在与npm install --build-from-source --python=c:\Python27\python一起构建
    猜你喜欢
    • 2019-03-04
    • 2017-01-29
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2017-06-26
    相关资源
    最近更新 更多