diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-11-19 13:20:14 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-11-19 13:27:00 +0100 |
| commit | 689b74d2a7b8e4bb1e71d101c9e1b52f79966835 (patch) | |
| tree | 66ddcbef9f2739b0cce6555090852a287f2fac26 | |
| parent | 964a0ddaa72562411df0596a1e267ea86ee092e6 (diff) | |
| download | mullvadvpn-689b74d2a7b8e4bb1e71d101c9e1b52f79966835.tar.xz mullvadvpn-689b74d2a7b8e4bb1e71d101c9e1b52f79966835.zip | |
Backport https://github.com/jschr/electron-react-redux-boilerplate/pull/70
| -rw-r--r-- | gui/packages/desktop/scripts/serve.js | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/gui/packages/desktop/scripts/serve.js b/gui/packages/desktop/scripts/serve.js index 03abeab2c2..d1f7a81c67 100644 --- a/gui/packages/desktop/scripts/serve.js +++ b/gui/packages/desktop/scripts/serve.js @@ -1,5 +1,5 @@ -import electron from 'electron'; import { spawn } from 'child_process'; +import electron from 'electron'; import browserSync from 'browser-sync'; import browserSyncConnectUtils from 'browser-sync/dist/connect-utils'; @@ -15,6 +15,27 @@ const getClientUrl = (options) => { return getRootUrl(options) + pathname; }; +function runElectron(browserSyncUrl) { + const child = spawn(electron, ['.', '--enable-logging'], { + env: { + ...{ + NODE_ENV: 'development', + BROWSER_SYNC_CLIENT_URL: browserSyncUrl, + }, + ...process.env, + }, + stdio: 'inherit', + }); + + child.on('close', onCloseElectron); + + return child; +} + +function onCloseElectron() { + process.exit(); +} + bsync.init( { ui: false, @@ -33,21 +54,17 @@ bsync.init( (err, bs) => { if (err) return console.error(err); - const child = spawn(electron, ['.'], { - env: { - ...{ - NODE_ENV: 'development', - BROWSER_SYNC_CLIENT_URL: getClientUrl(bs.options), - }, - ...process.env, - }, - stdio: 'inherit', - }); + const browserSyncUrl = getClientUrl(bs.options); + + let child = runElectron(browserSyncUrl); + + bsync.watch('build/main/**/*').on('change', () => { + child.removeListener('close', onCloseElectron); + child.kill(); - child.on('close', () => { - process.exit(); + child = runElectron(browserSyncUrl); }); - bsync.watch('build/**/*').on('change', bsync.reload); + bsync.watch('build/renderer/**/*').on('change', bsync.reload); }, ); |
