refactor: reimplement hmrDownloadManifest in ESM to support more platforms
Github Actions / lint (push) Waiting to run Details
Github Actions / validate-legacy-node (push) Waiting to run Details
Github Actions / benchmark (1/4) (push) Waiting to run Details
Github Actions / benchmark (2/4) (push) Waiting to run Details
Github Actions / benchmark (3/4) (push) Waiting to run Details
Github Actions / benchmark (4/4) (push) Waiting to run Details
Github Actions / basic (push) Waiting to run Details
Github Actions / unit (push) Waiting to run Details
Github Actions / integration (10.x, macos-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (10.x, macos-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (10.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (10.x, ubuntu-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (10.x, windows-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (10.x, windows-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (12.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (14.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (16.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (18.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (20.x, macos-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (20.x, macos-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (20.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (20.x, ubuntu-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (20.x, windows-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (20.x, windows-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (22.x, macos-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (22.x, macos-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (22.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (22.x, ubuntu-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (22.x, windows-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (22.x, windows-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (24.x, macos-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (24.x, macos-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (24.x, ubuntu-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (24.x, ubuntu-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (24.x, windows-latest, a) (push) Blocked by required conditions Details
Github Actions / integration (24.x, windows-latest, b) (push) Blocked by required conditions Details
Github Actions / integration (lts/*, ubuntu-latest, a, 1) (push) Blocked by required conditions Details
Github Actions / integration (lts/*, ubuntu-latest, b, 1) (push) Blocked by required conditions Details

This commit is contained in:
Natsu Xiao 2025-06-27 02:11:41 +08:00 committed by GitHub
parent 22c0d02e66
commit 0e4a7ce73f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 15 additions and 8 deletions

View File

@ -830,7 +830,10 @@ To fix this, make sure to include [runtime] in the output.hotUpdateMainFilename
) )
}; };
const source = new RawSource(JSON.stringify(hotUpdateMainJson)); const source = new RawSource(
(filename.endsWith(".json") ? "" : "export default ") +
JSON.stringify(hotUpdateMainJson)
);
compilation.emitAsset(filename, source, { compilation.emitAsset(filename, source, {
hotModuleReplacement: true, hotModuleReplacement: true,
...assetInfo ...assetInfo

View File

@ -1276,7 +1276,11 @@ const applyOutputDefaults = (
"hotUpdateChunkFilename", "hotUpdateChunkFilename",
`[id].[fullhash].hot-update.${output.module ? "mjs" : "js"}` `[id].[fullhash].hot-update.${output.module ? "mjs" : "js"}`
); );
D(output, "hotUpdateMainFilename", "[runtime].[fullhash].hot-update.json"); D(
output,
"hotUpdateMainFilename",
`[runtime].[fullhash].hot-update.${output.module ? "json.mjs" : "json"}`
);
D(output, "crossOriginLoading", false); D(output, "crossOriginLoading", false);
F(output, "scriptType", () => (output.module ? "module" : false)); F(output, "scriptType", () => (output.module ? "module" : false));
D( D(

View File

@ -424,13 +424,10 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
`${ `${
RuntimeGlobals.hmrDownloadManifest RuntimeGlobals.hmrDownloadManifest
} = ${runtimeTemplate.basicFunction("", [ } = ${runtimeTemplate.basicFunction("", [
'if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API");', `return ${importFunctionName}(/* webpackIgnore: true */ ${RuntimeGlobals.publicPath} + ${
`return fetch(${RuntimeGlobals.publicPath} + ${
RuntimeGlobals.getUpdateManifestFilename RuntimeGlobals.getUpdateManifestFilename
}()).then(${runtimeTemplate.basicFunction("response", [ }()).then(${runtimeTemplate.basicFunction("obj", [
"if(response.status === 404) return; // no update available", "return obj.default;"
'if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText);',
"return response.json();"
])});` ])});`
])};` ])};`
]) ])

View File

@ -968,6 +968,9 @@ describe("snapshots", () => {
- "hotUpdateChunkFilename": "[id].[fullhash].hot-update.js", - "hotUpdateChunkFilename": "[id].[fullhash].hot-update.js",
+ "hotUpdateChunkFilename": "[id].[fullhash].hot-update.mjs", + "hotUpdateChunkFilename": "[id].[fullhash].hot-update.mjs",
@@ ... @@ @@ ... @@
- "hotUpdateMainFilename": "[runtime].[fullhash].hot-update.json",
+ "hotUpdateMainFilename": "[runtime].[fullhash].hot-update.json.mjs",
@@ ... @@
- "iife": true, - "iife": true,
+ "iife": false, + "iife": false,
@@ ... @@ @@ ... @@