diff --git a/.changeset/fresh-baboons-train.md b/.changeset/fresh-baboons-train.md new file mode 100644 index 00000000000..bd7820d402f --- /dev/null +++ b/.changeset/fresh-baboons-train.md @@ -0,0 +1,5 @@ +--- +'@module-federation/runtime': patch +--- + +fix(runtime): nativeGlobal is undefined diff --git a/packages/runtime/__tests__/preload-remote.spec.ts b/packages/runtime/__tests__/preload-remote.spec.ts index 35623a6e8da..80a2cf4a9e4 100644 --- a/packages/runtime/__tests__/preload-remote.spec.ts +++ b/packages/runtime/__tests__/preload-remote.spec.ts @@ -237,7 +237,7 @@ describe('preload-remote inBrowser', () => { beforeEach(() => { document.head.innerHTML = ''; document.body.innerHTML = ''; - globalThis.__FEDERATION__.__PRELOADED_MAP__.clear(); + Global.__FEDERATION__.__PRELOADED_MAP__.clear(); }); const FMInstance = init({ @@ -284,14 +284,12 @@ describe('preload-remote inBrowser', () => { ]); expect(getPreloadElInfos()).toMatchSnapshot(); - expect(globalThis.__FEDERATION__.__PRELOADED_MAP__.size).toBe(2); + expect(Global.__FEDERATION__.__PRELOADED_MAP__.size).toBe(2); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get( - '@federation/sub1/button', - ), + Global.__FEDERATION__.__PRELOADED_MAP__.get('@federation/sub1/button'), ).toBe(true); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get( + Global.__FEDERATION__.__PRELOADED_MAP__.get( '@federation/sub1-button/button', ), ).toBe(true); @@ -309,21 +307,17 @@ describe('preload-remote inBrowser', () => { ]); expect(getPreloadElInfos()).toMatchSnapshot(); - expect(globalThis.__FEDERATION__.__PRELOADED_MAP__.size).toBe(3); + expect(Global.__FEDERATION__.__PRELOADED_MAP__.size).toBe(3); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get( - '@federation/sub2/button', - ), + Global.__FEDERATION__.__PRELOADED_MAP__.get('@federation/sub2/button'), ).toBe(true); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get( + Global.__FEDERATION__.__PRELOADED_MAP__.get( '@federation/sub2-button/button', ), ).toBe(true); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get( - '@federation/sub2-add/add', - ), + Global.__FEDERATION__.__PRELOADED_MAP__.get('@federation/sub2-add/add'), ).toBe(true); reset(); }); @@ -331,7 +325,7 @@ describe('preload-remote inBrowser', () => { it('3 preload with expose config ', async () => { const reset = addGlobalSnapshot(mockSnapshot); - expect(globalThis.__FEDERATION__.__PRELOADED_MAP__.size).toBe(0); + expect(Global.__FEDERATION__.__PRELOADED_MAP__.size).toBe(0); await FMInstance.preloadRemote([ { nameOrAlias: '@federation/sub3', @@ -341,9 +335,9 @@ describe('preload-remote inBrowser', () => { ]); expect(getPreloadElInfos()).toMatchSnapshot(); - expect(globalThis.__FEDERATION__.__PRELOADED_MAP__.size).toBe(1); + expect(Global.__FEDERATION__.__PRELOADED_MAP__.size).toBe(1); expect( - globalThis.__FEDERATION__.__PRELOADED_MAP__.get('@federation/sub3/add'), + Global.__FEDERATION__.__PRELOADED_MAP__.get('@federation/sub3/add'), ).toBe(true); await FMInstance.preloadRemote([ diff --git a/packages/runtime/src/global.ts b/packages/runtime/src/global.ts index c45206ac793..75939143cd2 100644 --- a/packages/runtime/src/global.ts +++ b/packages/runtime/src/global.ts @@ -24,7 +24,7 @@ export interface Federation { export const nativeGlobal: typeof global = (() => { try { - return new Function('return this'); + return new Function('return this')(); } catch { return globalThis; }