From fda52baed51a123dee798f5cc98fe6748ced48e6 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 30 Sep 2021 10:58:17 -0400 Subject: [PATCH 1/5] Enable multiserver in development environments --- src/scripts/settings/webSettings.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index ca67b72cc5..3a87fd65de 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -72,7 +72,9 @@ export function getIncludeCorsCredentials() { export function getMultiServer() { return getConfig().then(config => { - return !!config.multiserver; + // Enable multi-server support in development environments + return process.env.NODE_ENV === 'development' // eslint-disable-line no-undef + || !!config.multiserver; }).catch(error => { console.log('cannot get web config:', error); return false; From 3b4ff707093d6201dd77f7ceede21213a224b919 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Mon, 4 Oct 2021 01:03:46 -0400 Subject: [PATCH 2/5] Add custom variable check for webpack dev server --- src/scripts/settings/webSettings.js | 8 +++++--- src/serviceworker.js | 4 ++-- webpack.dev.js | 6 ++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 3a87fd65de..8d1e038545 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -72,9 +72,11 @@ export function getIncludeCorsCredentials() { export function getMultiServer() { return getConfig().then(config => { - // Enable multi-server support in development environments - return process.env.NODE_ENV === 'development' // eslint-disable-line no-undef - || !!config.multiserver; + // Enable multi-server support when served by webpack + if (process.env.WEBPACK_SERVE) { // eslint-disable-line no-undef + return true; + } + return !!config.multiserver; }).catch(error => { console.log('cannot get web config:', error); return false; diff --git a/src/serviceworker.js b/src/serviceworker.js index 770f5de5c0..1f38e2e5ad 100644 --- a/src/serviceworker.js +++ b/src/serviceworker.js @@ -45,8 +45,8 @@ self.addEventListener('notificationclick', function (event) { }, false); // Do not precache files in development so live reload works as expected -/* eslint-disable-next-line no-undef -- NODE_ENV is replaced by webpack */ -if (process.env.NODE_ENV === 'production') { +/* eslint-disable-next-line no-undef -- WEBPACK_SERVE is replaced by webpack */ +if (process.env.WEBPACK_SERVE) { // this is needed by the webpack Workbox plugin /* eslint-disable-next-line no-restricted-globals,no-undef */ precacheAndRoute(self.__WB_MANIFEST); diff --git a/webpack.dev.js b/webpack.dev.js index 890dd0eac6..b66c8ddf01 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -1,5 +1,6 @@ const common = require('./webpack.common'); const { merge } = require('webpack-merge'); +const { DefinePlugin } = require('webpack'); module.exports = merge(common, { // In order for live reload to work we must use "web" as the target not "browserlist" @@ -23,6 +24,11 @@ module.exports = merge(common, { } ] }, + plugins: [ + new DefinePlugin({ + 'process.env.WEBPACK_SERVE': true + }) + ], devServer: { compress: true, client: { From eccd79c4e0dc212a8044c4583e9250b23e5153d2 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Mon, 4 Oct 2021 11:31:50 -0400 Subject: [PATCH 3/5] Fix webpack dev server checks --- src/scripts/settings/webSettings.js | 2 +- src/serviceworker.js | 5 ++--- webpack.dev.js | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 8d1e038545..2eb1bcbd4f 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -73,7 +73,7 @@ export function getIncludeCorsCredentials() { export function getMultiServer() { return getConfig().then(config => { // Enable multi-server support when served by webpack - if (process.env.WEBPACK_SERVE) { // eslint-disable-line no-undef + if (__WEBPACK_SERVE__) { // eslint-disable-line no-undef return true; } return !!config.multiserver; diff --git a/src/serviceworker.js b/src/serviceworker.js index 1f38e2e5ad..ca4ea5efe8 100644 --- a/src/serviceworker.js +++ b/src/serviceworker.js @@ -44,9 +44,8 @@ self.addEventListener('notificationclick', function (event) { event.waitUntil(executeAction(action, data, serverId)); }, false); -// Do not precache files in development so live reload works as expected -/* eslint-disable-next-line no-undef -- WEBPACK_SERVE is replaced by webpack */ -if (process.env.WEBPACK_SERVE) { +// Do not precache files when running with webpack dev server so live reload works as expected +if (!__WEBPACK_SERVE__) { // eslint-disable-line no-undef // this is needed by the webpack Workbox plugin /* eslint-disable-next-line no-restricted-globals,no-undef */ precacheAndRoute(self.__WB_MANIFEST); diff --git a/webpack.dev.js b/webpack.dev.js index b66c8ddf01..4dc76aee3c 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -26,7 +26,7 @@ module.exports = merge(common, { }, plugins: [ new DefinePlugin({ - 'process.env.WEBPACK_SERVE': true + __WEBPACK_SERVE__: true }) ], devServer: { From 7b797aff4384f9cf3075c826c85789a07b982db2 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 5 Oct 2021 00:26:00 -0400 Subject: [PATCH 4/5] Fix webpack dev server checks --- webpack.common.js | 4 ++++ webpack.dev.js | 6 ------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/webpack.common.js b/webpack.common.js index b09bb95351..99f7272fd3 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -2,6 +2,7 @@ const path = require('path'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); +const { DefinePlugin } = require('webpack'); const Assets = [ 'native-promise-only/npo.js', @@ -30,6 +31,9 @@ module.exports = { ] }, plugins: [ + new DefinePlugin({ + __WEBPACK_SERVE__: JSON.stringify(!!process.env.WEBPACK_SERVE) + }), new CleanWebpackPlugin(), new HtmlWebpackPlugin({ filename: 'index.html', diff --git a/webpack.dev.js b/webpack.dev.js index 4dc76aee3c..890dd0eac6 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -1,6 +1,5 @@ const common = require('./webpack.common'); const { merge } = require('webpack-merge'); -const { DefinePlugin } = require('webpack'); module.exports = merge(common, { // In order for live reload to work we must use "web" as the target not "browserlist" @@ -24,11 +23,6 @@ module.exports = merge(common, { } ] }, - plugins: [ - new DefinePlugin({ - __WEBPACK_SERVE__: true - }) - ], devServer: { compress: true, client: { From 6ce7bf845869a6d010265894b02c07f0cb22d818 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Wed, 6 Oct 2021 23:34:26 -0400 Subject: [PATCH 5/5] Skip loading config for multiserver when served by webpack Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com> --- src/scripts/settings/webSettings.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 2eb1bcbd4f..517b7fe0e2 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -71,11 +71,12 @@ export function getIncludeCorsCredentials() { } export function getMultiServer() { + // Enable multi-server support when served by webpack + if (__WEBPACK_SERVE__) { // eslint-disable-line no-undef + return Promise.resolve(true); + } + return getConfig().then(config => { - // Enable multi-server support when served by webpack - if (__WEBPACK_SERVE__) { // eslint-disable-line no-undef - return true; - } return !!config.multiserver; }).catch(error => { console.log('cannot get web config:', error);