72 lines
1.5 KiB
TypeScript
72 lines
1.5 KiB
TypeScript
|
|
/**
|
||
|
|
* electron 主文件
|
||
|
|
*/
|
||
|
|
import dotenv from 'dotenv';
|
||
|
|
import { app, BrowserWindow, ipcMain } from 'electron';
|
||
|
|
import is_dev from 'electron-is-dev';
|
||
|
|
// @ts-ignore
|
||
|
|
import Store from 'electron-store';
|
||
|
|
import { join } from 'path';
|
||
|
|
|
||
|
|
const store = new Store();
|
||
|
|
// @ts-ignore
|
||
|
|
ipcMain.on('store:set', async (e, args) => {
|
||
|
|
store.set(args.key, args.value);
|
||
|
|
});
|
||
|
|
// @ts-ignore
|
||
|
|
ipcMain.handle('store:get', async (e, args) => {
|
||
|
|
return await store.get(args);
|
||
|
|
});
|
||
|
|
// @ts-ignore
|
||
|
|
ipcMain.on('store:delete', async (e, args) => {
|
||
|
|
store.delete(args);
|
||
|
|
});
|
||
|
|
|
||
|
|
dotenv.config({ path: join(__dirname, '../../.env') });
|
||
|
|
|
||
|
|
let win = null;
|
||
|
|
|
||
|
|
class createWin {
|
||
|
|
// 创建浏览器窗口
|
||
|
|
constructor() {
|
||
|
|
// @ts-ignore
|
||
|
|
win = new BrowserWindow({
|
||
|
|
width: 930,
|
||
|
|
height: 700,
|
||
|
|
frame: false,
|
||
|
|
transparent: true,
|
||
|
|
webPreferences: {
|
||
|
|
devTools: true,
|
||
|
|
|
||
|
|
nodeIntegration: true,
|
||
|
|
enableRemoteModule: true,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
// win.webContents.openDevTools()
|
||
|
|
// @ts-ignore
|
||
|
|
win.maximize();
|
||
|
|
// win.maximize()
|
||
|
|
|
||
|
|
const URL = is_dev
|
||
|
|
? `http://localhost:${process.env.PORT}` // vite 启动的服务器地址
|
||
|
|
: `file://${join(__dirname, '../../dist/render/index.html')}`; // vite 构建后的静态文件地址
|
||
|
|
|
||
|
|
// @ts-ignore
|
||
|
|
win.loadURL(URL);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
app.whenReady().then(() => new createWin());
|
||
|
|
|
||
|
|
app.on('window-all-closed', () => {
|
||
|
|
if (process.platform !== 'darwin') {
|
||
|
|
app.quit();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
app.on('activate', () => {
|
||
|
|
if (BrowserWindow.getAllWindows().length === 0) {
|
||
|
|
new createWin();
|
||
|
|
}
|
||
|
|
});
|