@module-federation/modern-js 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,9 +43,10 @@ function setEnv(enableSSR) {
43
43
  }
44
44
  }
45
45
  function modifyBundlerConfig(options) {
46
- const { mfConfig, config, isServer, modernjsConfig, remoteIpStrategy = "ipv4" } = options;
46
+ const { mfConfig, config, isServer, modernjsConfig, remoteIpStrategy = "ipv4", bundlerType } = options;
47
47
  (0, import_utils.patchMFConfig)(mfConfig, isServer, remoteIpStrategy);
48
48
  (0, import_utils.patchBundlerConfig)({
49
+ bundlerType,
49
50
  bundlerConfig: config,
50
51
  isServer,
51
52
  modernjsConfig,
@@ -104,10 +104,6 @@ const moduleFederationSSRPlugin = (userConfig) => ({
104
104
  userConfig.nodePlugin = new import_enhanced.ModuleFederationPlugin(userConfig.ssrConfig);
105
105
  (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(userConfig.nodePlugin);
106
106
  }
107
- if (import_constant.isDev) {
108
- var _config_plugins1;
109
- (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(new import_node.EntryChunkTrackerPlugin());
110
- }
111
107
  } else {
112
108
  var _config_output;
113
109
  userConfig.distOutputDir = userConfig.distOutputDir || ((_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.path) || import_path.default.resolve(process.cwd(), "dist");
@@ -144,6 +140,9 @@ const moduleFederationSSRPlugin = (userConfig) => ({
144
140
  bundlerChain(chain, { isServer }) {
145
141
  if (isServer) {
146
142
  chain.target("async-node");
143
+ if (import_constant.isDev) {
144
+ chain.plugin("UniverseEntryChunkTrackerPlugin").use(import_node.UniverseEntryChunkTrackerPlugin);
145
+ }
147
146
  }
148
147
  if (import_constant.isDev && !isServer) {
149
148
  chain.externals({
@@ -186,25 +186,29 @@ function patchIgnoreWarning(bundlerConfig) {
186
186
  }
187
187
  function patchBundlerConfig(options) {
188
188
  var _modernjsConfig_server, _bundlerConfig_optimization, _bundlerConfig_optimization1, _bundlerConfig_output, _modernjsConfig_deploy;
189
- const { bundlerConfig, modernjsConfig, isServer, mfConfig } = options;
189
+ const { bundlerConfig, modernjsConfig, isServer, mfConfig, bundlerType } = options;
190
190
  const enableSSR = Boolean((_modernjsConfig_server = modernjsConfig.server) === null || _modernjsConfig_server === void 0 ? void 0 : _modernjsConfig_server.ssr);
191
191
  (_bundlerConfig_optimization = bundlerConfig.optimization) === null || _bundlerConfig_optimization === void 0 ? true : delete _bundlerConfig_optimization.runtimeChunk;
192
192
  patchIgnoreWarning(bundlerConfig);
193
- bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
194
- if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
195
- if (bundlerConfig.watchOptions.ignored) {
196
- bundlerConfig.watchOptions.ignored = [
197
- bundlerConfig.watchOptions.ignored
198
- ];
199
- } else {
200
- bundlerConfig.watchOptions.ignored = [];
193
+ if (bundlerType === "webpack") {
194
+ bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
195
+ if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
196
+ if (bundlerConfig.watchOptions.ignored) {
197
+ bundlerConfig.watchOptions.ignored = [
198
+ bundlerConfig.watchOptions.ignored
199
+ ];
200
+ } else {
201
+ bundlerConfig.watchOptions.ignored = [];
202
+ }
201
203
  }
202
- }
203
- if (mfConfig.dts !== false) {
204
- if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
205
- bundlerConfig.watchOptions.ignored.push(mfConfig.dts.consumeTypes.remoteTypesFolder);
204
+ if (mfConfig.dts !== false) {
205
+ if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
206
+ bundlerConfig.watchOptions.ignored.push(`**/${mfConfig.dts.consumeTypes.remoteTypesFolder}/**`);
207
+ } else {
208
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
209
+ }
206
210
  } else {
207
- bundlerConfig.watchOptions.ignored.push("@mf-types");
211
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
208
212
  }
209
213
  }
210
214
  if (bundlerConfig.output) {
@@ -118,6 +118,7 @@ const mfConfig = {
118
118
  }
119
119
  };
120
120
  (0, import_utils.patchBundlerConfig)({
121
+ bundlerType: "webpack",
121
122
  bundlerConfig,
122
123
  isServer: true,
123
124
  modernjsConfig: {
@@ -137,7 +138,7 @@ const mfConfig = {
137
138
  },
138
139
  watchOptions: {
139
140
  ignored: [
140
- "@mf-types"
141
+ "**/@mf-types/**"
141
142
  ]
142
143
  }
143
144
  };
@@ -151,6 +152,7 @@ const mfConfig = {
151
152
  }
152
153
  };
153
154
  (0, import_utils.patchBundlerConfig)({
155
+ bundlerType: "webpack",
154
156
  bundlerConfig,
155
157
  isServer: false,
156
158
  modernjsConfig: {
@@ -170,7 +172,7 @@ const mfConfig = {
170
172
  },
171
173
  watchOptions: {
172
174
  ignored: [
173
- "@mf-types"
175
+ "**/@mf-types/**"
174
176
  ]
175
177
  }
176
178
  };
@@ -56,7 +56,7 @@ const mfSSRPlugin = () => ({
56
56
  context
57
57
  });
58
58
  },
59
- hoc({ App, config }, next) {
59
+ wrapRoot(App) {
60
60
  const AppWrapper = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
61
61
  children: [
62
62
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SSRLiveReload.SSRLiveReload, {}),
@@ -65,10 +65,7 @@ const mfSSRPlugin = () => ({
65
65
  })
66
66
  ]
67
67
  });
68
- return next({
69
- App: (0, import_hoist_non_react_statics.default)(AppWrapper, App),
70
- config
71
- });
68
+ return (0, import_hoist_non_react_statics.default)(AppWrapper, App);
72
69
  }
73
70
  };
74
71
  }
@@ -9,9 +9,10 @@ function setEnv(enableSSR) {
9
9
  }
10
10
  }
11
11
  function modifyBundlerConfig(options) {
12
- var mfConfig = options.mfConfig, config = options.config, isServer = options.isServer, modernjsConfig = options.modernjsConfig, _options_remoteIpStrategy = options.remoteIpStrategy, remoteIpStrategy = _options_remoteIpStrategy === void 0 ? "ipv4" : _options_remoteIpStrategy;
12
+ var mfConfig = options.mfConfig, config = options.config, isServer = options.isServer, modernjsConfig = options.modernjsConfig, _options_remoteIpStrategy = options.remoteIpStrategy, remoteIpStrategy = _options_remoteIpStrategy === void 0 ? "ipv4" : _options_remoteIpStrategy, bundlerType = options.bundlerType;
13
13
  patchMFConfig(mfConfig, isServer, remoteIpStrategy);
14
14
  patchBundlerConfig({
15
+ bundlerType,
15
16
  bundlerConfig: config,
16
17
  isServer,
17
18
  modernjsConfig,
@@ -4,7 +4,7 @@ import path from "path";
4
4
  import { fs } from "@modern-js/utils";
5
5
  import { ModuleFederationPlugin } from "@module-federation/enhanced";
6
6
  import { ModuleFederationPlugin as RspackModuleFederationPlugin } from "@module-federation/enhanced/rspack";
7
- import { EntryChunkTrackerPlugin } from "@module-federation/node";
7
+ import { UniverseEntryChunkTrackerPlugin } from "@module-federation/node";
8
8
  import { updateStatsAndManifest } from "./manifest";
9
9
  import { isDev } from "./constant";
10
10
  function setEnv() {
@@ -85,10 +85,6 @@ var moduleFederationSSRPlugin = function(userConfig) {
85
85
  userConfig.nodePlugin = new ModuleFederationPlugin(userConfig.ssrConfig);
86
86
  (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(userConfig.nodePlugin);
87
87
  }
88
- if (isDev) {
89
- var _config_plugins1;
90
- (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(new EntryChunkTrackerPlugin());
91
- }
92
88
  } else {
93
89
  var _config_output;
94
90
  userConfig.distOutputDir = userConfig.distOutputDir || ((_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.path) || path.resolve(process.cwd(), "dist");
@@ -126,6 +122,9 @@ var moduleFederationSSRPlugin = function(userConfig) {
126
122
  var isServer = param2.isServer;
127
123
  if (isServer) {
128
124
  chain.target("async-node");
125
+ if (isDev) {
126
+ chain.plugin("UniverseEntryChunkTrackerPlugin").use(UniverseEntryChunkTrackerPlugin);
127
+ }
129
128
  }
130
129
  if (isDev && !isServer) {
131
130
  chain.externals({
@@ -181,25 +181,29 @@ function patchIgnoreWarning(bundlerConfig) {
181
181
  }
182
182
  function patchBundlerConfig(options) {
183
183
  var _modernjsConfig_server, _bundlerConfig_optimization, _bundlerConfig_optimization1, _bundlerConfig_output, _modernjsConfig_deploy;
184
- var bundlerConfig = options.bundlerConfig, modernjsConfig = options.modernjsConfig, isServer = options.isServer, mfConfig = options.mfConfig;
184
+ var bundlerConfig = options.bundlerConfig, modernjsConfig = options.modernjsConfig, isServer = options.isServer, mfConfig = options.mfConfig, bundlerType = options.bundlerType;
185
185
  var enableSSR = Boolean((_modernjsConfig_server = modernjsConfig.server) === null || _modernjsConfig_server === void 0 ? void 0 : _modernjsConfig_server.ssr);
186
186
  (_bundlerConfig_optimization = bundlerConfig.optimization) === null || _bundlerConfig_optimization === void 0 ? true : delete _bundlerConfig_optimization.runtimeChunk;
187
187
  patchIgnoreWarning(bundlerConfig);
188
- bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
189
- if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
190
- if (bundlerConfig.watchOptions.ignored) {
191
- bundlerConfig.watchOptions.ignored = [
192
- bundlerConfig.watchOptions.ignored
193
- ];
194
- } else {
195
- bundlerConfig.watchOptions.ignored = [];
188
+ if (bundlerType === "webpack") {
189
+ bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
190
+ if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
191
+ if (bundlerConfig.watchOptions.ignored) {
192
+ bundlerConfig.watchOptions.ignored = [
193
+ bundlerConfig.watchOptions.ignored
194
+ ];
195
+ } else {
196
+ bundlerConfig.watchOptions.ignored = [];
197
+ }
196
198
  }
197
- }
198
- if (mfConfig.dts !== false) {
199
- if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
200
- bundlerConfig.watchOptions.ignored.push(mfConfig.dts.consumeTypes.remoteTypesFolder);
199
+ if (mfConfig.dts !== false) {
200
+ if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
201
+ bundlerConfig.watchOptions.ignored.push("**/".concat(mfConfig.dts.consumeTypes.remoteTypesFolder, "/**"));
202
+ } else {
203
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
204
+ }
201
205
  } else {
202
- bundlerConfig.watchOptions.ignored.push("@mf-types");
206
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
203
207
  }
204
208
  }
205
209
  if (bundlerConfig.output) {
@@ -117,6 +117,7 @@ describe("patchBundlerConfig", /* @__PURE__ */ _async_to_generator(function() {
117
117
  }
118
118
  };
119
119
  patchBundlerConfig({
120
+ bundlerType: "webpack",
120
121
  bundlerConfig,
121
122
  isServer: true,
122
123
  modernjsConfig: {
@@ -136,7 +137,7 @@ describe("patchBundlerConfig", /* @__PURE__ */ _async_to_generator(function() {
136
137
  },
137
138
  watchOptions: {
138
139
  ignored: [
139
- "@mf-types"
140
+ "**/@mf-types/**"
140
141
  ]
141
142
  }
142
143
  };
@@ -156,6 +157,7 @@ describe("patchBundlerConfig", /* @__PURE__ */ _async_to_generator(function() {
156
157
  }
157
158
  };
158
159
  patchBundlerConfig({
160
+ bundlerType: "webpack",
159
161
  bundlerConfig,
160
162
  isServer: false,
161
163
  modernjsConfig: {
@@ -175,7 +177,7 @@ describe("patchBundlerConfig", /* @__PURE__ */ _async_to_generator(function() {
175
177
  },
176
178
  watchOptions: {
177
179
  ignored: [
178
- "@mf-types"
180
+ "**/@mf-types/**"
179
181
  ]
180
182
  }
181
183
  };
@@ -62,8 +62,7 @@ var mfSSRPlugin = function() {
62
62
  });
63
63
  })();
64
64
  },
65
- hoc: function hoc(param, next) {
66
- var App = param.App, config = param.config;
65
+ wrapRoot: function wrapRoot(App) {
67
66
  var AppWrapper = function(props) {
68
67
  return /* @__PURE__ */ _jsxs(_Fragment, {
69
68
  children: [
@@ -72,10 +71,7 @@ var mfSSRPlugin = function() {
72
71
  ]
73
72
  });
74
73
  };
75
- return next({
76
- App: hoistNonReactStatics(AppWrapper, App),
77
- config
78
- });
74
+ return hoistNonReactStatics(AppWrapper, App);
79
75
  }
80
76
  };
81
77
  }
@@ -7,9 +7,10 @@ function setEnv(enableSSR) {
7
7
  }
8
8
  }
9
9
  function modifyBundlerConfig(options) {
10
- const { mfConfig, config, isServer, modernjsConfig, remoteIpStrategy = "ipv4" } = options;
10
+ const { mfConfig, config, isServer, modernjsConfig, remoteIpStrategy = "ipv4", bundlerType } = options;
11
11
  patchMFConfig(mfConfig, isServer, remoteIpStrategy);
12
12
  patchBundlerConfig({
13
+ bundlerType,
13
14
  bundlerConfig: config,
14
15
  isServer,
15
16
  modernjsConfig,
@@ -2,7 +2,7 @@ import path from "path";
2
2
  import { fs } from "@modern-js/utils";
3
3
  import { ModuleFederationPlugin } from "@module-federation/enhanced";
4
4
  import { ModuleFederationPlugin as RspackModuleFederationPlugin } from "@module-federation/enhanced/rspack";
5
- import { EntryChunkTrackerPlugin } from "@module-federation/node";
5
+ import { UniverseEntryChunkTrackerPlugin } from "@module-federation/node";
6
6
  import { updateStatsAndManifest } from "./manifest";
7
7
  import { isDev } from "./constant";
8
8
  function setEnv() {
@@ -69,10 +69,6 @@ const moduleFederationSSRPlugin = (userConfig) => ({
69
69
  userConfig.nodePlugin = new ModuleFederationPlugin(userConfig.ssrConfig);
70
70
  (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(userConfig.nodePlugin);
71
71
  }
72
- if (isDev) {
73
- var _config_plugins1;
74
- (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(new EntryChunkTrackerPlugin());
75
- }
76
72
  } else {
77
73
  var _config_output;
78
74
  userConfig.distOutputDir = userConfig.distOutputDir || ((_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.path) || path.resolve(process.cwd(), "dist");
@@ -109,6 +105,9 @@ const moduleFederationSSRPlugin = (userConfig) => ({
109
105
  bundlerChain(chain, { isServer }) {
110
106
  if (isServer) {
111
107
  chain.target("async-node");
108
+ if (isDev) {
109
+ chain.plugin("UniverseEntryChunkTrackerPlugin").use(UniverseEntryChunkTrackerPlugin);
110
+ }
112
111
  }
113
112
  if (isDev && !isServer) {
114
113
  chain.externals({
@@ -149,25 +149,29 @@ function patchIgnoreWarning(bundlerConfig) {
149
149
  }
150
150
  function patchBundlerConfig(options) {
151
151
  var _modernjsConfig_server, _bundlerConfig_optimization, _bundlerConfig_optimization1, _bundlerConfig_output, _modernjsConfig_deploy;
152
- const { bundlerConfig, modernjsConfig, isServer, mfConfig } = options;
152
+ const { bundlerConfig, modernjsConfig, isServer, mfConfig, bundlerType } = options;
153
153
  const enableSSR = Boolean((_modernjsConfig_server = modernjsConfig.server) === null || _modernjsConfig_server === void 0 ? void 0 : _modernjsConfig_server.ssr);
154
154
  (_bundlerConfig_optimization = bundlerConfig.optimization) === null || _bundlerConfig_optimization === void 0 ? true : delete _bundlerConfig_optimization.runtimeChunk;
155
155
  patchIgnoreWarning(bundlerConfig);
156
- bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
157
- if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
158
- if (bundlerConfig.watchOptions.ignored) {
159
- bundlerConfig.watchOptions.ignored = [
160
- bundlerConfig.watchOptions.ignored
161
- ];
162
- } else {
163
- bundlerConfig.watchOptions.ignored = [];
156
+ if (bundlerType === "webpack") {
157
+ bundlerConfig.watchOptions = bundlerConfig.watchOptions || {};
158
+ if (!Array.isArray(bundlerConfig.watchOptions.ignored)) {
159
+ if (bundlerConfig.watchOptions.ignored) {
160
+ bundlerConfig.watchOptions.ignored = [
161
+ bundlerConfig.watchOptions.ignored
162
+ ];
163
+ } else {
164
+ bundlerConfig.watchOptions.ignored = [];
165
+ }
164
166
  }
165
- }
166
- if (mfConfig.dts !== false) {
167
- if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
168
- bundlerConfig.watchOptions.ignored.push(mfConfig.dts.consumeTypes.remoteTypesFolder);
167
+ if (mfConfig.dts !== false) {
168
+ if (typeof mfConfig.dts === "object" && typeof mfConfig.dts.consumeTypes === "object" && mfConfig.dts.consumeTypes.remoteTypesFolder) {
169
+ bundlerConfig.watchOptions.ignored.push(`**/${mfConfig.dts.consumeTypes.remoteTypesFolder}/**`);
170
+ } else {
171
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
172
+ }
169
173
  } else {
170
- bundlerConfig.watchOptions.ignored.push("@mf-types");
174
+ bundlerConfig.watchOptions.ignored.push("**/@mf-types/**");
171
175
  }
172
176
  }
173
177
  if (bundlerConfig.output) {
@@ -95,6 +95,7 @@ describe("patchBundlerConfig", async () => {
95
95
  }
96
96
  };
97
97
  patchBundlerConfig({
98
+ bundlerType: "webpack",
98
99
  bundlerConfig,
99
100
  isServer: true,
100
101
  modernjsConfig: {
@@ -114,7 +115,7 @@ describe("patchBundlerConfig", async () => {
114
115
  },
115
116
  watchOptions: {
116
117
  ignored: [
117
- "@mf-types"
118
+ "**/@mf-types/**"
118
119
  ]
119
120
  }
120
121
  };
@@ -128,6 +129,7 @@ describe("patchBundlerConfig", async () => {
128
129
  }
129
130
  };
130
131
  patchBundlerConfig({
132
+ bundlerType: "webpack",
131
133
  bundlerConfig,
132
134
  isServer: false,
133
135
  modernjsConfig: {
@@ -147,7 +149,7 @@ describe("patchBundlerConfig", async () => {
147
149
  },
148
150
  watchOptions: {
149
151
  ignored: [
150
- "@mf-types"
152
+ "**/@mf-types/**"
151
153
  ]
152
154
  }
153
155
  };
@@ -23,7 +23,7 @@ const mfSSRPlugin = () => ({
23
23
  context
24
24
  });
25
25
  },
26
- hoc({ App, config }, next) {
26
+ wrapRoot(App) {
27
27
  const AppWrapper = (props) => /* @__PURE__ */ _jsxs(_Fragment, {
28
28
  children: [
29
29
  /* @__PURE__ */ _jsx(SSRLiveReload, {}),
@@ -32,10 +32,7 @@ const mfSSRPlugin = () => ({
32
32
  })
33
33
  ]
34
34
  });
35
- return next({
36
- App: hoistNonReactStatics(AppWrapper, App),
37
- config
38
- });
35
+ return hoistNonReactStatics(AppWrapper, App);
39
36
  }
40
37
  };
41
38
  }
@@ -10,6 +10,7 @@ export declare function patchBundlerConfig<T extends Bundler>(options: {
10
10
  bundlerConfig: BundlerConfig<T>;
11
11
  isServer: boolean;
12
12
  modernjsConfig: UserConfig<AppTools>;
13
+ bundlerType: Bundler;
13
14
  mfConfig: moduleFederationPlugin.ModuleFederationPluginOptions;
14
15
  }): void;
15
16
  export declare const getIPV4: () => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/modern-js",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "files": [
5
5
  "dist/",
6
6
  "types.d.ts",
@@ -61,18 +61,18 @@
61
61
  "node-fetch": "~3.3.0",
62
62
  "react-error-boundary": "4.0.13",
63
63
  "hoist-non-react-statics": "3.3.2",
64
- "@module-federation/sdk": "0.3.2",
65
- "@module-federation/enhanced": "0.3.2",
66
- "@module-federation/node": "2.5.2"
64
+ "@module-federation/sdk": "0.3.4",
65
+ "@module-federation/enhanced": "0.3.4",
66
+ "@module-federation/node": "2.5.4"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@types/hoist-non-react-statics": "3.3.2",
70
- "@modern-js/app-tools": "2.56.2",
71
- "@modern-js/core": "2.56.2",
72
- "@modern-js/runtime": "2.56.2",
73
- "@modern-js/module-tools": "2.56.2",
74
- "@modern-js/tsconfig": "2.56.2",
75
- "@module-federation/manifest": "0.3.2"
70
+ "@modern-js/app-tools": "2.57.0",
71
+ "@modern-js/core": "2.57.0",
72
+ "@modern-js/runtime": "2.57.0",
73
+ "@modern-js/module-tools": "2.57.0",
74
+ "@modern-js/tsconfig": "2.57.0",
75
+ "@module-federation/manifest": "0.3.4"
76
76
  },
77
77
  "peerDependencies": {
78
78
  "react": ">=17",