when i use usb module on main process, the bindings js report a TypeError
TypeError: Cannot read property 'indexOf' of undefined
at Function.getFileName (webpack:///./node_modules/bindings/bindings.js?:178:16)
at bindings (webpack:///./node_modules/bindings/bindings.js?:82:48)
at eval (webpack:///./node_modules/usb/usb.js?:1:112)
at Object../node_modules/usb/usb.js (/Users/leehu/Code/circulate/pi-bank2/dist_electron/index.js:5146:1)
at __webpack_require__ (/Users/leehu/Code/circulate/pi-bank2/dist_electron/index.js:20:30)
at eval (webpack:///./node_modules/@ledgerhq/hw-transport-node-hid/lib/listenDevices.js?:15:12)
at Object../node_modules/@ledgerhq/hw-transport-node-hid/lib/listenDevices.js (/Users/leehu/Code/circulate/pi-bank2/dist_electron/index.js:193:1)
at __webpack_require__ (/Users/leehu/Code/circulate/pi-bank2/dist_electron/index.js:20:30)
at eval (webpack:///./node_modules/@ledgerhq/hw-transport-node-hid/lib/TransportNodeHid.js?:21:23)
at Object../node_modules/@ledgerhq/hw-transport-node-hid/lib/TransportNodeHid.js (/Users/leehu/Code/circulate/pi-bank2/dist_electron/index.js:181:1)
package.json
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"noImplicitAny": false,
"baseUrl": ".",
"allowJs": true,
"typeRoots": [
"node_modules/@types"
],
"types": [
"node",
"webpack-env"
],
"paths": {
"@/*": [
"src/renderer/*"
]
},
"lib": ["es6", "dom"],
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
"exclude": [
"node_modules"
]
}
Mark the usb module as an external by setting your vue.config.js to:
// vue.config.js
module.exports = {
pluginOptions: {
electronBuilder: {
externals: ['usb']
}
}
}
Most helpful comment
Mark the
usbmodule as an external by setting yourvue.config.jsto: