From 6b6c9ec77b8afc7c67eb47c60d801b0ba18299c1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sat, 14 Mar 2020 14:43:48 +0100 Subject: [PATCH] electron build --- app/package.json | 6 ++-- app/src/electron.js | 67 ++++++++++++++++++++------------------- packages/web/package.json | 1 + packages/web/src/icons.js | 3 +- 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/app/package.json b/app/package.json index c4cd084c1..cf7acc332 100644 --- a/app/package.json +++ b/app/package.json @@ -11,8 +11,7 @@ }, "linux": { "target": [ - "AppImage", - "deb" + "AppImage" ] }, "win": { @@ -27,9 +26,10 @@ "scripts": { "start": "cross-env ELECTRON_START_URL=http://localhost:5000 electron .", "dist": "electron-builder", + "build": "cd ../packages/api && yarn build && cd ../web && yarn build:app && cd ../../app && yarn dist", "wait-electron": "node src/electron-wait-react", "postinstall": "electron-builder install-app-deps", - "predist": "copyfiles ../packages/api/dist/* packages -f && copyfiles \"../packages/web/build/*\" packages -f && copyfiles \"../packages/web/build/**/*\" packages -f " + "predist": "copyfiles ../packages/api/dist/* packages && copyfiles \"../packages/web/build/*\" packages && copyfiles \"../packages/web/build/**/*\" packages" }, "main": "src/electron.js", "devDependencies": { diff --git a/app/src/electron.js b/app/src/electron.js index f772a7756..d27fb04ba 100644 --- a/app/src/electron.js +++ b/app/src/electron.js @@ -13,31 +13,34 @@ const url = require('url'); let mainWindow; function createWindow() { - // Create the browser window. - mainWindow = new BrowserWindow({width: 800, height: 600}); + // Create the browser window. + mainWindow = new BrowserWindow({ width: 800, height: 600 }); - const apiProcess = fork(path.join(__dirname, '../packages/api/dist/bundle.js')); + const apiProcess = fork(path.join(__dirname, '../packages/api/dist/bundle.js')); + console.log('API PROCESS', apiProcess); - const startUrl = process.env.ELECTRON_START_URL || url.format({ - pathname: path.join(__dirname, '../packages/web/build/index.html'), - protocol: 'file:', - slashes: true + const startUrl = + process.env.ELECTRON_START_URL || + url.format({ + pathname: path.join(__dirname, '../packages/web/build/index.html'), + protocol: 'file:', + slashes: true, }); - mainWindow.loadURL(startUrl); + mainWindow.loadURL(startUrl); - // and load the index.html of the app. - // mainWindow.loadURL('http://localhost:3000'); + // and load the index.html of the app. + // mainWindow.loadURL('http://localhost:3000'); - // Open the DevTools. - // mainWindow.webContents.openDevTools(); + // Open the DevTools. + // mainWindow.webContents.openDevTools(); - // Emitted when the window is closed. - mainWindow.on('closed', function () { - // Dereference the window object, usually you would store windows - // in an array if your app supports multi windows, this is the time - // when you should delete the corresponding element. - mainWindow = null - }) + // Emitted when the window is closed. + mainWindow.on('closed', function() { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + mainWindow = null; + }); } // This method will be called when Electron has finished @@ -46,21 +49,21 @@ function createWindow() { app.on('ready', createWindow); // Quit when all windows are closed. -app.on('window-all-closed', function () { - // On OS X 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('window-all-closed', function() { + // On OS X 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', function () { - // On OS X 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 (mainWindow === null) { - createWindow() - } +app.on('activate', function() { + // On OS X 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 (mainWindow === null) { + createWindow(); + } }); // In this file you can include the rest of your app's specific main process -// code. You can also put them in separate files and require them here. \ No newline at end of file +// code. You can also put them in separate files and require them here. diff --git a/packages/web/package.json b/packages/web/package.json index 6bd0ec991..fe89417d1 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -30,6 +30,7 @@ "start": "cross-env PORT=5000 react-scripts start", "start:silent": "cross-env BROWSER=none PORT=5000 react-scripts start", "build": "react-scripts build", + "build:app": "cross-env PUBLIC_URL=. react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "ts": "tsc" diff --git a/packages/web/src/icons.js b/packages/web/src/icons.js index 25bf7e57f..a879896f5 100644 --- a/packages/web/src/icons.js +++ b/packages/web/src/icons.js @@ -5,7 +5,8 @@ export function getIconImage(src, props) { const { size = 16, style = {}, className, title } = props || {}; if (!src) return null; if (src.endsWith('.svg')) { - src = '/icons/' + src; + // eslint-disable-next-line + src = `${process.env.PUBLIC_URL}/icons/${src}`; } // if (props.alignToLine) { // style["position"] = "relative";