-
-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async shared modules not resolved correctly with module federation. #3003
Comments
The remote is not set to esm output, its set to var - so top level await is not possible in that runtime. |
@ScriptedAlchemy The Issue exists even if we use type module. I have updated the changes in that Repo Without Module Federation plugin and outputModule, topLevelAwait converts properly in webpack ( without esm runtime ). |
The repo seems incomplete. There is only one app |
@ScriptedAlchemy Yes, when Module Federation is configured, single App itself ( which shares its libraries with remote ) which has shared library fails to load. No two Apps are required for this case. This is the Base App. new ModuleFederationPlugin({
name: 'app1',
library: { type: 'module', name: 'app1' },
remotes: {
app2: 'app2',
},
shared: {
"top-level-await-module-fed-issue": {
eager: true
},
'react-dom': {
import: 'react-dom', // the "react" package will be used a provided and fallback module
shareKey: 'react-dom', // under this name the shared module will be placed in the share scope
shareScope: 'legacy', // share scope with this name will be used
singleton: true, // only a single version of the shared module is allowed
},
// oldReact: {
// import: "react", // the "react" package will be used a provided and fallback module
// shareKey: "oldReact", // under this name the shared module will be placed in the share scope
// shareScope: "legacy", // share scope with this name will be used
// singleton: true, // only a single version of the shared module is allowed
// }
},
}), |
Should probably be fixed in the webpack core core. |
You can workaround it with a runtimePlugin though, and await the inner result then return that. |
Describe the bug
NPM Package App1.js
NPM Package index.js
While using above mentioned npm. package in App, the static import resolves to parent promise object instead of resolved object.
Actual App code
What is the expected behavior?
Imported modules from module federation should resolve normally whether it's async modules or not
Reproduction
https://github.com/HariAbinesh/top-level-await-module-fed-issue-app
Used Package Manager
npm
System Info
Validations
The text was updated successfully, but these errors were encountered: