From 1474f14fc0d9619be3760dc0b0f23bc296a5ea7e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 23 Mar 2021 18:07:35 +0000 Subject: [PATCH] fix(server): avoid caching `.js` assets in development to fix HMR for safari (#9034) --- packages/server/src/server.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/server/src/server.js b/packages/server/src/server.js index 70c734dd25..516af98083 100644 --- a/packages/server/src/server.js +++ b/packages/server/src/server.js @@ -114,6 +114,12 @@ export default class Server { if (!this.devMiddleware) { return next() } + // Safari over-caches JS (breaking HMR) and the seemingly only way to turn + // this off in dev mode is to set Vary: * header + // #3828, #9034 + if (req.url.startsWith(this.publicPath) && req.url.endsWith('.js')) { + res.setHeader('Vary', '*') + } this.devMiddleware(req, res, next) })