From b6b5977f5d5d15468781fc44cfd4288cd1d9b20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=90=E4=BB=95=E4=BC=9F?= Date: Sun, 20 Mar 2022 20:45:46 +0800 Subject: [PATCH 1/2] fix: hmr module.check api when called with false --- lib/web/JsonpChunkLoadingRuntimeModule.js | 3 ++- test/hotCases/status/check/file.js | 3 +++ test/hotCases/status/check/index.js | 6 ++++++ test/hotCases/status/check/update.js | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 test/hotCases/status/check/file.js create mode 100644 test/hotCases/status/check/index.js create mode 100644 test/hotCases/status/check/update.js diff --git a/lib/web/JsonpChunkLoadingRuntimeModule.js b/lib/web/JsonpChunkLoadingRuntimeModule.js index 972d1e23b..31be4e3d7 100644 --- a/lib/web/JsonpChunkLoadingRuntimeModule.js +++ b/lib/web/JsonpChunkLoadingRuntimeModule.js @@ -286,8 +286,9 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule { ? Template.asString([ "var currentUpdatedModulesList;", "var waitingUpdateResolves = {};", - "function loadUpdateChunk(chunkId) {", + "function loadUpdateChunk(chunkId, updatedModulesList) {", Template.indent([ + `if (updatedModulesList) currentUpdatedModulesList = updatedModulesList;`, `return new Promise(${runtimeTemplate.basicFunction( "resolve, reject", [ diff --git a/test/hotCases/status/check/file.js b/test/hotCases/status/check/file.js new file mode 100644 index 000000000..5b2c52ba4 --- /dev/null +++ b/test/hotCases/status/check/file.js @@ -0,0 +1,3 @@ +export var value = 1; +--- +export var value = 2; diff --git a/test/hotCases/status/check/index.js b/test/hotCases/status/check/index.js new file mode 100644 index 000000000..65462492c --- /dev/null +++ b/test/hotCases/status/check/index.js @@ -0,0 +1,6 @@ +import { value } from "./file"; + +it("call module.check api with false should return updatedModules correcttly", function (done) { + expect(value).toBe(1); + NEXT(require("./update")(done)); +}); diff --git a/test/hotCases/status/check/update.js b/test/hotCases/status/check/update.js new file mode 100644 index 000000000..c1e1b7a9b --- /dev/null +++ b/test/hotCases/status/check/update.js @@ -0,0 +1,15 @@ +module.exports = function (done) { + return function (err, stats) { + if (err) return done(err); + module.hot + .check(false) + .then(updatedModules => { + if (!updatedModules) return done(new Error("No update available")); + expect(updatedModules).toContain("./file.js"); + done(); + }) + .catch(err => { + done(err); + }); + }; +}; From bfd057c15845012c396029ffde5a05135b4e0020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=90=E4=BB=95=E4=BC=9F?= Date: Sun, 20 Mar 2022 20:58:02 +0800 Subject: [PATCH 2/2] fix typo --- test/hotCases/status/check/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/hotCases/status/check/index.js b/test/hotCases/status/check/index.js index 65462492c..e16a13f05 100644 --- a/test/hotCases/status/check/index.js +++ b/test/hotCases/status/check/index.js @@ -1,6 +1,6 @@ import { value } from "./file"; -it("call module.check api with false should return updatedModules correcttly", function (done) { +it("call module.check api with false should return updatedModules correctly", function (done) { expect(value).toBe(1); NEXT(require("./update")(done)); });