Skip to content
This repository was archived by the owner on Jan 27, 2026. It is now read-only.

Commit ca9f3ed

Browse files
fix(cli): add @mui/utils to the webpack singleton configuration
Signed-off-by: Christoph Jerolimov <jerolimov+git@redhat.com>
1 parent f180a97 commit ca9f3ed

File tree

1 file changed

+33
-73
lines changed

1 file changed

+33
-73
lines changed

packages/cli/src/lib/bundler/scalprumConfig.ts

Lines changed: 33 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import { BundlingPaths } from './paths';
1010
import { transforms } from './transforms';
1111
import { DynamicPluginOptions } from './types';
1212

13+
const singletonAnyVersion = {
14+
singleton: true,
15+
requiredVersion: '*',
16+
};
17+
1318
/**
1419
* TODO: Create a config API to configure and optimize dependency sharing
1520
* https://medium.com/@marvusm.mmi/webpack-module-federation-think-twice-before-sharing-a-dependency-18b3b0e352cb
@@ -18,81 +23,36 @@ export const sharedModules = {
1823
/**
1924
* Mandatory singleton packages for sharing
2025
*/
21-
react: {
22-
singleton: true,
23-
requiredVersion: '*',
24-
},
25-
'react-dom': {
26-
singleton: true,
27-
requiredVersion: '*',
28-
},
29-
'react-router-dom': {
30-
singleton: true,
31-
requiredVersion: '*',
32-
},
33-
'react-router': {
34-
singleton: true,
35-
requiredVersion: '*',
36-
},
37-
'@backstage/version-bridge': {
38-
singleton: true,
39-
requiredVersion: '*',
40-
},
41-
'@backstage/core-app-api': {
42-
singleton: true,
43-
requiredVersion: '*',
44-
},
45-
'@backstage/core-plugin-api': {
46-
singleton: true,
47-
requiredVersion: '*',
48-
},
49-
'@backstage/frontend-plugin-api': {
50-
singleton: true,
51-
requiredVersion: '*',
52-
},
53-
'@scalprum/react-core': {
54-
singleton: true,
55-
requiredVersion: '*',
56-
},
57-
'@openshift/dynamic-plugin-sdk': {
58-
singleton: true,
59-
requiredVersion: '*',
60-
},
26+
react: singletonAnyVersion,
27+
'react-dom': singletonAnyVersion,
28+
29+
'react-router-dom': singletonAnyVersion,
30+
'react-router': singletonAnyVersion,
31+
32+
'@backstage/core-app-api': singletonAnyVersion,
33+
'@backstage/core-plugin-api': singletonAnyVersion,
34+
'@backstage/frontend-plugin-api': singletonAnyVersion,
35+
'@backstage/version-bridge': singletonAnyVersion,
36+
37+
'@scalprum/react-core': singletonAnyVersion,
38+
'@openshift/dynamic-plugin-sdk': singletonAnyVersion,
39+
40+
/**
41+
* The following two packages are required to be shared as singletons to enable MUI v4 theming
42+
*/
43+
'@material-ui/core/styles': singletonAnyVersion,
44+
'@material-ui/styles': singletonAnyVersion,
45+
6146
/**
62-
* The following two packages are required to be shared as singletons to enable UI theming
47+
* And these for MUI v5 theming
6348
*/
64-
'@material-ui/core/styles': {
65-
singleton: true,
66-
requiredVersion: '*',
67-
},
68-
'@material-ui/styles': {
69-
singleton: true,
70-
requiredVersion: '*',
71-
},
72-
'@mui/material': {
73-
singleton: true,
74-
requiredVersion: '*',
75-
},
76-
'@mui/system': {
77-
singleton: true,
78-
requiredVersion: '*',
79-
},
80-
'@mui/private-theming': {
81-
singleton: true,
82-
requiredVersion: '*',
83-
},
84-
'@mui/styled-engine': {
85-
singleton: true,
86-
requiredVersion: '*',
87-
},
88-
'@emotion/cache': {
89-
singleton: true,
90-
requiredVersion: '*',
91-
},
92-
'@emotion/react': {
93-
singleton: true,
94-
requiredVersion: '*',
95-
},
49+
'@mui/material': singletonAnyVersion,
50+
'@mui/system': singletonAnyVersion,
51+
'@mui/private-theming': singletonAnyVersion,
52+
'@mui/styled-engine': singletonAnyVersion,
53+
'@mui/utils': singletonAnyVersion,
54+
'@emotion/cache': singletonAnyVersion,
55+
'@emotion/react': singletonAnyVersion,
9656
};
9757

9858
export async function createScalprumConfig(

0 commit comments

Comments
 (0)