From b786990a83054cfa70a52eb2fa98c5607d852791 Mon Sep 17 00:00:00 2001 From: "zhaoyi.1996" Date: Tue, 14 Mar 2023 11:49:32 +0800 Subject: [PATCH] fix: systemjs dynamically import error --- packages/lib/src/dev/remote-development.ts | 7 +++++-- packages/lib/src/prod/remote-production.ts | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/lib/src/dev/remote-development.ts b/packages/lib/src/dev/remote-development.ts index 1205d272..76de52ed 100644 --- a/packages/lib/src/dev/remote-development.ts +++ b/packages/lib/src/dev/remote-development.ts @@ -96,7 +96,10 @@ async function __federation_method_ensure(remoteId) { return new Promise((resolve, reject) => { const getUrl = typeof remote.url === 'function' ? remote.url : () => Promise.resolve(remote.url); getUrl().then(url => { - import(/* @vite-ignore */ url).then(lib => { + const importer = remote.format === 'systemjs' + ? System.import(/* @vite-ignore */ url) + : import(/* @vite-ignore */ url) + importer.then(lib => { if (!remote.inited) { const shareScope = wrapShareScope(remote.from) lib.init(shareScope); @@ -125,7 +128,7 @@ function __federation_method_wrapDefault(module ,need){ obj.__esModule = true; return obj; } - return module; + return module; } function __federation_method_getRemote(remoteName, componentName){ diff --git a/packages/lib/src/prod/remote-production.ts b/packages/lib/src/prod/remote-production.ts index 620c8741..3169f36b 100644 --- a/packages/lib/src/prod/remote-production.ts +++ b/packages/lib/src/prod/remote-production.ts @@ -105,7 +105,10 @@ export function prodRemotePlugin( return new Promise((resolve, reject) => { const getUrl = typeof remote.url === 'function' ? remote.url : () => Promise.resolve(remote.url); getUrl().then(url => { - import(/* @vite-ignore */ url).then(lib => { + const importer = remote.format === 'systemjs' + ? System.import(/* @vite-ignore */ url) + : import(/* @vite-ignore */ url) + importer.then(lib => { if (!remote.inited) { const shareScope = wrapShareModule(remote.from) lib.init(shareScope);