2017-06-29 69 views
1

我試圖發現在Windows 10(electron.atom.io)在Windows 10

npm安裝node_usb_detection,併成功地在電子U盤插入用於電子安裝node_usb_detection重建本土node_usb模塊,它依賴於。

usb.js文件node_usb模塊的下面一行(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成功地重建。但是,這並沒有固定的問題。)

回答

1

你需要electron-rebuildhttps://github.com/electron/electron-rebuild因爲電子很可能使用系統中安裝的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 
+0

我試過,它運行,報告重建完成,然後簡單地刪除我的'usb_bindings.node'文件,哈哈! (好悲傷查理布朗 - 這只是繼續下去...) – CodeCabbie

+0

也許它確實依賴'prebuild',那麼你必須添加參數'--build-from-source'並設置env變量'npm_config_build_from_source'到'真'。原生模塊可能非常棘手:P –

+0

https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md可能會給你一個更好的理由;) –