最近在写一个elrctron的桌面端应用,由于里面用到了串口通信,主要就使用了SerialPort、sqlite3两个依赖,魔幻的问题来了
只要用了SerialPort就会报错,去掉这行代码项目就能正常运行
npx electron-rebuild的时候他又会报这个问题
然后去网上找解决办法,结果都是让我去配置文件里面添加各种loader,当然是没有解决,经历了修改electron版本,python和c++环境一系列操作之后我实在没有解决办法了,想问下有没有朋友碰到过类似的问题可以解答一下
lectron + sqlite3 + serialport 可以实现一个桌面端应用,具体步骤如下:
js
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('./db.sqlite');
const SerialPort = require('serialport');
const port = new SerialPort('/dev/tty-usbserial1');
port.on('data', data => {
// 收到串口数据
});
js
const { ipcRenderer } = require('electron')
let input = document.querySelector('input')
input.addEventListener('keyup', () => {
ipcRenderer.send('input-change', input.value)
})
ipcRenderer.on('port-data', (event, data) => {
// 收到主进程推送的串口数据,更新UI
})
js
ipcMain.on('input-change', (event, inputValue) => {
// 对数据库或串口操作
})
该方法可以打包出 Windows (.exe), macOS (.dmg/.pkg) 和 Linux (.deb/.rpm) 安装文件。