Skip to content

Commit ae8b6b0

Browse files
Ensure shared context library is shared as singleton (#4387)
1 parent f782e79 commit ae8b6b0

File tree

2 files changed

+32
-18
lines changed

2 files changed

+32
-18
lines changed

shared-context/app1/webpack.config.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
22
const ModuleFederationPlugin = require('webpack').container.ModuleFederationPlugin;
33
const path = require('path');
44

5+
const deps = require('./package.json').dependencies;
6+
57
module.exports = {
68
entry: './src/index',
79
mode: 'development',
@@ -42,16 +44,21 @@ module.exports = {
4244
remotes: {
4345
app2: 'app2@http://localhost:3002/remoteEntry.js',
4446
},
45-
shared: [
46-
'react',
47-
'react-dom',
48-
{
49-
'shared-context_shared-library': {
50-
import: 'shared-context_shared-library',
51-
requiredVersion: require('../shared-library/package.json').version,
52-
},
47+
shared: {
48+
react: {
49+
singleton: true,
50+
requiredVersion: deps.react,
51+
},
52+
'react-dom': {
53+
singleton: true,
54+
requiredVersion: deps['react-dom'],
5355
},
54-
],
56+
'shared-context_shared-library': {
57+
import: 'shared-context_shared-library',
58+
requiredVersion: require('../shared-library/package.json').version,
59+
singleton: true,
60+
},
61+
},
5562
}),
5663
new HtmlWebpackPlugin({
5764
template: './public/index.html',

shared-context/app2/webpack.config.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
22
const ModuleFederationPlugin = require('webpack').container.ModuleFederationPlugin;
33
const path = require('path');
44

5+
const deps = require('./package.json').dependencies;
6+
57
module.exports = {
68
entry: './src/index',
79
mode: 'development',
@@ -43,16 +45,21 @@ module.exports = {
4345
exposes: {
4446
'./Welcome': './src/Welcome',
4547
},
46-
shared: [
47-
'react',
48-
'react-dom',
49-
{
50-
'shared-context_shared-library': {
51-
import: 'shared-context_shared-library',
52-
requiredVersion: require('../shared-library/package.json').version,
53-
},
48+
shared: {
49+
react: {
50+
singleton: true,
51+
requiredVersion: deps.react,
52+
},
53+
'react-dom': {
54+
singleton: true,
55+
requiredVersion: deps['react-dom'],
5456
},
55-
],
57+
'shared-context_shared-library': {
58+
import: 'shared-context_shared-library',
59+
requiredVersion: require('../shared-library/package.json').version,
60+
singleton: true,
61+
},
62+
},
5663
}),
5764
new HtmlWebpackPlugin({
5865
template: './public/index.html',

0 commit comments

Comments
 (0)