vue-vben-admin/config/electron/index.ts

72 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-06-07 12:36:48 +08:00
/**
* 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();
}
});