fix: 修复linux下无法记录窗口大小和位置的问题; 修复主进程端口占用时无法自动切换端口的问题; feat: 统一程序关闭按钮的效果

This commit is contained in:
jcfun
2024-06-21 00:11:47 +08:00
parent 7d3d7696da
commit 54fb8e74a8
4 changed files with 4428 additions and 5511 deletions

View File

@@ -74,6 +74,7 @@ linux:
icon: public/imgs/icons/favicon-512x512.png
# 构建类型
target:
- pacman
- AppImage
- deb
- rpm

View File

@@ -152,7 +152,8 @@ class MainProcess {
}
// 生产模式
else {
this.mainWindow.loadURL(`http://127.0.0.1:${import.meta.env.MAIN_VITE_MAIN_PORT ?? 7899}`);
console.log("生产模式渲染端口: " + process.env.MAIN_VITE_MAIN_PORT ?? 7899);
this.mainWindow.loadURL(`http://127.0.0.1:${process.env.MAIN_VITE_MAIN_PORT ?? 7899}`);
}
// 配置网络代理
@@ -232,24 +233,21 @@ class MainProcess {
this.mainWindow.webContents.send("windowState", false);
});
this.mainWindow.on("resized", () => {
this.mainWindow.on("resize", () => {
this.store.set("windowSize", this.mainWindow.getBounds());
});
this.mainWindow.on("moved", () => {
this.mainWindow.on("move", () => {
this.store.set("windowSize", this.mainWindow.getBounds());
});
// 窗口关闭
this.mainWindow.on("close", (event) => {
if (platform.isLinux) {
app.quit();
event.preventDefault();
if (!app.isQuiting) {
this.mainWindow.hide();
} else {
if (!app.isQuiting) {
event.preventDefault();
this.mainWindow.hide();
}
return false;
app.exit();
}
});
}

View File

@@ -1,6 +1,7 @@
import { join } from "path";
import express from "express";
import expressProxy from "express-http-proxy";
import checkPort from "./utils/checkPort";
/**
* 启动主服务器
@@ -8,12 +9,14 @@ import expressProxy from "express-http-proxy";
*/
export const startMainServer = async () => {
const { MAIN_VITE_MAIN_PORT, MAIN_VITE_SERVER_HOST, MAIN_VITE_SERVER_PORT } = import.meta.env;
const port = MAIN_VITE_MAIN_PORT ?? 7899;
const port = await checkPort(MAIN_VITE_MAIN_PORT ?? 7899);
process.env.MAIN_VITE_MAIN_PORT = port;
const apiHost = `http://${MAIN_VITE_SERVER_HOST}:${MAIN_VITE_SERVER_PORT}`;
const expressApp = express();
// 代理
expressApp.use("/", express.static(join(__dirname, "../renderer/")));
expressApp.use("/api", expressProxy(apiHost));
console.log("生产模式主进程端口: ", port);
// 启动 Express 应用服务器,并监听指定端口
return expressApp.listen(port, "127.0.0.1");
};

9915
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff