From b225cc24a5683380b26e48ff8f276b1f2e2525d2 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Sun, 14 Mar 2021 22:05:44 +0100 Subject: [PATCH] (wmr) - clear module-graph when the update isn't accepted (#430) * clear module-graph when the update isn't accepted * Update five-carrots-juggle.md --- .changeset/five-carrots-juggle.md | 5 +++++ packages/wmr/demo/public/index.tsx | 1 + packages/wmr/src/wmr-middleware.js | 4 ++++ 3 files changed, 10 insertions(+) create mode 100644 .changeset/five-carrots-juggle.md diff --git a/.changeset/five-carrots-juggle.md b/.changeset/five-carrots-juggle.md new file mode 100644 index 000000000..be9c3330e --- /dev/null +++ b/.changeset/five-carrots-juggle.md @@ -0,0 +1,5 @@ +--- +'wmr': patch +--- + +Fix reload issue, when the bubbling hmr doesn't find a proper boundary it will give the browser a refresh signal (F5) which needs to clear the module-graph as modules could still be marked as stale which wouldn't be needed diff --git a/packages/wmr/demo/public/index.tsx b/packages/wmr/demo/public/index.tsx index b6f2d1cf0..a96e52d2f 100644 --- a/packages/wmr/demo/public/index.tsx +++ b/packages/wmr/demo/public/index.tsx @@ -54,3 +54,4 @@ export async function prerender(data) { // @ts-ignore if (module.hot) module.hot.accept(u => hydrate(, document.body)); + diff --git a/packages/wmr/src/wmr-middleware.js b/packages/wmr/src/wmr-middleware.js index 81b1f56f4..171976c43 100644 --- a/packages/wmr/src/wmr-middleware.js +++ b/packages/wmr/src/wmr-middleware.js @@ -163,11 +163,15 @@ export default function wmrMiddleware({ pendingChanges.add('/' + filename); } else if (/\.(mjs|[tj]sx?)$/.test(filename)) { if (!bubbleUpdates(filename)) { + moduleGraph.clear(); + pendingChanges.clear(); clearTimeout(timeout); onChange({ reload: true }); } } else { WRITE_CACHE.delete(filename); + moduleGraph.clear(); + pendingChanges.clear(); clearTimeout(timeout); onChange({ reload: true }); }