From 88be4723793cddb7b21bbdfffaa245849b45d8fa Mon Sep 17 00:00:00 2001 From: Maxime GRIS Date: Sat, 6 May 2017 00:43:15 +0200 Subject: [PATCH] Suround electron browser by try/catch --- main.js | 133 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 69 insertions(+), 64 deletions(-) diff --git a/main.js b/main.js index 4971b66..7123ae8 100644 --- a/main.js +++ b/main.js @@ -1,73 +1,78 @@ 'use strict'; -const electron = require('electron'); -// Module to control application life. -const { app } = electron; -// Module to create native browser window. -const { BrowserWindow } = electron; +try { + const electron = require('electron'); + // Module to control application life. + const { app } = electron; + // Module to create native browser window. + const { BrowserWindow } = electron; -let win, serve; -const args = process.argv.slice(1); -serve = args.some(val => val === "--serve"); + let win, serve; + const args = process.argv.slice(1); + serve = args.some(val => val === "--serve"); -if (serve) { - require('electron-reload')(__dirname + '/dist'); -} - -function createWindow() { - - let electronScreen = electron.screen; - let size = electronScreen.getPrimaryDisplay().workAreaSize; - - // Create the browser window. - win = new BrowserWindow({ - x: 0, - y: 0, - width: size.width, - height: size.height - }); - - let url = serve ? - 'file://' + __dirname + '/dist/index.html' : - 'file://' + __dirname + '/index.html'; - - // and load the index.html of the app. - win.loadURL(url); - - // Open the DevTools. if (serve) { - win.webContents.openDevTools(); + require('electron-reload')(__dirname + '/dist'); } - // Emitted when the window is closed. - win.on('closed', () => { - // Dereference the window object, usually you would store window - // in an array if your app supports multi windows, this is the time - // when you should delete the corresponding element. - win = null; + function createWindow() { + + let electronScreen = electron.screen; + let size = electronScreen.getPrimaryDisplay().workAreaSize; + + // Create the browser window. + win = new BrowserWindow({ + x: 0, + y: 0, + width: size.width, + height: size.height + }); + + let url = serve ? + 'file://' + __dirname + '/dist/index.html' : + 'file://' + __dirname + '/index.html'; + + // and load the index.html of the app. + win.loadURL(url); + + // Open the DevTools. + if (serve) { + win.webContents.openDevTools(); + } + + // Emitted when the window is closed. + win.on('closed', () => { + // Dereference the window object, usually you would store window + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + win = null; + }); + } + + + // This method will be called when Electron has finished + // initialization and is ready to create browser windows. + // Some APIs can only be used after this event occurs. + app.on('ready', createWindow); + + // Quit when all windows are closed. + app.on('window-all-closed', () => { + // 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', () => { + // 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 (win === null) { + createWindow(); + } + }); + + +} catch (e) { + // Catch Error } - - -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.on('ready', createWindow); - -// Quit when all windows are closed. -app.on('window-all-closed', () => { - // 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', () => { - // 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 (win === null) { - createWindow(); - } -}); -