@module-federation/enhanced 2.5.1 → 2.6.0
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @module-federation/enhanced
|
|
2
2
|
|
|
3
|
+
## 2.6.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 9dd3a5b: Fix consume-shared runtime output ordering for stable build hashes.
|
|
8
|
+
- Updated dependencies [2a7f724]
|
|
9
|
+
- @module-federation/dts-plugin@2.6.0
|
|
10
|
+
- @module-federation/cli@2.6.0
|
|
11
|
+
- @module-federation/manifest@2.6.0
|
|
12
|
+
- @module-federation/rspack@2.6.0
|
|
13
|
+
- @module-federation/runtime-tools@2.6.0
|
|
14
|
+
- @module-federation/webpack-bundler-runtime@2.6.0
|
|
15
|
+
- @module-federation/inject-external-runtime-core-plugin@2.6.0
|
|
16
|
+
- @module-federation/sdk@2.6.0
|
|
17
|
+
- @module-federation/managers@2.6.0
|
|
18
|
+
- @module-federation/bridge-react-webpack-plugin@2.6.0
|
|
19
|
+
- @module-federation/error-codes@2.6.0
|
|
20
|
+
|
|
3
21
|
## 2.5.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -5,6 +5,7 @@ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/
|
|
|
5
5
|
|
|
6
6
|
//#region src/lib/sharing/ConsumeSharedRuntimeModule.ts
|
|
7
7
|
const { Template, RuntimeGlobals, RuntimeModule } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
8
|
+
const { compareModulesByIdentifier } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/comparators"));
|
|
8
9
|
var ConsumeSharedRuntimeModule = class extends RuntimeModule {
|
|
9
10
|
/**
|
|
10
11
|
* @param {ReadonlySet<string>} runtimeRequirements runtime requirements
|
|
@@ -59,13 +60,13 @@ var ConsumeSharedRuntimeModule = class extends RuntimeModule {
|
|
|
59
60
|
};
|
|
60
61
|
const allChunks = [...this.chunk?.getAllReferencedChunks() || []];
|
|
61
62
|
for (const chunk of allChunks) {
|
|
62
|
-
const modules = chunkGraph.
|
|
63
|
+
const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(chunk, "consume-shared", compareModulesByIdentifier);
|
|
63
64
|
if (!modules) continue;
|
|
64
65
|
if (chunk.id === null || typeof chunk.id === "string" && !chunk.id) continue;
|
|
65
66
|
addModules(modules, chunk, chunkToModuleMapping[chunk.id.toString()] = []);
|
|
66
67
|
}
|
|
67
68
|
for (const chunk of [...this.chunk?.getAllInitialChunks() || []]) {
|
|
68
|
-
const modules = chunkGraph.
|
|
69
|
+
const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(chunk, "consume-shared", compareModulesByIdentifier);
|
|
69
70
|
if (!modules) continue;
|
|
70
71
|
addModules(modules, chunk, initialConsumes);
|
|
71
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsumeSharedRuntimeModule.js","names":["getFederationGlobalScope"],"sources":["../../../../src/lib/sharing/ConsumeSharedRuntimeModule.ts"],"sourcesContent":["/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nimport type { Module, ChunkGraph, Compilation, Chunk } from 'webpack';\nimport ConsumeSharedModule from './ConsumeSharedModule';\nimport { getFederationGlobalScope } from '../container/runtime/utils';\n\nconst { Template, RuntimeGlobals, RuntimeModule } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass ConsumeSharedRuntimeModule extends RuntimeModule {\n private _runtimeRequirements: ReadonlySet<string>;\n\n /**\n * @param {ReadonlySet<string>} runtimeRequirements runtime requirements\n */\n constructor(runtimeRequirements: ReadonlySet<string>) {\n super('consumes', RuntimeModule.STAGE_ATTACH);\n this._runtimeRequirements = runtimeRequirements;\n }\n\n /**\n * @returns {string | null} runtime code\n */\n override generate(): string | null {\n const compilation: Compilation = this.compilation!;\n const chunkGraph: ChunkGraph = this.chunkGraph!;\n const { runtimeTemplate, codeGenerationResults } = compilation;\n if (!codeGenerationResults) {\n return null;\n }\n const chunkToModuleMapping: Record<string, any> = {};\n const moduleIdToSourceMapping: Map<string | number, string> = new Map();\n const initialConsumes: (string | number)[] = [];\n /**\n *\n * @param {Iterable<Module>} modules modules\n * @param {Chunk} chunk the chunk\n * @param {(string | number)[]} list list of ids\n */\n const addModules = (\n modules: Iterable<Module>,\n chunk: Chunk,\n list: (string | number)[],\n ) => {\n for (const m of modules) {\n const module: ConsumeSharedModule = m as unknown as ConsumeSharedModule;\n // @ts-ignore\n const id = chunkGraph.getModuleId(module);\n if (id === null || id === undefined) {\n continue;\n }\n list.push(id);\n const moduleGetter = codeGenerationResults.getSource(\n // @ts-ignore\n module,\n chunk.runtime,\n 'consume-shared',\n );\n if (!moduleGetter) {\n continue;\n }\n const shareOption = codeGenerationResults.getData(\n // @ts-ignore\n module,\n chunk.runtime,\n 'consume-shared',\n );\n if (!shareOption) {\n continue;\n }\n moduleIdToSourceMapping.set(\n id,\n Template.asString([\n '{',\n Template.indent([\n `fallback: ${moduleGetter.source().toString()},`,\n `shareScope: ${JSON.stringify(\n Array.isArray(shareOption.shareScope)\n ? shareOption.shareScope\n : [shareOption.shareScope || 'default'],\n )},`,\n `singleton: ${JSON.stringify(shareOption.shareConfig.singleton)},`,\n `requiredVersion: ${JSON.stringify(shareOption.shareConfig.requiredVersion)},`,\n `strictVersion: ${JSON.stringify(shareOption.shareConfig.strictVersion)},`,\n `eager: ${JSON.stringify(shareOption.shareConfig.eager)},`,\n `layer: ${JSON.stringify(shareOption.shareConfig.layer)},`,\n `shareKey: \"${shareOption.shareKey}\",`,\n `${shareOption.treeShakingMode ? `treeShakingMode: ${JSON.stringify(shareOption.treeShakingMode)},` : ''}`,\n ]),\n '}',\n ]),\n );\n }\n };\n\n const allChunks = [...(this.chunk?.getAllReferencedChunks() || [])];\n for (const chunk of allChunks) {\n const modules = chunkGraph.
|
|
1
|
+
{"version":3,"file":"ConsumeSharedRuntimeModule.js","names":["getFederationGlobalScope"],"sources":["../../../../src/lib/sharing/ConsumeSharedRuntimeModule.ts"],"sourcesContent":["/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy\n*/\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nimport type { Module, ChunkGraph, Compilation, Chunk } from 'webpack';\nimport ConsumeSharedModule from './ConsumeSharedModule';\nimport { getFederationGlobalScope } from '../container/runtime/utils';\n\nconst { Template, RuntimeGlobals, RuntimeModule } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\nconst { compareModulesByIdentifier } = require(\n normalizeWebpackPath('webpack/lib/util/comparators'),\n) as typeof import('webpack/lib/util/comparators');\n\nclass ConsumeSharedRuntimeModule extends RuntimeModule {\n private _runtimeRequirements: ReadonlySet<string>;\n\n /**\n * @param {ReadonlySet<string>} runtimeRequirements runtime requirements\n */\n constructor(runtimeRequirements: ReadonlySet<string>) {\n super('consumes', RuntimeModule.STAGE_ATTACH);\n this._runtimeRequirements = runtimeRequirements;\n }\n\n /**\n * @returns {string | null} runtime code\n */\n override generate(): string | null {\n const compilation: Compilation = this.compilation!;\n const chunkGraph: ChunkGraph = this.chunkGraph!;\n const { runtimeTemplate, codeGenerationResults } = compilation;\n if (!codeGenerationResults) {\n return null;\n }\n const chunkToModuleMapping: Record<string, any> = {};\n const moduleIdToSourceMapping: Map<string | number, string> = new Map();\n const initialConsumes: (string | number)[] = [];\n /**\n *\n * @param {Iterable<Module>} modules modules\n * @param {Chunk} chunk the chunk\n * @param {(string | number)[]} list list of ids\n */\n const addModules = (\n modules: Iterable<Module>,\n chunk: Chunk,\n list: (string | number)[],\n ) => {\n for (const m of modules) {\n const module: ConsumeSharedModule = m as unknown as ConsumeSharedModule;\n // @ts-ignore\n const id = chunkGraph.getModuleId(module);\n if (id === null || id === undefined) {\n continue;\n }\n list.push(id);\n const moduleGetter = codeGenerationResults.getSource(\n // @ts-ignore\n module,\n chunk.runtime,\n 'consume-shared',\n );\n if (!moduleGetter) {\n continue;\n }\n const shareOption = codeGenerationResults.getData(\n // @ts-ignore\n module,\n chunk.runtime,\n 'consume-shared',\n );\n if (!shareOption) {\n continue;\n }\n moduleIdToSourceMapping.set(\n id,\n Template.asString([\n '{',\n Template.indent([\n `fallback: ${moduleGetter.source().toString()},`,\n `shareScope: ${JSON.stringify(\n Array.isArray(shareOption.shareScope)\n ? shareOption.shareScope\n : [shareOption.shareScope || 'default'],\n )},`,\n `singleton: ${JSON.stringify(shareOption.shareConfig.singleton)},`,\n `requiredVersion: ${JSON.stringify(shareOption.shareConfig.requiredVersion)},`,\n `strictVersion: ${JSON.stringify(shareOption.shareConfig.strictVersion)},`,\n `eager: ${JSON.stringify(shareOption.shareConfig.eager)},`,\n `layer: ${JSON.stringify(shareOption.shareConfig.layer)},`,\n `shareKey: \"${shareOption.shareKey}\",`,\n `${shareOption.treeShakingMode ? `treeShakingMode: ${JSON.stringify(shareOption.treeShakingMode)},` : ''}`,\n ]),\n '}',\n ]),\n );\n }\n };\n\n const allChunks = [...(this.chunk?.getAllReferencedChunks() || [])];\n for (const chunk of allChunks) {\n const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(\n chunk,\n 'consume-shared',\n compareModulesByIdentifier,\n );\n if (!modules) continue;\n // chunk.id may equal 0\n if (chunk.id === null || (typeof chunk.id === 'string' && !chunk.id))\n continue;\n\n addModules(\n modules,\n chunk,\n (chunkToModuleMapping[chunk.id.toString()] = []),\n );\n }\n for (const chunk of [...(this.chunk?.getAllInitialChunks() || [])]) {\n const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(\n chunk,\n 'consume-shared',\n compareModulesByIdentifier,\n );\n if (!modules) continue;\n addModules(modules, chunk, initialConsumes);\n }\n\n if (moduleIdToSourceMapping.size === 0) return null;\n\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals);\n\n return Template.asString([\n 'var installedModules = {};',\n `${RuntimeGlobals.require}.consumesLoadingData.moduleIdToConsumeDataMapping = {`,\n Template.indent(\n Array.from(moduleIdToSourceMapping, ([key, value]) => {\n return `${JSON.stringify(key)}: ${value}`;\n }).join(',\\n'),\n ),\n '};',\n\n `var moduleToHandlerMapping = {};`,\n\n initialConsumes.length > 0\n ? Template.asString([\n `${RuntimeGlobals.require}.consumesLoadingData.initialConsumes = ${JSON.stringify(initialConsumes)};`,\n `${federationGlobal}.installInitialConsumes = ${runtimeTemplate.returningFunction(\n Template.asString([\n `${federationGlobal}.bundlerRuntime.installInitialConsumes({`,\n Template.indent([\n `initialConsumes: ${RuntimeGlobals.require}.consumesLoadingData.initialConsumes,`,\n 'installedModules:installedModules,',\n `moduleToHandlerMapping,`,\n `webpackRequire: ${RuntimeGlobals.require},`,\n `asyncLoad: typeof options==='object' ? options.asyncLoad : undefined,`,\n ]),\n `})`,\n ]),\n 'options',\n )}`,\n ])\n : '// no consumes in initial chunks',\n this._runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers)\n ? Template.asString([\n `${RuntimeGlobals.require}.consumesLoadingData.chunkMapping = ${JSON.stringify(\n chunkToModuleMapping,\n null,\n '\\t',\n )};`,\n `${\n RuntimeGlobals.ensureChunkHandlers\n }.consumes = ${runtimeTemplate.basicFunction('chunkId, promises', [\n `${federationGlobal}.bundlerRuntime.consumes({`,\n `chunkMapping: ${RuntimeGlobals.require}.consumesLoadingData.chunkMapping,`,\n 'installedModules: installedModules,',\n 'chunkId: chunkId,',\n `moduleToHandlerMapping,`,\n 'promises: promises,',\n `webpackRequire:${RuntimeGlobals.require}`,\n '});',\n ])}`,\n ])\n : '// no chunk loading of consumes',\n ]);\n }\n}\n\nexport default ConsumeSharedRuntimeModule;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/enhanced",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"main": "./dist/src/index.js",
|
|
5
5
|
"types": "./dist/src/index.d.ts",
|
|
6
6
|
"repository": {
|
|
@@ -85,17 +85,17 @@
|
|
|
85
85
|
"upath": "2.0.1",
|
|
86
86
|
"schema-utils": "4.3.0",
|
|
87
87
|
"tapable": "2.3.0",
|
|
88
|
-
"@module-federation/webpack-bundler-runtime": "2.
|
|
89
|
-
"@module-federation/
|
|
90
|
-
"@module-federation/error-codes": "2.
|
|
91
|
-
"@module-federation/inject-external-runtime-core-plugin": "2.
|
|
92
|
-
"@module-federation/
|
|
93
|
-
"@module-federation/
|
|
94
|
-
"@module-federation/
|
|
95
|
-
"@module-federation/
|
|
96
|
-
"@module-federation/
|
|
97
|
-
"@module-federation/
|
|
98
|
-
"@module-federation/cli": "2.
|
|
88
|
+
"@module-federation/webpack-bundler-runtime": "2.6.0",
|
|
89
|
+
"@module-federation/bridge-react-webpack-plugin": "2.6.0",
|
|
90
|
+
"@module-federation/error-codes": "2.6.0",
|
|
91
|
+
"@module-federation/inject-external-runtime-core-plugin": "2.6.0",
|
|
92
|
+
"@module-federation/managers": "2.6.0",
|
|
93
|
+
"@module-federation/manifest": "2.6.0",
|
|
94
|
+
"@module-federation/dts-plugin": "2.6.0",
|
|
95
|
+
"@module-federation/rspack": "2.6.0",
|
|
96
|
+
"@module-federation/runtime-tools": "2.6.0",
|
|
97
|
+
"@module-federation/sdk": "2.6.0",
|
|
98
|
+
"@module-federation/cli": "2.6.0"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|
|
101
101
|
"generate:schema": "node src/scripts/compile-schema.js && node src/scripts/generate-sdk-types.js",
|