From 1fb7538dfe3260d8f75d0fa366fa81da03760301 Mon Sep 17 00:00:00 2001 From: "Xin Du (Clark)" Date: Wed, 13 Mar 2019 19:15:26 +0000 Subject: [PATCH] fix: publicPath is not reactive in dev restarting (#5227) --- packages/server/src/middleware/modern.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/server/src/middleware/modern.js b/packages/server/src/middleware/modern.js index 1ee541ac73..ddc4a32cf0 100644 --- a/packages/server/src/middleware/modern.js +++ b/packages/server/src/middleware/modern.js @@ -23,17 +23,13 @@ const isModernBrowser = (ua) => { return Boolean(modernBrowsers[browser.name] && semver.gte(browserVersion, modernBrowsers[browser.name])) } -let detected = false - const distinctModernModeOptions = [false, 'client', 'server'] const detectModernBuild = ({ options, resources }) => { - if (detected || distinctModernModeOptions.includes(options.modern)) { + if (distinctModernModeOptions.includes(options.modern)) { return } - detected = true - if (!resources.modernManifest) { options.modern = false return @@ -52,10 +48,16 @@ const detectModernBrowser = ({ socket = {}, headers }) => { return socket.isModernBrowser } -export default ({ context }) => (req, res, next) => { - detectModernBuild(context) - if (context.options.modern !== false) { - req.modernMode = detectModernBrowser(req) +export default ({ context }) => { + let detected = false + return (req, res, next) => { + if (!detected) { + detectModernBuild(context) + detected = true + } + if (context.options.modern !== false) { + req.modernMode = detectModernBrowser(req) + } + next() } - next() }