vue-electron使用serialport遇到的奇葩问题
在Windows 10环境下,遇到一个关于Webpack无法解析'SerialPort'模块的错误,导致应用崩溃。错误信息显示为'Cannot read property 'modules' of undefined'。问题出现在尝试在Electron项目中使用'SerialPort'库时。解决方案是在Webpack配置中引入IgnorePlugin,忽略'SerialPort'资源,并在electron-builder设置中将其作为外部依赖。同时设置'app.allowRendererProcessReuse = false'以避免渲染进程重复使用问题。应用这些更改后,重新运行项目,错误应被成功解决。
报错如下:
Uncaught TypeError: Cannot read property 'modules' of undefined
at Object.eval (webpack-internal:///./node_modules/bindings/bindings.js:29)
at eval (webpack-internal:///./node_modules/bindings/bindings.js:223)
at Object../node_modules/bindings/bindings.js (chunk-vendors.js:255)
at __webpack_require__ (app.js:849)
at fn (app.js:151)
at eval (webpack-internal:///./node_modules/@serialport/bindings/lib/linux.js:2)
at Object../node_modules/@serialport/bindings/lib/linux.js (chunk-vendors.js:65)
at __webpack_require__ (app.js:849)
at fn (app.js:151)
at Object.eval (webpack-internal:///./node_modules/@serialport/bindings/lib/index.js:14)
总结下来:webpack不能解析二进制什么的...github有讨论
系统:win10
"dependencies": {
"core-js": "^3.6.5",
"electron-prebuilt": "^1.4.13",
"serialport": "^9.2.1",
"vue": "^2.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"electron": "^13.0.0",
"electron-devtools-installer": "^3.1.0",
"electron-rebuild": "^3.2.3",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"vue-cli-plugin-electron-builder": "~2.1.1",
"vue-template-compiler": "^2.6.11"
},
const { IgnorePlugin } = require('webpack')
module.exports = {
pluginOptions: {
plugins: [
new IgnorePlugin({
resourceRegExp: /serialport/
})
],
electronBuilder: {
nodeIntegration: true,
externals: [
'serialport'
]
}
}
}
app.allowRendererProcessReuse = false
博主的文章或程序如果给您带来了价值,感谢您打赏一二
微信扫码支付
支付宝扫码支付