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
博主的文章或程序如果给您带来了价值,感谢您打赏一二

微信扫码支付

支付宝扫码支付