Switch from electron-webpack to electron-forge

This commit is contained in:
Matthias Schiffer 2020-02-22 17:35:19 +01:00
parent d35a68caf3
commit 9eed5c04ff
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C
10 changed files with 1777 additions and 2615 deletions

View file

@ -1,60 +1,40 @@
import { app, BrowserWindow } from 'electron';
import * as path from 'path';
import { format as formatUrl } from 'url';
declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
const isDevelopment = process.env.NODE_ENV !== 'production';
// global reference to mainWindow (necessary to prevent window from being garbage collected)
let mainWindow: BrowserWindow | null = null;
app.allowRendererProcessReuse = true;
function getIndexURL(): string {
if (isDevelopment) {
return `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT}`;
}
return formatUrl({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file',
slashes: true,
});
}
function createMainWindow(): BrowserWindow {
function createWindow(): void {
const window = new BrowserWindow({ webPreferences: { nodeIntegration: true } });
window.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);
if (isDevelopment) {
window.webContents.openDevTools();
}
window.loadURL(getIndexURL());
window.on('closed', () => {
mainWindow = null;
});
window.webContents.on('devtools-opened', () => {
window.webContents.focus();
});
return window;
}
// quit application when all windows are closed
app.on('window-all-closed', () => {
// on macOS it is common for applications to stay open until the user explicitly quits
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
// on macOS it is common to re-create a window even after all windows have been closed
if (!mainWindow) {
mainWindow = createMainWindow();
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
// create main BrowserWindow when electron is ready
app.on('ready', () => {
mainWindow = createMainWindow();
});
app.on('ready', createWindow);

11
src/renderer/index.html Normal file
View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
<title>RPGedit</title>
</head>
<body>
<div id="app"></div>
</body>
</html>