From d0bb83f88564aa7fc68a4cca17acb99832751a03 Mon Sep 17 00:00:00 2001 From: nameofname Date: Tue, 8 Apr 2025 17:56:26 -0400 Subject: [PATCH 1/3] fix: remove chunks from installedChunks on fail to enable retries --- packages/node/src/runtimePlugin.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/node/src/runtimePlugin.ts b/packages/node/src/runtimePlugin.ts index 3ea2dc94535..2262d00578c 100644 --- a/packages/node/src/runtimePlugin.ts +++ b/packages/node/src/runtimePlugin.ts @@ -235,6 +235,15 @@ export const installChunk = ( } }; +// Hoisted utility function to remove a chunk on fail +export const deleteChunk = ( + chunkId: string, + installedChunks: { [key: string]: any }, +): boolean => { + delete installedChunks[chunkId]; + return true; +} + // Hoisted function to set up webpack script loader export const setupScriptLoader = (): void => { __webpack_require__.l = ( @@ -297,7 +306,7 @@ export const setupChunkHandler = ( chunkId, __webpack_require__.federation.rootOutputDir || '', (err, chunk) => { - if (err) return reject(err); + if (err) return deleteChunk(chunkId, installedChunks) && reject(err); if (chunk) installChunk(chunk, installedChunks); resolve(chunk); }, @@ -312,7 +321,7 @@ export const setupChunkHandler = ( chunkName, __webpack_require__.federation.initOptions.name, (err, chunk) => { - if (err) return reject(err); + if (err) return deleteChunk(chunkId, installedChunks) && reject(err); if (chunk) installChunk(chunk, installedChunks); resolve(chunk); }, From e421d9696307c440c0dbe1868c8477c46aba611f Mon Sep 17 00:00:00 2001 From: Ron Date: Wed, 9 Apr 2025 21:17:46 -0400 Subject: [PATCH 2/3] chore: added changeset for @module-federation/node --- .changeset/green-crews-melt.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/green-crews-melt.md diff --git a/.changeset/green-crews-melt.md b/.changeset/green-crews-melt.md new file mode 100644 index 00000000000..98b11dd3641 --- /dev/null +++ b/.changeset/green-crews-melt.md @@ -0,0 +1,5 @@ +--- +'@module-federation/node': patch +--- + +fix: remove chunks from installedChunks on fail to enable retries From 4e00512d7123058608682a0e407b531ae7fd6e75 Mon Sep 17 00:00:00 2001 From: Ron Date: Fri, 11 Apr 2025 09:33:38 -0400 Subject: [PATCH 3/3] chore: npx nx format:write @module-federation/node --- packages/node/src/runtimePlugin.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/node/src/runtimePlugin.ts b/packages/node/src/runtimePlugin.ts index 2262d00578c..73ec86344ca 100644 --- a/packages/node/src/runtimePlugin.ts +++ b/packages/node/src/runtimePlugin.ts @@ -242,7 +242,7 @@ export const deleteChunk = ( ): boolean => { delete installedChunks[chunkId]; return true; -} +}; // Hoisted function to set up webpack script loader export const setupScriptLoader = (): void => { @@ -306,7 +306,8 @@ export const setupChunkHandler = ( chunkId, __webpack_require__.federation.rootOutputDir || '', (err, chunk) => { - if (err) return deleteChunk(chunkId, installedChunks) && reject(err); + if (err) + return deleteChunk(chunkId, installedChunks) && reject(err); if (chunk) installChunk(chunk, installedChunks); resolve(chunk); }, @@ -321,7 +322,8 @@ export const setupChunkHandler = ( chunkName, __webpack_require__.federation.initOptions.name, (err, chunk) => { - if (err) return deleteChunk(chunkId, installedChunks) && reject(err); + if (err) + return deleteChunk(chunkId, installedChunks) && reject(err); if (chunk) installChunk(chunk, installedChunks); resolve(chunk); },