Skip to content

Commit d31d857

Browse files
feat(ssr): switch server federation to UniversalFederationPlugin with useRuntimePlugin; add @module-federation/enhanced devDeps; keep SSR enabled
1 parent cb56661 commit d31d857

File tree

26 files changed

+551
-640
lines changed

26 files changed

+551
-640
lines changed

federated-css-react-ssr/expose-apps/expose-css-module/config/module-federation.js

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const deps = require('../package.json').dependencies;
22
const { ModuleFederationPlugin } = require('webpack').container;
3-
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
3+
const { UniversalFederationPlugin } = require('@module-federation/node');
44

55
module.exports = {
66
client: new ModuleFederationPlugin({
@@ -27,7 +27,9 @@ module.exports = {
2727
},
2828
}),
2929
server: [
30-
new NodeFederationPlugin({
30+
new UniversalFederationPlugin({
31+
isServer: true,
32+
useRuntimePlugin: true,
3133
name: 'expose_css_module',
3234
filename: 'remoteEntry.js',
3335
library: { type: 'commonjs-module' },
@@ -38,23 +40,10 @@ module.exports = {
3840
},
3941
shared: {
4042
...deps,
41-
react: {
42-
singleton: true,
43-
requiredVersion: deps.react,
44-
},
45-
'react-dom': {
46-
singleton: true,
47-
requiredVersion: deps['react-dom'],
48-
},
49-
'isomorphic-style-loader': {
50-
singleton: true,
51-
},
43+
react: { singleton: true, requiredVersion: deps.react },
44+
'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
45+
'isomorphic-style-loader': { singleton: true },
5246
},
5347
}),
54-
new StreamingTargetPlugin({
55-
name: 'expose_css_module',
56-
library: { type: 'commonjs-module' },
57-
remotes: {},
58-
}),
5948
],
6049
};

federated-css-react-ssr/expose-apps/expose-css-module/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"webpack": "5.101.0",
2525
"webpack-cli": "5.1.4",
2626
"webpack-dev-server": "5.0.4",
27-
"webpack-merge": "6.0.1"
27+
"webpack-merge": "6.0.1",
28+
"@module-federation/enhanced": "0.17.1"
2829
},
2930
"dependencies": {
3031
"@babel/runtime": "^7.13.10",

federated-css-react-ssr/expose-apps/expose-css/config/module-federation.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const deps = require('../package.json').dependencies;
22
const { ModuleFederationPlugin } = require('webpack').container;
3-
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
3+
const { UniversalFederationPlugin } = require('@module-federation/node');
44

55
module.exports = {
66
client: new ModuleFederationPlugin({
@@ -24,7 +24,9 @@ module.exports = {
2424
},
2525
}),
2626
server: [
27-
new NodeFederationPlugin({
27+
new UniversalFederationPlugin({
28+
isServer: true,
29+
useRuntimePlugin: true,
2830
name: 'expose_css',
2931
filename: 'remoteEntry.js',
3032
library: { type: 'commonjs-module' },
@@ -35,20 +37,9 @@ module.exports = {
3537
},
3638
shared: {
3739
...deps,
38-
react: {
39-
singleton: true,
40-
requiredVersion: deps.react,
41-
},
42-
'react-dom': {
43-
singleton: true,
44-
requiredVersion: deps['react-dom'],
45-
},
40+
react: { singleton: true, requiredVersion: deps.react },
41+
'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
4642
},
4743
}),
48-
new StreamingTargetPlugin({
49-
name: 'expose_css',
50-
library: { type: 'commonjs-module' },
51-
remotes: {},
52-
}),
5344
],
5445
};

federated-css-react-ssr/expose-apps/expose-css/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"webpack": "5.101.0",
2525
"webpack-cli": "5.1.4",
2626
"webpack-dev-server": "5.0.4",
27-
"webpack-merge": "6.0.1"
27+
"webpack-merge": "6.0.1",
28+
"@module-federation/enhanced": "0.17.1"
2829
},
2930
"dependencies": {
3031
"@babel/runtime": "^7.13.10",

federated-css-react-ssr/expose-apps/expose-jss/config/module-federation.js

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const deps = require('../package.json').dependencies;
22
const { ModuleFederationPlugin } = require('webpack').container;
3-
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
3+
const { UniversalFederationPlugin } = require('@module-federation/node');
44

55
module.exports = {
66
client: new ModuleFederationPlugin({
@@ -26,7 +26,9 @@ module.exports = {
2626
},
2727
}),
2828
server: [
29-
new NodeFederationPlugin({
29+
new UniversalFederationPlugin({
30+
isServer: true,
31+
useRuntimePlugin: true,
3032
name: 'expose_jss',
3133
filename: 'remoteEntry.js',
3234
library: { type: 'commonjs-module' },
@@ -36,23 +38,10 @@ module.exports = {
3638
},
3739
shared: {
3840
...deps,
39-
react: {
40-
singleton: true,
41-
requiredVersion: deps.react,
42-
},
43-
'react-dom': {
44-
singleton: true,
45-
requiredVersion: deps['react-dom'],
46-
},
47-
'react-jss': {
48-
singleton: true,
49-
},
41+
react: { singleton: true, requiredVersion: deps.react },
42+
'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
43+
'react-jss': { singleton: true },
5044
},
5145
}),
52-
new StreamingTargetPlugin({
53-
name: 'expose_jss',
54-
library: { type: 'commonjs-module' },
55-
remotes: {},
56-
}),
5746
],
5847
};

federated-css-react-ssr/expose-apps/expose-jss/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"webpack": "5.101.0",
2424
"webpack-cli": "5.1.4",
2525
"webpack-dev-server": "5.0.4",
26-
"webpack-merge": "6.0.1"
26+
"webpack-merge": "6.0.1",
27+
"@module-federation/enhanced": "0.17.1"
2728
},
2829
"dependencies": {
2930
"@babel/runtime": "^7.13.10",

federated-css-react-ssr/expose-apps/expose-less/config/module-federation.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const deps = require('../package.json').dependencies;
22
const { ModuleFederationPlugin } = require('webpack').container;
3-
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
3+
const { UniversalFederationPlugin } = require('@module-federation/node');
44

55
module.exports = {
66
client: new ModuleFederationPlugin({
@@ -24,7 +24,9 @@ module.exports = {
2424
},
2525
}),
2626
server: [
27-
new NodeFederationPlugin({
27+
new UniversalFederationPlugin({
28+
isServer: true,
29+
useRuntimePlugin: true,
2830
name: 'expose_less',
2931
filename: 'remoteEntry.js',
3032
library: { type: 'commonjs-module' },
@@ -35,20 +37,9 @@ module.exports = {
3537
},
3638
shared: {
3739
...deps,
38-
react: {
39-
singleton: true,
40-
requiredVersion: deps.react,
41-
},
42-
'react-dom': {
43-
singleton: true,
44-
requiredVersion: deps['react-dom'],
45-
},
40+
react: { singleton: true, requiredVersion: deps.react },
41+
'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
4642
},
4743
}),
48-
new StreamingTargetPlugin({
49-
name: 'expose_less',
50-
library: { type: 'commonjs-module' },
51-
remotes: {},
52-
}),
5344
],
5445
};

federated-css-react-ssr/expose-apps/expose-less/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"webpack": "5.101.0",
2727
"webpack-cli": "5.1.4",
2828
"webpack-dev-server": "5.0.4",
29-
"webpack-merge": "6.0.1"
29+
"webpack-merge": "6.0.1",
30+
"@module-federation/enhanced": "0.17.1"
3031
},
3132
"dependencies": {
3233
"@babel/runtime": "^7.13.10",

federated-css-react-ssr/expose-apps/expose-scss/config/module-federation.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const deps = require('../package.json').dependencies;
22
const { ModuleFederationPlugin } = require('webpack').container;
3-
const { NodeFederationPlugin, StreamingTargetPlugin } = require('@module-federation/node');
3+
const { UniversalFederationPlugin } = require('@module-federation/node');
44

55
module.exports = {
66
client: new ModuleFederationPlugin({
@@ -24,7 +24,9 @@ module.exports = {
2424
},
2525
}),
2626
server: [
27-
new NodeFederationPlugin({
27+
new UniversalFederationPlugin({
28+
isServer: true,
29+
useRuntimePlugin: true,
2830
name: 'expose_scss',
2931
filename: 'remoteEntry.js',
3032
library: { type: 'commonjs-module' },
@@ -35,20 +37,9 @@ module.exports = {
3537
},
3638
shared: {
3739
...deps,
38-
react: {
39-
singleton: true,
40-
requiredVersion: deps.react,
41-
},
42-
'react-dom': {
43-
singleton: true,
44-
requiredVersion: deps['react-dom'],
45-
},
40+
react: { singleton: true, requiredVersion: deps.react },
41+
'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
4642
},
4743
}),
48-
new StreamingTargetPlugin({
49-
name: 'expose_scss',
50-
library: { type: 'commonjs-module' },
51-
remotes: {},
52-
}),
5344
],
5445
};

federated-css-react-ssr/expose-apps/expose-scss/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"webpack": "5.101.0",
2626
"webpack-cli": "5.1.4",
2727
"webpack-dev-server": "5.0.4",
28-
"webpack-merge": "6.0.1"
28+
"webpack-merge": "6.0.1",
29+
"@module-federation/enhanced": "0.17.1"
2930
},
3031
"dependencies": {
3132
"@babel/runtime": "^7.13.10",

0 commit comments

Comments
 (0)