Я пытаюсь обнаружить вставку USB-накопителя в Electron в Windows 10. (electronic.atom.io)
Я установил npm
node_usb_detection
и успешно восстановил собственный модуль node_usb
, от которого он зависит.
Следующая строка (5) в usb.js
файла node_usb
модуля вызывает ошибку:
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
, но это не usb_bindings.node
проблему.)
Вам нужно electron-rebuild
https://github.com/electron/electron-rebuild, так как Electron, скорее всего, использует другую версию V8 из бинарного узла Node, установленного в вашей системе, вам нужно вручную указать местоположение заголовков 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
, LOL! (Доброе горе, Чарли Браун - это продолжается и продолжается ...)prebuild
тогда вам нужно добавить параметр--build-from-source
и установить для переменной envnpm_config_build_from_source
значениеtrue
. Родные модули могут быть очень хитрыми: P