Skip to content

Commit

Permalink
Merge pull request #16685 from weareoutman/main
Browse files Browse the repository at this point in the history
Fix a bug in Module Federation where a package self-references itself in a shared module
  • Loading branch information
TheLarkInn committed Apr 5, 2023
2 parents 765cbff + be8b1a1 commit 2703c1b
Show file tree
Hide file tree
Showing 9 changed files with 70 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/sharing/ConsumeSharedPlugin.js
Expand Up @@ -224,6 +224,10 @@ class ConsumeSharedPlugin {
);
return resolve();
}
if (data.name === packageName) {
// Package self-referencing
return resolve();
}
const requiredVersion = getRequiredVersionFromDescriptionFile(
data,
packageName
Expand Down
4 changes: 4 additions & 0 deletions test/configCases/sharing/consume-self-reference/index.js
@@ -0,0 +1,4 @@
it("should be able to consume package self referencing", async () => {
const result = await import("my-middleware");
expect(result.m()).toBe("ABA");
});

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions test/configCases/sharing/consume-self-reference/package.json
@@ -0,0 +1,5 @@
{
"dependencies": {
"my-middleware": "^2.3.0"
}
}
26 changes: 26 additions & 0 deletions test/configCases/sharing/consume-self-reference/webpack.config.js
@@ -0,0 +1,26 @@
// eslint-disable-next-line node/no-unpublished-require
const { SharePlugin } = require("../../../../").sharing;

/** @type {import("../../../../").Configuration} */
module.exports = {
plugins: [
new SharePlugin({
shared: {
"my-middleware": {
singleton: true
// import: false
},
"my-module/a": {
singleton: true,
version: "1.2.3"
// import: false
},
"my-module/b": {
singleton: true,
version: "1.2.3"
// import: false
}
}
})
]
};

0 comments on commit 2703c1b

Please sign in to comment.