@module-federation/rsbuild-plugin 0.21.2 → 0.21.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.
- package/dist/cli/index.d.ts +4 -1
- package/dist/index.js +64 -15
- package/dist/index.mjs +65 -16
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/manifest.d.ts +10 -4
- package/dist/utils.js +10 -11
- package/dist/utils.mjs +10 -11
- package/package.json +4 -4
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleFederationPlugin, PLUGIN_NAME } from '@module-federation/enhanced/rspack';
|
|
2
|
-
import { SSR_DIR } from '../utils';
|
|
2
|
+
import { SSR_DIR, StatsAssetResource } from '../utils';
|
|
3
3
|
import type { moduleFederationPlugin } from '@module-federation/sdk';
|
|
4
4
|
import type { RsbuildPlugin, Rspack } from '@rsbuild/core';
|
|
5
5
|
type ModuleFederationOptions = moduleFederationPlugin.ModuleFederationPluginOptions;
|
|
@@ -14,7 +14,10 @@ type ExposedAPIType = {
|
|
|
14
14
|
browserPlugin?: ModuleFederationPlugin;
|
|
15
15
|
rspressSSGPlugin?: ModuleFederationPlugin;
|
|
16
16
|
distOutputDir?: string;
|
|
17
|
+
browserEnvironmentName?: string;
|
|
18
|
+
nodeEnvironmentName?: string;
|
|
17
19
|
};
|
|
20
|
+
assetResources: Record<string, StatsAssetResource>;
|
|
18
21
|
isSSRConfig: typeof isSSRConfig;
|
|
19
22
|
isRspressSSGConfig: typeof isRspressSSGConfig;
|
|
20
23
|
};
|
package/dist/index.js
CHANGED
|
@@ -136,21 +136,21 @@ function mergeManifest(browserManifest, nodeManifest) {
|
|
|
136
136
|
if ('publicPath' in browserManifest.metaData) browserManifest.metaData.ssrPublicPath = nodeManifest.metaData.publicPath;
|
|
137
137
|
return browserManifest;
|
|
138
138
|
}
|
|
139
|
-
function mergeStatsAndManifest(
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
if (!
|
|
143
|
-
const mergedStats = mergeStats(
|
|
144
|
-
const mergedManifest = mergeManifest(
|
|
139
|
+
function mergeStatsAndManifest(nodeAssets, browserAssets) {
|
|
140
|
+
const { stats: browserStats, manifest: browserManifest } = browserAssets;
|
|
141
|
+
const { stats: nodeStats, manifest: nodeManifest } = nodeAssets;
|
|
142
|
+
if (!browserStats || !nodeStats || !browserManifest || !nodeManifest) throw new Error('Failed to read stats or manifest assets for merge');
|
|
143
|
+
const mergedStats = mergeStats(browserStats.data, nodeStats.data);
|
|
144
|
+
const mergedManifest = mergeManifest(browserManifest.data, nodeManifest.data);
|
|
145
145
|
return {
|
|
146
146
|
mergedStats: mergedStats,
|
|
147
|
-
mergedStatsFilePath:
|
|
147
|
+
mergedStatsFilePath: browserStats.filename,
|
|
148
148
|
mergedManifest: mergedManifest,
|
|
149
|
-
mergedManifestFilePath:
|
|
149
|
+
mergedManifestFilePath: browserManifest.filename
|
|
150
150
|
};
|
|
151
151
|
}
|
|
152
|
-
function updateStatsAndManifest(
|
|
153
|
-
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(
|
|
152
|
+
function updateStatsAndManifest(nodeAssets, browserAssets, outputDir) {
|
|
153
|
+
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(nodeAssets, browserAssets);
|
|
154
154
|
external_fs_extra_default().writeFileSync(external_path_default().resolve(outputDir, mergedStatsFilePath), JSON.stringify(mergedStats, null, 2));
|
|
155
155
|
external_fs_extra_default().writeFileSync(external_path_default().resolve(outputDir, mergedManifestFilePath), JSON.stringify(mergedManifest, null, 2));
|
|
156
156
|
}
|
|
@@ -160,7 +160,6 @@ const resolve = ssr_require.resolve;
|
|
|
160
160
|
const SSR_DIR = 'ssr';
|
|
161
161
|
const SSR_ENV_NAME = 'mf-ssr';
|
|
162
162
|
function setSSREnv() {
|
|
163
|
-
process.env['MF_DISABLE_EMIT_STATS'] = 'true';
|
|
164
163
|
process.env['MF_SSR_PRJ'] = 'true';
|
|
165
164
|
}
|
|
166
165
|
const isDev = ()=>'development' === process.env['NODE_ENV'];
|
|
@@ -323,12 +322,52 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
323
322
|
options: {
|
|
324
323
|
nodePlugin: void 0,
|
|
325
324
|
browserPlugin: void 0,
|
|
326
|
-
|
|
325
|
+
rspressSSGPlugin: void 0,
|
|
326
|
+
distOutputDir: void 0,
|
|
327
|
+
browserEnvironmentName: void 0,
|
|
328
|
+
nodeEnvironmentName: void 0
|
|
327
329
|
},
|
|
330
|
+
assetResources: {},
|
|
328
331
|
isSSRConfig,
|
|
329
332
|
isRspressSSGConfig
|
|
330
333
|
};
|
|
331
334
|
api.expose(RSBUILD_PLUGIN_MODULE_FEDERATION_NAME, generateMergedStatsAndManifestOptions);
|
|
335
|
+
const defaultBrowserEnvironmentName = environment;
|
|
336
|
+
const assetFileNames = (0, sdk_namespaceObject.getManifestFileName)(moduleFederationOptions.manifest);
|
|
337
|
+
if (false !== moduleFederationOptions.manifest) api.processAssets({
|
|
338
|
+
stage: 'report'
|
|
339
|
+
}, ({ assets, environment: envContext })=>{
|
|
340
|
+
const expectedBrowserEnv = generateMergedStatsAndManifestOptions.options.browserEnvironmentName ?? defaultBrowserEnvironmentName;
|
|
341
|
+
const expectedNodeEnv = generateMergedStatsAndManifestOptions.options.nodeEnvironmentName ?? SSR_ENV_NAME;
|
|
342
|
+
const envName = envContext.name;
|
|
343
|
+
if (envName !== expectedBrowserEnv && envName !== expectedNodeEnv) return;
|
|
344
|
+
const assetResources = generateMergedStatsAndManifestOptions.assetResources;
|
|
345
|
+
const targetResources = assetResources[envName] || (assetResources[envName] = {});
|
|
346
|
+
const statsAsset = assets[assetFileNames.statsFileName];
|
|
347
|
+
if (statsAsset) try {
|
|
348
|
+
const raw = statsAsset.source();
|
|
349
|
+
const content = 'string' == typeof raw ? raw : raw.toString();
|
|
350
|
+
targetResources.stats = {
|
|
351
|
+
data: JSON.parse(content),
|
|
352
|
+
filename: assetFileNames.statsFileName
|
|
353
|
+
};
|
|
354
|
+
} catch (err) {
|
|
355
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
356
|
+
src_logger.error(`Failed to parse stats asset "${assetFileNames.statsFileName}" for environment "${envName}": ${message}`);
|
|
357
|
+
}
|
|
358
|
+
const manifestAsset = assets[assetFileNames.manifestFileName];
|
|
359
|
+
if (manifestAsset) try {
|
|
360
|
+
const raw = manifestAsset.source();
|
|
361
|
+
const content = 'string' == typeof raw ? raw : raw.toString();
|
|
362
|
+
targetResources.manifest = {
|
|
363
|
+
data: JSON.parse(content),
|
|
364
|
+
filename: assetFileNames.manifestFileName
|
|
365
|
+
};
|
|
366
|
+
} catch (err) {
|
|
367
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
368
|
+
src_logger.error(`Failed to parse manifest asset "${assetFileNames.manifestFileName}" for environment "${envName}": ${message}`);
|
|
369
|
+
}
|
|
370
|
+
});
|
|
332
371
|
api.onBeforeCreateCompiler(({ bundlerConfigs })=>{
|
|
333
372
|
if (!bundlerConfigs) throw new Error('Can not get bundlerConfigs!');
|
|
334
373
|
bundlerConfigs.forEach((bundlerConfig)=>{
|
|
@@ -379,6 +418,7 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
379
418
|
var _bundlerConfig_output2;
|
|
380
419
|
if (isSSRConfig(bundlerConfig.name)) {
|
|
381
420
|
generateMergedStatsAndManifestOptions.options.nodePlugin = new rspack_namespaceObject.ModuleFederationPlugin(createSSRMFConfig(moduleFederationOptions));
|
|
421
|
+
generateMergedStatsAndManifestOptions.options.nodeEnvironmentName = bundlerConfig.name || SSR_ENV_NAME;
|
|
382
422
|
bundlerConfig.plugins.push(generateMergedStatsAndManifestOptions.options.nodePlugin);
|
|
383
423
|
return;
|
|
384
424
|
}
|
|
@@ -399,15 +439,24 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
399
439
|
}
|
|
400
440
|
generateMergedStatsAndManifestOptions.options.browserPlugin = new rspack_namespaceObject.ModuleFederationPlugin(moduleFederationOptions);
|
|
401
441
|
generateMergedStatsAndManifestOptions.options.distOutputDir = (null == (_bundlerConfig_output2 = bundlerConfig.output) ? void 0 : _bundlerConfig_output2.path) || '';
|
|
442
|
+
generateMergedStatsAndManifestOptions.options.browserEnvironmentName = bundlerConfig.name || defaultBrowserEnvironmentName;
|
|
402
443
|
bundlerConfig.plugins.push(generateMergedStatsAndManifestOptions.options.browserPlugin);
|
|
403
444
|
}
|
|
404
445
|
}
|
|
405
446
|
});
|
|
406
447
|
});
|
|
407
448
|
const generateMergedStatsAndManifest = ()=>{
|
|
408
|
-
const {
|
|
409
|
-
if (!
|
|
410
|
-
|
|
449
|
+
const { distOutputDir, browserEnvironmentName, nodeEnvironmentName } = generateMergedStatsAndManifestOptions.options;
|
|
450
|
+
if (!distOutputDir || !browserEnvironmentName || !nodeEnvironmentName) return;
|
|
451
|
+
const assetResources = generateMergedStatsAndManifestOptions.assetResources;
|
|
452
|
+
const browserAssets = assetResources[browserEnvironmentName];
|
|
453
|
+
const nodeAssets = assetResources[nodeEnvironmentName];
|
|
454
|
+
if (!browserAssets || !nodeAssets) return;
|
|
455
|
+
try {
|
|
456
|
+
updateStatsAndManifest(nodeAssets, browserAssets, distOutputDir);
|
|
457
|
+
} catch (err) {
|
|
458
|
+
src_logger.error(err);
|
|
459
|
+
}
|
|
411
460
|
};
|
|
412
461
|
api.onDevCompileDone(()=>{
|
|
413
462
|
generateMergedStatsAndManifest();
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseOptions } from "@module-federation/enhanced";
|
|
2
2
|
import { ModuleFederationPlugin, PLUGIN_NAME } from "@module-federation/enhanced/rspack";
|
|
3
|
-
import { TEMP_DIR, createLogger, createModuleFederationConfig, encodeName, isRequiredVersion } from "@module-federation/sdk";
|
|
3
|
+
import { TEMP_DIR, createLogger, createModuleFederationConfig, encodeName, getManifestFileName, isRequiredVersion } from "@module-federation/sdk";
|
|
4
4
|
import util from "util";
|
|
5
5
|
import fs_extra from "fs-extra";
|
|
6
6
|
import path from "path";
|
|
@@ -89,21 +89,21 @@ function mergeManifest(browserManifest, nodeManifest) {
|
|
|
89
89
|
if ('publicPath' in browserManifest.metaData) browserManifest.metaData.ssrPublicPath = nodeManifest.metaData.publicPath;
|
|
90
90
|
return browserManifest;
|
|
91
91
|
}
|
|
92
|
-
function mergeStatsAndManifest(
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
if (!
|
|
96
|
-
const mergedStats = mergeStats(
|
|
97
|
-
const mergedManifest = mergeManifest(
|
|
92
|
+
function mergeStatsAndManifest(nodeAssets, browserAssets) {
|
|
93
|
+
const { stats: browserStats, manifest: browserManifest } = browserAssets;
|
|
94
|
+
const { stats: nodeStats, manifest: nodeManifest } = nodeAssets;
|
|
95
|
+
if (!browserStats || !nodeStats || !browserManifest || !nodeManifest) throw new Error('Failed to read stats or manifest assets for merge');
|
|
96
|
+
const mergedStats = mergeStats(browserStats.data, nodeStats.data);
|
|
97
|
+
const mergedManifest = mergeManifest(browserManifest.data, nodeManifest.data);
|
|
98
98
|
return {
|
|
99
99
|
mergedStats: mergedStats,
|
|
100
|
-
mergedStatsFilePath:
|
|
100
|
+
mergedStatsFilePath: browserStats.filename,
|
|
101
101
|
mergedManifest: mergedManifest,
|
|
102
|
-
mergedManifestFilePath:
|
|
102
|
+
mergedManifestFilePath: browserManifest.filename
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
-
function updateStatsAndManifest(
|
|
106
|
-
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(
|
|
105
|
+
function updateStatsAndManifest(nodeAssets, browserAssets, outputDir) {
|
|
106
|
+
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(nodeAssets, browserAssets);
|
|
107
107
|
fs_extra.writeFileSync(path.resolve(outputDir, mergedStatsFilePath), JSON.stringify(mergedStats, null, 2));
|
|
108
108
|
fs_extra.writeFileSync(path.resolve(outputDir, mergedManifestFilePath), JSON.stringify(mergedManifest, null, 2));
|
|
109
109
|
}
|
|
@@ -112,7 +112,6 @@ const resolve = ssr_require.resolve;
|
|
|
112
112
|
const SSR_DIR = 'ssr';
|
|
113
113
|
const SSR_ENV_NAME = 'mf-ssr';
|
|
114
114
|
function setSSREnv() {
|
|
115
|
-
process.env['MF_DISABLE_EMIT_STATS'] = 'true';
|
|
116
115
|
process.env['MF_SSR_PRJ'] = 'true';
|
|
117
116
|
}
|
|
118
117
|
const isDev = ()=>'development' === process.env['NODE_ENV'];
|
|
@@ -275,12 +274,52 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
275
274
|
options: {
|
|
276
275
|
nodePlugin: void 0,
|
|
277
276
|
browserPlugin: void 0,
|
|
278
|
-
|
|
277
|
+
rspressSSGPlugin: void 0,
|
|
278
|
+
distOutputDir: void 0,
|
|
279
|
+
browserEnvironmentName: void 0,
|
|
280
|
+
nodeEnvironmentName: void 0
|
|
279
281
|
},
|
|
282
|
+
assetResources: {},
|
|
280
283
|
isSSRConfig,
|
|
281
284
|
isRspressSSGConfig
|
|
282
285
|
};
|
|
283
286
|
api.expose(RSBUILD_PLUGIN_MODULE_FEDERATION_NAME, generateMergedStatsAndManifestOptions);
|
|
287
|
+
const defaultBrowserEnvironmentName = environment;
|
|
288
|
+
const assetFileNames = getManifestFileName(moduleFederationOptions.manifest);
|
|
289
|
+
if (false !== moduleFederationOptions.manifest) api.processAssets({
|
|
290
|
+
stage: 'report'
|
|
291
|
+
}, ({ assets, environment: envContext })=>{
|
|
292
|
+
const expectedBrowserEnv = generateMergedStatsAndManifestOptions.options.browserEnvironmentName ?? defaultBrowserEnvironmentName;
|
|
293
|
+
const expectedNodeEnv = generateMergedStatsAndManifestOptions.options.nodeEnvironmentName ?? SSR_ENV_NAME;
|
|
294
|
+
const envName = envContext.name;
|
|
295
|
+
if (envName !== expectedBrowserEnv && envName !== expectedNodeEnv) return;
|
|
296
|
+
const assetResources = generateMergedStatsAndManifestOptions.assetResources;
|
|
297
|
+
const targetResources = assetResources[envName] || (assetResources[envName] = {});
|
|
298
|
+
const statsAsset = assets[assetFileNames.statsFileName];
|
|
299
|
+
if (statsAsset) try {
|
|
300
|
+
const raw = statsAsset.source();
|
|
301
|
+
const content = 'string' == typeof raw ? raw : raw.toString();
|
|
302
|
+
targetResources.stats = {
|
|
303
|
+
data: JSON.parse(content),
|
|
304
|
+
filename: assetFileNames.statsFileName
|
|
305
|
+
};
|
|
306
|
+
} catch (err) {
|
|
307
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
308
|
+
src_logger.error(`Failed to parse stats asset "${assetFileNames.statsFileName}" for environment "${envName}": ${message}`);
|
|
309
|
+
}
|
|
310
|
+
const manifestAsset = assets[assetFileNames.manifestFileName];
|
|
311
|
+
if (manifestAsset) try {
|
|
312
|
+
const raw = manifestAsset.source();
|
|
313
|
+
const content = 'string' == typeof raw ? raw : raw.toString();
|
|
314
|
+
targetResources.manifest = {
|
|
315
|
+
data: JSON.parse(content),
|
|
316
|
+
filename: assetFileNames.manifestFileName
|
|
317
|
+
};
|
|
318
|
+
} catch (err) {
|
|
319
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
320
|
+
src_logger.error(`Failed to parse manifest asset "${assetFileNames.manifestFileName}" for environment "${envName}": ${message}`);
|
|
321
|
+
}
|
|
322
|
+
});
|
|
284
323
|
api.onBeforeCreateCompiler(({ bundlerConfigs })=>{
|
|
285
324
|
if (!bundlerConfigs) throw new Error('Can not get bundlerConfigs!');
|
|
286
325
|
bundlerConfigs.forEach((bundlerConfig)=>{
|
|
@@ -331,6 +370,7 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
331
370
|
var _bundlerConfig_output2;
|
|
332
371
|
if (isSSRConfig(bundlerConfig.name)) {
|
|
333
372
|
generateMergedStatsAndManifestOptions.options.nodePlugin = new ModuleFederationPlugin(createSSRMFConfig(moduleFederationOptions));
|
|
373
|
+
generateMergedStatsAndManifestOptions.options.nodeEnvironmentName = bundlerConfig.name || SSR_ENV_NAME;
|
|
334
374
|
bundlerConfig.plugins.push(generateMergedStatsAndManifestOptions.options.nodePlugin);
|
|
335
375
|
return;
|
|
336
376
|
}
|
|
@@ -351,15 +391,24 @@ const pluginModuleFederation = (moduleFederationOptions, rsbuildOptions)=>({
|
|
|
351
391
|
}
|
|
352
392
|
generateMergedStatsAndManifestOptions.options.browserPlugin = new ModuleFederationPlugin(moduleFederationOptions);
|
|
353
393
|
generateMergedStatsAndManifestOptions.options.distOutputDir = (null == (_bundlerConfig_output2 = bundlerConfig.output) ? void 0 : _bundlerConfig_output2.path) || '';
|
|
394
|
+
generateMergedStatsAndManifestOptions.options.browserEnvironmentName = bundlerConfig.name || defaultBrowserEnvironmentName;
|
|
354
395
|
bundlerConfig.plugins.push(generateMergedStatsAndManifestOptions.options.browserPlugin);
|
|
355
396
|
}
|
|
356
397
|
}
|
|
357
398
|
});
|
|
358
399
|
});
|
|
359
400
|
const generateMergedStatsAndManifest = ()=>{
|
|
360
|
-
const {
|
|
361
|
-
if (!
|
|
362
|
-
|
|
401
|
+
const { distOutputDir, browserEnvironmentName, nodeEnvironmentName } = generateMergedStatsAndManifestOptions.options;
|
|
402
|
+
if (!distOutputDir || !browserEnvironmentName || !nodeEnvironmentName) return;
|
|
403
|
+
const assetResources = generateMergedStatsAndManifestOptions.assetResources;
|
|
404
|
+
const browserAssets = assetResources[browserEnvironmentName];
|
|
405
|
+
const nodeAssets = assetResources[nodeEnvironmentName];
|
|
406
|
+
if (!browserAssets || !nodeAssets) return;
|
|
407
|
+
try {
|
|
408
|
+
updateStatsAndManifest(nodeAssets, browserAssets, distOutputDir);
|
|
409
|
+
} catch (err) {
|
|
410
|
+
src_logger.error(err);
|
|
411
|
+
}
|
|
363
412
|
};
|
|
364
413
|
api.onDevCompileDone(()=>{
|
|
365
414
|
generateMergedStatsAndManifest();
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { DEFAULT_ASSET_PREFIX } from '../constant';
|
|
|
3
3
|
export { autoDeleteSplitChunkCacheGroups } from './autoDeleteSplitChunkCacheGroups';
|
|
4
4
|
export { addDataFetchExposes } from './addDataFetchExposes';
|
|
5
5
|
export { updateStatsAndManifest } from './manifest';
|
|
6
|
+
export type { StatsAssetResource } from './manifest';
|
|
6
7
|
export { patchSSRRspackConfig, createSSRREnvConfig, createSSRMFConfig, setSSREnv, SSR_DIR, SSR_ENV_NAME, } from './ssr';
|
package/dist/utils/manifest.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { Stats, Manifest } from '@module-federation/sdk';
|
|
2
|
+
type AssetResource<T> = {
|
|
3
|
+
data: T;
|
|
4
|
+
filename: string;
|
|
5
|
+
};
|
|
6
|
+
export type StatsAssetResource = {
|
|
7
|
+
stats?: AssetResource<Stats>;
|
|
8
|
+
manifest?: AssetResource<Manifest>;
|
|
9
|
+
};
|
|
10
|
+
export declare function updateStatsAndManifest(nodeAssets: StatsAssetResource, browserAssets: StatsAssetResource, outputDir: string): void;
|
|
5
11
|
export {};
|
package/dist/utils.js
CHANGED
|
@@ -136,21 +136,21 @@ function mergeManifest(browserManifest, nodeManifest) {
|
|
|
136
136
|
if ('publicPath' in browserManifest.metaData) browserManifest.metaData.ssrPublicPath = nodeManifest.metaData.publicPath;
|
|
137
137
|
return browserManifest;
|
|
138
138
|
}
|
|
139
|
-
function mergeStatsAndManifest(
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
if (!
|
|
143
|
-
const mergedStats = mergeStats(
|
|
144
|
-
const mergedManifest = mergeManifest(
|
|
139
|
+
function mergeStatsAndManifest(nodeAssets, browserAssets) {
|
|
140
|
+
const { stats: browserStats, manifest: browserManifest } = browserAssets;
|
|
141
|
+
const { stats: nodeStats, manifest: nodeManifest } = nodeAssets;
|
|
142
|
+
if (!browserStats || !nodeStats || !browserManifest || !nodeManifest) throw new Error('Failed to read stats or manifest assets for merge');
|
|
143
|
+
const mergedStats = mergeStats(browserStats.data, nodeStats.data);
|
|
144
|
+
const mergedManifest = mergeManifest(browserManifest.data, nodeManifest.data);
|
|
145
145
|
return {
|
|
146
146
|
mergedStats: mergedStats,
|
|
147
|
-
mergedStatsFilePath:
|
|
147
|
+
mergedStatsFilePath: browserStats.filename,
|
|
148
148
|
mergedManifest: mergedManifest,
|
|
149
|
-
mergedManifestFilePath:
|
|
149
|
+
mergedManifestFilePath: browserManifest.filename
|
|
150
150
|
};
|
|
151
151
|
}
|
|
152
|
-
function updateStatsAndManifest(
|
|
153
|
-
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(
|
|
152
|
+
function updateStatsAndManifest(nodeAssets, browserAssets, outputDir) {
|
|
153
|
+
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(nodeAssets, browserAssets);
|
|
154
154
|
external_fs_extra_default().writeFileSync(external_path_default().resolve(outputDir, mergedStatsFilePath), JSON.stringify(mergedStats, null, 2));
|
|
155
155
|
external_fs_extra_default().writeFileSync(external_path_default().resolve(outputDir, mergedManifestFilePath), JSON.stringify(mergedManifest, null, 2));
|
|
156
156
|
}
|
|
@@ -160,7 +160,6 @@ const resolve = ssr_require.resolve;
|
|
|
160
160
|
const SSR_DIR = 'ssr';
|
|
161
161
|
const SSR_ENV_NAME = 'mf-ssr';
|
|
162
162
|
function setSSREnv() {
|
|
163
|
-
process.env['MF_DISABLE_EMIT_STATS'] = 'true';
|
|
164
163
|
process.env['MF_SSR_PRJ'] = 'true';
|
|
165
164
|
}
|
|
166
165
|
const isDev = ()=>'development' === process.env['NODE_ENV'];
|
package/dist/utils.mjs
CHANGED
|
@@ -84,21 +84,21 @@ function mergeManifest(browserManifest, nodeManifest) {
|
|
|
84
84
|
if ('publicPath' in browserManifest.metaData) browserManifest.metaData.ssrPublicPath = nodeManifest.metaData.publicPath;
|
|
85
85
|
return browserManifest;
|
|
86
86
|
}
|
|
87
|
-
function mergeStatsAndManifest(
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
if (!
|
|
91
|
-
const mergedStats = mergeStats(
|
|
92
|
-
const mergedManifest = mergeManifest(
|
|
87
|
+
function mergeStatsAndManifest(nodeAssets, browserAssets) {
|
|
88
|
+
const { stats: browserStats, manifest: browserManifest } = browserAssets;
|
|
89
|
+
const { stats: nodeStats, manifest: nodeManifest } = nodeAssets;
|
|
90
|
+
if (!browserStats || !nodeStats || !browserManifest || !nodeManifest) throw new Error('Failed to read stats or manifest assets for merge');
|
|
91
|
+
const mergedStats = mergeStats(browserStats.data, nodeStats.data);
|
|
92
|
+
const mergedManifest = mergeManifest(browserManifest.data, nodeManifest.data);
|
|
93
93
|
return {
|
|
94
94
|
mergedStats: mergedStats,
|
|
95
|
-
mergedStatsFilePath:
|
|
95
|
+
mergedStatsFilePath: browserStats.filename,
|
|
96
96
|
mergedManifest: mergedManifest,
|
|
97
|
-
mergedManifestFilePath:
|
|
97
|
+
mergedManifestFilePath: browserManifest.filename
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
function updateStatsAndManifest(
|
|
101
|
-
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(
|
|
100
|
+
function updateStatsAndManifest(nodeAssets, browserAssets, outputDir) {
|
|
101
|
+
const { mergedStats, mergedStatsFilePath, mergedManifest, mergedManifestFilePath } = mergeStatsAndManifest(nodeAssets, browserAssets);
|
|
102
102
|
fs_extra.writeFileSync(path.resolve(outputDir, mergedStatsFilePath), JSON.stringify(mergedStats, null, 2));
|
|
103
103
|
fs_extra.writeFileSync(path.resolve(outputDir, mergedManifestFilePath), JSON.stringify(mergedManifest, null, 2));
|
|
104
104
|
}
|
|
@@ -107,7 +107,6 @@ const resolve = ssr_require.resolve;
|
|
|
107
107
|
const SSR_DIR = 'ssr';
|
|
108
108
|
const SSR_ENV_NAME = 'mf-ssr';
|
|
109
109
|
function setSSREnv() {
|
|
110
|
-
process.env['MF_DISABLE_EMIT_STATS'] = 'true';
|
|
111
110
|
process.env['MF_SSR_PRJ'] = 'true';
|
|
112
111
|
}
|
|
113
112
|
const isDev = ()=>'development' === process.env['NODE_ENV'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/rsbuild-plugin",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.4",
|
|
4
4
|
"description": "Module Federation plugin for Rsbuild",
|
|
5
5
|
"homepage": "https://module-federation.io",
|
|
6
6
|
"bugs": {
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"fs-extra": "11.3.0",
|
|
53
|
-
"@module-federation/
|
|
54
|
-
"@module-federation/
|
|
55
|
-
"@module-federation/enhanced": "0.21.
|
|
53
|
+
"@module-federation/sdk": "0.21.4",
|
|
54
|
+
"@module-federation/node": "2.7.23",
|
|
55
|
+
"@module-federation/enhanced": "0.21.4"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@rslib/core": "^0.12.4",
|