electron中使用 node-usb ,以及遇到的问题(Windows环境下)。

初始化electron-vue项目不过多赘述,在 官网教程 有详细的讲解和实例代码。主要记录下第一次使用node-usb遇到的问题以及解决办法。

npm install usb

js中直接 const usb = require('usb') 即可。属性和方法可参考github地址查看。

安装和引入中遇到的问题

js中require usb后直接报错

  • 在electron中 require('usb')会直接报错。
  • node-pre-gyp ERR! UNCAUGHT EXCEPTION
    node-pre-gyp ERR! stack Error: Cannot find module 'internal/util/types'
    node-pre-gyp ERR! stack     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
    node-pre-gyp ERR! stack     at Function.Module._load (internal/modules/cjs/loader.js:508:25)
    node-pre-gyp ERR! stack     at Module.require (internal/modules/cjs/loader.js:637:17)
    node-pre-gyp ERR! stack     at require (internal/modules/cjs/helpers.js:22:18)
    node-pre-gyp ERR! stack     at evalmachine.<anonymous>:44:31
    
    npm ERR! code ELIFECYCLE
    npm ERR! errno 7
    npm ERR! usb@1.0.6 install: `node-pre-gyp install --fallback-to-build`
    npm ERR! Exit status 7
    npm ERR!
    npm ERR! Failed at the usb@1.0.6 install script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
  • electron项目中所需环境必须全局安装node-gyp,安装构建工具 PythonVisual Studio
  • 重新编译usb,在项目根目录下执行以下代码
  • cd node_modules/usb
    node-gyp rebuild --target=4.0.0 --dist-url=https://atom.io/download/atom-shell
    

    tip:target后的版本号为当前项目中electron的版本号,执行rebuild的过程有点长,建议开启vpn

  • discuss.atom.io/t/use-node-…
  • simulatedgreg.gitbooks.io/electron-vu…
  •