summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2018-11-19 13:20:14 +0100
committerAndrej Mihajlov <and@mullvad.net>2018-11-19 13:27:00 +0100
commit689b74d2a7b8e4bb1e71d101c9e1b52f79966835 (patch)
tree66ddcbef9f2739b0cce6555090852a287f2fac26
parent964a0ddaa72562411df0596a1e267ea86ee092e6 (diff)
downloadmullvadvpn-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.js45
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);
},
);