chore: Electron 主进程脚手架

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MikiVL
2026-05-05 13:32:43 +08:00
co-authored by Claude Sonnet 4.6
parent 8fe2d2bb88
commit 68f90f4e4c
4 changed files with 6926 additions and 6 deletions
+34
View File
@@ -0,0 +1,34 @@
const { app, BrowserWindow } = require("electron");
const path = require("path");
const isDev = process.env.NODE_ENV === "development";
function createWindow() {
const win = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
preload: path.join(__dirname, "preload.js"),
contextIsolation: true,
nodeIntegration: false,
},
});
if (isDev) {
win.loadURL("http://localhost:5173");
win.webContents.openDevTools();
} else {
win.loadFile(path.join(__dirname, "../renderer/dist/index.html"));
}
}
app.whenReady().then(() => {
require("./db/init");
require("./ipc/templateIpc");
require("./ipc/generateIpc");
createWindow();
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") app.quit();
});
+17
View File
@@ -0,0 +1,17 @@
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("api", {
listTemplates: () => ipcRenderer.invoke("template:list"),
saveTemplate: (data) => ipcRenderer.invoke("template:save", data),
updateTemplate: (id, data) => ipcRenderer.invoke("template:update", id, data),
deleteTemplate: (id) => ipcRenderer.invoke("template:delete", id),
parseTemplate: (filePath) => ipcRenderer.invoke("template:parse", filePath),
selectFile: (filters) => ipcRenderer.invoke("file:select", filters),
selectDirectory: () => ipcRenderer.invoke("file:selectDir"),
openDirectory: (dirPath) => ipcRenderer.invoke("file:openDir", dirPath),
copyFileToAppData: (srcPath, templateId) =>
ipcRenderer.invoke("file:copyToAppData", srcPath, templateId),
generate: (req) => ipcRenderer.invoke("generate:run", req),
});