大致方法为安装创建Vue项目,并在项目中引入Electron
主要配置文件为:
新增文件夹目录如下:

main.js:
const { app, BrowserWindow } = require("electron");
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
},
});
win.loadURL("http://localhost:8080/");
win.webContents.openDevTools();
}
app.whenReady().then(createWindow);
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
electron-run-dev.js:
const { exec } = require("child_process");
let dev_vue_process = null;
let dev_electron_process = null;
init();
function init() {
if (dev_vue_process == null) {
dev_vue_process = exec("vue-cli-service serve", {});
dev_vue_process.stdout.on("data", (data) => {
electronLog(data);
if (data.indexOf("http") > -1) {
startElectron();
}
});
dev_vue_process.stderr.on("data", (data) => {
if (data.indexOf("<s> [webpack.Progress]") < 0) {
electronLog(data);
}
});
}
}
function startElectron() {
if (dev_electron_process == null) {
dev_electron_process = exec("electron .", {});
dev_electron_process.stdout.on("data", (data) => {
console.log(data);
});
dev_electron_process.stderr.on("data", (data) => {
console.log(data);
});
dev_electron_process.on("close", () => {
process.exit();
});
}
}
function electronLog(data) {
let log = "";
data = data.toString().split(/\r?\n/);
data.forEach((line) => {
log += ` ${line}\n`;
});
if (/[0-9A-z]+/.test(log)) {
console.log(
"┏ Electron -------------------" +
"\n\n" +
log +
"┗ ----------------------------" +
"\n"
);
}
}