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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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.