From aeab93a1316639c9c298ff9ec72ebba6eed6b383 Mon Sep 17 00:00:00 2001 From: "zhanghang.heal" Date: Mon, 20 Oct 2025 19:22:14 +0800 Subject: [PATCH 1/2] fix(runtime-core): register share if not registered --- .changeset/friendly-oranges-drop.md | 5 +++++ packages/runtime-core/src/shared/index.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/friendly-oranges-drop.md diff --git a/.changeset/friendly-oranges-drop.md b/.changeset/friendly-oranges-drop.md new file mode 100644 index 00000000000..a0ce319237a --- /dev/null +++ b/.changeset/friendly-oranges-drop.md @@ -0,0 +1,5 @@ +--- +'@module-federation/runtime-core': patch +--- + +fix(runtime-core): register share if not registered diff --git a/packages/runtime-core/src/shared/index.ts b/packages/runtime-core/src/shared/index.ts index a1c24b6ce2a..606f9c5e55d 100644 --- a/packages/runtime-core/src/shared/index.ts +++ b/packages/runtime-core/src/shared/index.ts @@ -89,7 +89,7 @@ export class SharedHandler { sharedVal, this.hooks.lifecycle.resolveShare, ); - if (!registeredShared && sharedVal && sharedVal.lib) { + if (!registeredShared) { this.setShared({ pkgName: sharedKey, lib: sharedVal.lib, From b9485ef4ea64c1d21e8e247bf8495083a9c98624 Mon Sep 17 00:00:00 2001 From: "zhanghang.heal" Date: Mon, 3 Nov 2025 10:37:26 +0800 Subject: [PATCH 2/2] chore: fix ut --- packages/runtime-core/src/shared/index.ts | 31 ++++++++++------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/packages/runtime-core/src/shared/index.ts b/packages/runtime-core/src/shared/index.ts index 606f9c5e55d..8209f0df35b 100644 --- a/packages/runtime-core/src/shared/index.ts +++ b/packages/runtime-core/src/shared/index.ts @@ -83,22 +83,19 @@ export class SharedHandler { sharedKeys.forEach((sharedKey) => { const sharedVals = shareInfos[sharedKey]; sharedVals.forEach((sharedVal) => { - const registeredShared = getRegisteredShare( - this.shareScopeMap, - sharedKey, - sharedVal, - this.hooks.lifecycle.resolveShare, - ); - if (!registeredShared) { - this.setShared({ - pkgName: sharedKey, - lib: sharedVal.lib, - get: sharedVal.get, - loaded: true, - shared: sharedVal, - from: userOptions.name, - }); - } + sharedVal.scope.forEach((sc) => { + const registeredShared = this.shareScopeMap[sc]?.[sharedKey]; + if (!registeredShared) { + this.setShared({ + pkgName: sharedKey, + lib: sharedVal.lib, + get: sharedVal.get, + loaded: sharedVal.loaded || Boolean(sharedVal.lib), + shared: sharedVal, + from: userOptions.name, + }); + } + }); }); }); @@ -496,7 +493,7 @@ export class SharedHandler { if (!this.shareScopeMap[sc][pkgName][version]) { this.shareScopeMap[sc][pkgName][version] = { version, - scope: ['default'], + scope: [sc], ...shareInfo, lib, loaded,