参考https://blog.csdn.net/ykee126/article/details/90440499
版本是第一位:否则容易编译失败
node 版本 18.14.0
npm 版本 9.3.1
electron 版本 30.0.8
electron-rebuild 版本 3.2.9
serialport 版本 10.0.0
需要python环境
main.js
// Modules to control application life and create native browser window
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')function createWindow () {// Create the browser window.const mainWindow = new BrowserWindow({width: 1920,height: 1080,webPreferences: {nodeIntegration: true, //设置开启nodejs环境contextIsolation: false,preload: path.join(__dirname, 'preload.js')}})// and load the index.html of the app.mainWindow.loadFile('./dist/index.html')// Open the DevTools.mainWindow.webContents.openDevTools()
}// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(() => {createWindow()app.on('activate', function () {// On macOS it's common to re-create a window in the app when the// dock icon is clicked and there are no other windows open.if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', function () {if (process.platform !== 'darwin') app.quit()
})Menu.setApplicationMenu(null);// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
package.json
{"name": "electron-quick-start","version": "1.0.0","description": "A minimal Electron application","main": "main.js","scripts": {"start": "electron ."},"repository": "https://github.com/electron/electron-quick-start","keywords": ["Electron","quick","start","tutorial","demo"],"author": "GitHub","license": "CC0-1.0","devDependencies": {"electron": "^30.0.8","electron-rebuild": "^3.2.9"},"dependencies": {"serialport": "^10.0.0"}
}
直接
npm install
然后编译serialport
.\node_modules\.bin\electron-rebuild.cmd
期间会遇到各种问题
需要python环境
serialport-util.js
const {SerialPort
} = require("serialport");
export default {init() {const port = new SerialPort({path: 'COM3',baudRate: 115200,dataBits: 8,parity: 'none',stopBits: 1,flowControl: false,});port.on('data', (data) => {console.log('Data received:', data);// 在这里处理接收到的数据,或者通过IPC发送给渲染进程});port.on('error', (err) => {console.error('Error with serial port:', err);});}
}
CSDN 代码下载
https://download.csdn.net/download/qq_25430563/90459593