@module-federation/enhanced 0.10.0 → 0.11.1
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/package.json +1 -1
- package/dist/src/lib/container/ContainerEntryDependency.d.ts +1 -4
- package/dist/src/lib/container/ContainerEntryDependency.js +1 -3
- package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModule.d.ts +1 -3
- package/dist/src/lib/container/ContainerEntryModule.js +4 -22
- package/dist/src/lib/container/ContainerEntryModule.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -1
- package/dist/src/lib/container/ContainerPlugin.js +3 -5
- package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.js +7 -5
- package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +1 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +18 -2
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +22 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +69 -5
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +1 -0
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +42 -55
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +11 -5
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -1
- package/dist/src/lib/startup/StartupHelpers.js +1 -0
- package/dist/src/lib/startup/StartupHelpers.js.map +1 -1
- package/dist/src/schemas/container/ContainerPlugin.check.d.ts +1 -1
- package/dist/src/schemas/container/ContainerPlugin.check.js +516 -544
- package/dist/src/schemas/container/ContainerPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ContainerPlugin.d.ts +3 -6
- package/dist/src/schemas/container/ContainerPlugin.js +3 -9
- package/dist/src/schemas/container/ContainerPlugin.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.check.d.ts +0 -5
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js +535 -604
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +3 -8
- package/dist/src/schemas/container/ModuleFederationPlugin.js +3 -11
- package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
- package/package.json +12 -12
- package/dist/src/lib/container/runtime/RemoteEntryPlugin.d.ts +0 -8
- package/dist/src/lib/container/runtime/RemoteEntryPlugin.js +0 -32
- package/dist/src/lib/container/runtime/RemoteEntryPlugin.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -6,18 +6,15 @@ declare class ContainerEntryDependency extends Dependency {
|
|
|
6
6
|
exposes: [string, ExposeOptions][];
|
|
7
7
|
shareScope: string;
|
|
8
8
|
injectRuntimeEntry: string;
|
|
9
|
-
/** Additional experimental options for container plugin customization */
|
|
10
|
-
experiments: containerPlugin.ContainerPluginOptions['experiments'];
|
|
11
9
|
dataPrefetch: containerPlugin.ContainerPluginOptions['dataPrefetch'];
|
|
12
10
|
/**
|
|
13
11
|
* @param {string} name entry name
|
|
14
12
|
* @param {[string, ExposeOptions][]} exposes list of exposed modules
|
|
15
13
|
* @param {string} shareScope name of the share scope
|
|
16
14
|
* @param {string[]} injectRuntimeEntry the path of injectRuntime file.
|
|
17
|
-
* @param {containerPlugin.ContainerPluginOptions['experiments']} experiments additional experiments options
|
|
18
15
|
* @param {containerPlugin.ContainerPluginOptions['dataPrefetch']} dataPrefetch whether enable dataPrefetch
|
|
19
16
|
*/
|
|
20
|
-
constructor(name: string, exposes: [string, ExposeOptions][], shareScope: string, injectRuntimeEntry: string,
|
|
17
|
+
constructor(name: string, exposes: [string, ExposeOptions][], shareScope: string, injectRuntimeEntry: string, dataPrefetch: containerPlugin.ContainerPluginOptions['dataPrefetch']);
|
|
21
18
|
/**
|
|
22
19
|
* @returns {string | null} an identifier to merge equal requests
|
|
23
20
|
*/
|
|
@@ -13,16 +13,14 @@ class ContainerEntryDependency extends Dependency {
|
|
|
13
13
|
* @param {[string, ExposeOptions][]} exposes list of exposed modules
|
|
14
14
|
* @param {string} shareScope name of the share scope
|
|
15
15
|
* @param {string[]} injectRuntimeEntry the path of injectRuntime file.
|
|
16
|
-
* @param {containerPlugin.ContainerPluginOptions['experiments']} experiments additional experiments options
|
|
17
16
|
* @param {containerPlugin.ContainerPluginOptions['dataPrefetch']} dataPrefetch whether enable dataPrefetch
|
|
18
17
|
*/
|
|
19
|
-
constructor(name, exposes, shareScope, injectRuntimeEntry,
|
|
18
|
+
constructor(name, exposes, shareScope, injectRuntimeEntry, dataPrefetch) {
|
|
20
19
|
super();
|
|
21
20
|
this.name = name;
|
|
22
21
|
this.exposes = exposes;
|
|
23
22
|
this.shareScope = shareScope;
|
|
24
23
|
this.injectRuntimeEntry = injectRuntimeEntry;
|
|
25
|
-
this.experiments = experiments;
|
|
26
24
|
this.dataPrefetch = dataPrefetch;
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerEntryDependency.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryDependency.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAGF,0FAAqF;AAIrF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,mCAAmC,CAAC,CAC1D,CAAC;AACF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAC5B,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,wBAAyB,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"ContainerEntryDependency.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryDependency.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAGF,0FAAqF;AAIrF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,mCAAmC,CAAC,CAC1D,CAAC;AACF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAC5B,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,wBAAyB,SAAQ,UAAU;IAO/C;;;;;;OAMG;IACH,YACE,IAAY,EACZ,OAAkC,EAClC,UAAkB,EAClB,kBAA0B,EAC1B,YAAoE;QAEpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACM,qBAAqB;QAC5B,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,IAAa,IAAI;QACf,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAa,QAAQ;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,gBAAgB,CACd,wBAAwB,EACxB,iDAAiD,CAClD,CAAC;AAEF,kBAAe,wBAAwB,CAAC"}
|
|
@@ -18,17 +18,15 @@ declare class ContainerEntryModule extends Module {
|
|
|
18
18
|
private _exposes;
|
|
19
19
|
private _shareScope;
|
|
20
20
|
private _injectRuntimeEntry;
|
|
21
|
-
private _experiments;
|
|
22
21
|
private _dataPrefetch;
|
|
23
22
|
/**
|
|
24
23
|
* @param {string} name container entry name
|
|
25
24
|
* @param {[string, ExposeOptions][]} exposes list of exposed modules
|
|
26
25
|
* @param {string} shareScope name of the share scope
|
|
27
26
|
* @param {string} injectRuntimeEntry the path of injectRuntime file.
|
|
28
|
-
* @param {containerPlugin.ContainerPluginOptions['experiments']} experiments additional experiments options
|
|
29
27
|
* @param {containerPlugin.ContainerPluginOptions['dataPrefetch']} dataPrefetch whether enable dataPrefetch
|
|
30
28
|
*/
|
|
31
|
-
constructor(name: string, exposes: [string, ExposeOptions][], shareScope: string, injectRuntimeEntry: string,
|
|
29
|
+
constructor(name: string, exposes: [string, ExposeOptions][], shareScope: string, injectRuntimeEntry: string, dataPrefetch: containerPlugin.ContainerPluginOptions['dataPrefetch']);
|
|
32
30
|
/**
|
|
33
31
|
* @param {ObjectDeserializerContext} context context
|
|
34
32
|
* @returns {ContainerEntryModule} deserialized container entry module
|
|
@@ -25,16 +25,14 @@ class ContainerEntryModule extends Module {
|
|
|
25
25
|
* @param {[string, ExposeOptions][]} exposes list of exposed modules
|
|
26
26
|
* @param {string} shareScope name of the share scope
|
|
27
27
|
* @param {string} injectRuntimeEntry the path of injectRuntime file.
|
|
28
|
-
* @param {containerPlugin.ContainerPluginOptions['experiments']} experiments additional experiments options
|
|
29
28
|
* @param {containerPlugin.ContainerPluginOptions['dataPrefetch']} dataPrefetch whether enable dataPrefetch
|
|
30
29
|
*/
|
|
31
|
-
constructor(name, exposes, shareScope, injectRuntimeEntry,
|
|
30
|
+
constructor(name, exposes, shareScope, injectRuntimeEntry, dataPrefetch) {
|
|
32
31
|
super(Constants_1.JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
|
33
32
|
this._name = name;
|
|
34
33
|
this._exposes = exposes;
|
|
35
34
|
this._shareScope = shareScope;
|
|
36
35
|
this._injectRuntimeEntry = injectRuntimeEntry;
|
|
37
|
-
this._experiments = experiments;
|
|
38
36
|
this._dataPrefetch = dataPrefetch;
|
|
39
37
|
}
|
|
40
38
|
/**
|
|
@@ -43,7 +41,7 @@ class ContainerEntryModule extends Module {
|
|
|
43
41
|
*/
|
|
44
42
|
static deserialize(context) {
|
|
45
43
|
const { read } = context;
|
|
46
|
-
const obj = new ContainerEntryModule(read(), read(), read(), read(), read()
|
|
44
|
+
const obj = new ContainerEntryModule(read(), read(), read(), read(), read());
|
|
47
45
|
obj.deserialize(context);
|
|
48
46
|
return obj;
|
|
49
47
|
}
|
|
@@ -57,7 +55,7 @@ class ContainerEntryModule extends Module {
|
|
|
57
55
|
* @returns {string} a unique identifier of the module
|
|
58
56
|
*/
|
|
59
57
|
identifier() {
|
|
60
|
-
return `container entry (${this._shareScope}) ${JSON.stringify(this._exposes)} ${this._injectRuntimeEntry} ${JSON.stringify(this.
|
|
58
|
+
return `container entry (${this._shareScope}) ${JSON.stringify(this._exposes)} ${this._injectRuntimeEntry} ${JSON.stringify(this._dataPrefetch)}`;
|
|
61
59
|
}
|
|
62
60
|
/**
|
|
63
61
|
* @param {RequestShortener} requestShortener the request shortener
|
|
@@ -113,9 +111,7 @@ class ContainerEntryModule extends Module {
|
|
|
113
111
|
this.addBlock(block);
|
|
114
112
|
}
|
|
115
113
|
this.addDependency(new StaticExportsDependency(['get', 'init'], false));
|
|
116
|
-
|
|
117
|
-
this.addDependency(new EntryDependency(this._injectRuntimeEntry));
|
|
118
|
-
}
|
|
114
|
+
this.addDependency(new EntryDependency(this._injectRuntimeEntry));
|
|
119
115
|
callback();
|
|
120
116
|
}
|
|
121
117
|
/**
|
|
@@ -166,18 +162,6 @@ class ContainerEntryModule extends Module {
|
|
|
166
162
|
}
|
|
167
163
|
getters.push(`${JSON.stringify(modules[0].name)}: ${runtimeTemplate.basicFunction('', str)}`);
|
|
168
164
|
}
|
|
169
|
-
const initRuntimeDep = this.dependencies[1];
|
|
170
|
-
// no runtime module getter needed if runtime is hoisted
|
|
171
|
-
const initRuntimeModuleGetter = this._experiments?.federationRuntime
|
|
172
|
-
? ''
|
|
173
|
-
: runtimeTemplate.moduleRaw({
|
|
174
|
-
module: moduleGraph.getModule(initRuntimeDep),
|
|
175
|
-
chunkGraph,
|
|
176
|
-
// @ts-expect-error flaky type definition for Dependency
|
|
177
|
-
request: initRuntimeDep.userRequest,
|
|
178
|
-
weak: false,
|
|
179
|
-
runtimeRequirements,
|
|
180
|
-
});
|
|
181
165
|
const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals || {});
|
|
182
166
|
const source = Template.asString([
|
|
183
167
|
`var moduleMap = {`,
|
|
@@ -209,7 +193,6 @@ class ContainerEntryModule extends Module {
|
|
|
209
193
|
'})',
|
|
210
194
|
])};`,
|
|
211
195
|
this._dataPrefetch ? cli_1.PrefetchPlugin.setRemoteIdentifier() : '',
|
|
212
|
-
`${initRuntimeModuleGetter}`,
|
|
213
196
|
this._dataPrefetch ? cli_1.PrefetchPlugin.removeRemoteIdentifier() : '',
|
|
214
197
|
'// This exports getters to disallow modifications',
|
|
215
198
|
`${RuntimeGlobals.definePropertyGetters}(exports, {`,
|
|
@@ -243,7 +226,6 @@ class ContainerEntryModule extends Module {
|
|
|
243
226
|
write(this._exposes);
|
|
244
227
|
write(this._shareScope);
|
|
245
228
|
write(this._injectRuntimeEntry);
|
|
246
|
-
write(this._experiments);
|
|
247
229
|
write(this._dataPrefetch);
|
|
248
230
|
super.serialize(context);
|
|
249
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerEntryModule.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryModule.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AACb,0FAAqF;AACrF,gDAAgD;AAChD,gEAIwC;AAaxC,8DAAsE;AAEtE,4CAA8D;AAC9D,8FAAsE;AACtE,2CAA2D;AAE3D,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,mCAAmC,CAAC,CACJ,CAAC;AACxD,MAAM,EACJ,OAAO,EAAE,cAAc,EACvB,sBAAsB,EACtB,QAAQ,EACR,MAAM,EACN,cAAc,GACf,GAAG,OAAO,CAAC,IAAA,6CAAoB,EAAC,SAAS,CAAC,CAA6B,CAAC;AACzE,MAAM,uBAAuB,GAAG,OAAO,CACrC,IAAA,6CAAoB,EAAC,kDAAkD,CAAC,CACJ,CAAC;AACvE,MAAM,eAAe,GAAG,OAAO,CAC7B,IAAA,6CAAoB,EAAC,0CAA0C,CAAC,CACJ,CAAC;AAE/D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAa7C,MAAM,oBAAqB,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"ContainerEntryModule.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ class ContainerEntryModuleFactory extends ModuleFactory {
|
|
|
21
21
|
const containerDependencies = dependencies;
|
|
22
22
|
const dep = containerDependencies[0];
|
|
23
23
|
callback(null, {
|
|
24
|
-
module: new ContainerEntryModule_1.default(dep.name, dep.exposes, dep.shareScope, dep.injectRuntimeEntry, dep.
|
|
24
|
+
module: new ContainerEntryModule_1.default(dep.name, dep.exposes, dep.shareScope, dep.injectRuntimeEntry, dep.dataPrefetch),
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerEntryModuleFactory.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryModuleFactory.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AAEb,0FAAqF;AACrF,kFAA0D;AAG1D,MAAM,aAAa,GAAG,OAAO,CAC3B,IAAA,6CAAoB,EAAC,2BAA2B,CAAC,CACJ,CAAC;AAMhD,MAAqB,2BAA4B,SAAQ,aAAa;IACpE;;;;OAIG;IACM,MAAM,CACb,IAA6B,EAC7B,QAAoE;QAEpE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,qBAAqB,GACzB,YAAqD,CAAC;QACxD,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAErC,QAAQ,CAAC,IAAI,EAAE;YACb,MAAM,EAAE,IAAI,8BAAoB,CAC9B,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ContainerEntryModuleFactory.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerEntryModuleFactory.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AAEb,0FAAqF;AACrF,kFAA0D;AAG1D,MAAM,aAAa,GAAG,OAAO,CAC3B,IAAA,6CAAoB,EAAC,2BAA2B,CAAC,CACJ,CAAC;AAMhD,MAAqB,2BAA4B,SAAQ,aAAa;IACpE;;;;OAIG;IACM,MAAM,CACb,IAA6B,EAC7B,QAAoE;QAEpE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,qBAAqB,GACzB,YAAqD,CAAC;QACxD,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAErC,QAAQ,CAAC,IAAI,EAAE;YACb,MAAM,EAAE,IAAI,8BAAoB,CAC9B,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,YAAY,CACjB;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,8CAyBC"}
|
|
@@ -46,7 +46,6 @@ class ContainerPlugin {
|
|
|
46
46
|
name: item.name || undefined,
|
|
47
47
|
})),
|
|
48
48
|
runtimePlugins: options.runtimePlugins,
|
|
49
|
-
experiments: options.experiments,
|
|
50
49
|
dataPrefetch: options.dataPrefetch,
|
|
51
50
|
};
|
|
52
51
|
}
|
|
@@ -137,18 +136,17 @@ class ContainerPlugin {
|
|
|
137
136
|
compiler.options.output.enabledLibraryTypes.push(library.type);
|
|
138
137
|
}
|
|
139
138
|
compiler.hooks.make.tapAsync(PLUGIN_NAME, async (compilation, callback) => {
|
|
140
|
-
const hasSingleRuntimeChunk = compilation.options?.optimization?.runtimeChunk;
|
|
141
139
|
const hooks = FederationModulesPlugin_1.default.getCompilationHooks(compilation);
|
|
142
140
|
const federationRuntimeDependency = federationRuntimePluginInstance.getDependency(compiler);
|
|
143
141
|
const dep = new ContainerEntryDependency_1.default(name,
|
|
144
142
|
//@ts-ignore
|
|
145
|
-
exposes, shareScope, federationRuntimePluginInstance.entryFilePath, this._options.
|
|
143
|
+
exposes, shareScope, federationRuntimePluginInstance.entryFilePath, this._options.dataPrefetch);
|
|
146
144
|
dep.loc = { name };
|
|
147
145
|
await new Promise((resolve, reject) => {
|
|
148
146
|
compilation.addEntry(compilation.options.context || '', dep, {
|
|
149
147
|
name,
|
|
150
148
|
filename,
|
|
151
|
-
runtime
|
|
149
|
+
runtime,
|
|
152
150
|
library,
|
|
153
151
|
}, (error) => {
|
|
154
152
|
if (error)
|
|
@@ -189,7 +187,7 @@ class ContainerPlugin {
|
|
|
189
187
|
}
|
|
190
188
|
const dep = new ContainerEntryDependency_1.default(name,
|
|
191
189
|
//@ts-ignore
|
|
192
|
-
exposes, shareScope, federationRuntimePluginInstance.entryFilePath, this._options.
|
|
190
|
+
exposes, shareScope, federationRuntimePluginInstance.entryFilePath, this._options.dataPrefetch);
|
|
193
191
|
dep.loc = { name };
|
|
194
192
|
compilation.addInclude(compilation.options.context || '', dep, { name: undefined }, (error) => {
|
|
195
193
|
if (error)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerPlugin.ts"],"names":[],"mappings":";;;;;AAAA;;;EAGE;AACF,0FAAqF;AACrF,0FAAkE;AAClE,gGAAwE;AACxE,8FAAsE;AACtE,uCAAyC;AASzC,gGAAwE;AACxE,gGAAwE;AACxE,0GAAyE;AACzE,8FAA6D;AAC7D,wGAAgF;AAIhF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,2CAA2C,CAAC,CACJ,CAAC;AAEhE,MAAM,sBAAsB,GAAG,OAAO,CACpC,IAAA,6CAAoB,EAAC,2CAA2C,CAAC,CACJ,CAAC;AAEhE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,+BAAY,EAAE,GAAG,EAAE,CAAC,yBAAM,EAAE;IAClE,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,SAAS;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,MAAM,eAAe;IAInB,YAAY,OAA+C;QACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;YAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI;gBAC1B,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB;YACD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,YAAY;YACZ,OAAO,EAAE,IAAA,sBAAY,EACnB,OAAO,CAAC,OAAO,EACf,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3C,IAAI,EAAE,SAAS;aAChB,CAAC,EACF,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;aAC7B,CAAC,CACH;YACD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,
|
|
1
|
+
{"version":3,"file":"ContainerPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const SharePlugin_1 = __importDefault(require("../sharing/SharePlugin"));
|
|
|
17
17
|
const ContainerPlugin_1 = __importDefault(require("./ContainerPlugin"));
|
|
18
18
|
const ContainerReferencePlugin_1 = __importDefault(require("./ContainerReferencePlugin"));
|
|
19
19
|
const FederationRuntimePlugin_1 = __importDefault(require("./runtime/FederationRuntimePlugin"));
|
|
20
|
-
const
|
|
20
|
+
const remote_entry_plugin_1 = require("@module-federation/rspack/remote-entry-plugin");
|
|
21
21
|
const MfStartupChunkDependenciesPlugin_1 = __importDefault(require("../startup/MfStartupChunkDependenciesPlugin"));
|
|
22
22
|
const FederationModulesPlugin_1 = __importDefault(require("./runtime/FederationModulesPlugin"));
|
|
23
23
|
const isValidExternalsType = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/schemas/plugins/container/ExternalsType.check.js'));
|
|
@@ -47,7 +47,9 @@ class ModuleFederationPlugin {
|
|
|
47
47
|
const { _options: options } = this;
|
|
48
48
|
// must before ModuleFederationPlugin
|
|
49
49
|
if (options.getPublicPath && options.name) {
|
|
50
|
-
new
|
|
50
|
+
new remote_entry_plugin_1.RemoteEntryPlugin(options.name, options.getPublicPath).apply(
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
compiler);
|
|
51
53
|
}
|
|
52
54
|
if (options.experiments?.provideExternalRuntime) {
|
|
53
55
|
if (options.exposes) {
|
|
@@ -62,8 +64,9 @@ class ModuleFederationPlugin {
|
|
|
62
64
|
'@module-federation/runtime-core': '_FEDERATION_RUNTIME_CORE',
|
|
63
65
|
}).apply(compiler);
|
|
64
66
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
// federation hooks
|
|
68
|
+
new FederationModulesPlugin_1.default().apply(compiler);
|
|
69
|
+
if (options.experiments?.asyncStartup) {
|
|
67
70
|
new MfStartupChunkDependenciesPlugin_1.default({
|
|
68
71
|
asyncChunkLoading: true,
|
|
69
72
|
}).apply(compiler);
|
|
@@ -117,7 +120,6 @@ class ModuleFederationPlugin {
|
|
|
117
120
|
shareScope: options.shareScope,
|
|
118
121
|
exposes: options.exposes,
|
|
119
122
|
runtimePlugins: options.runtimePlugins,
|
|
120
|
-
experiments: options.experiments,
|
|
121
123
|
}).apply(compiler);
|
|
122
124
|
}
|
|
123
125
|
if (options.remotes &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AACb,8DAA0D;AAC1D,0DAAsE;AACtE,0DAA0D;AAC1D,gDAIgC;AAChC,8DAAsE;AACtE,0FAAqF;AAErF,yEAAiD;AACjD,wEAAgD;AAChD,0FAAkE;AAClE,gGAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type FederationRuntimeDependency from './FederationRuntimeDependency';
|
|
|
3
3
|
declare const RuntimeModule: typeof import("webpack").RuntimeModule;
|
|
4
4
|
declare class EmbedFederationRuntimeModule extends RuntimeModule {
|
|
5
5
|
private containerEntrySet;
|
|
6
|
+
_cachedGeneratedCode: string | undefined;
|
|
6
7
|
constructor(containerEntrySet: Set<ContainerEntryDependency | FederationRuntimeDependency>);
|
|
7
8
|
identifier(): string;
|
|
8
9
|
generate(): string | null;
|
|
@@ -5,16 +5,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
Author Zackary Jackson @ScriptedAlchemy
|
|
6
6
|
*/
|
|
7
7
|
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
8
|
-
const { RuntimeModule, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
8
|
+
const { RuntimeModule, Template, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
9
9
|
class EmbedFederationRuntimeModule extends RuntimeModule {
|
|
10
10
|
constructor(containerEntrySet) {
|
|
11
11
|
super('embed federation', RuntimeModule.STAGE_ATTACH);
|
|
12
12
|
this.containerEntrySet = containerEntrySet;
|
|
13
|
+
this._cachedGeneratedCode = undefined;
|
|
13
14
|
}
|
|
14
15
|
identifier() {
|
|
15
16
|
return 'webpack/runtime/embed/federation';
|
|
16
17
|
}
|
|
17
18
|
generate() {
|
|
19
|
+
if (this._cachedGeneratedCode !== undefined) {
|
|
20
|
+
return this._cachedGeneratedCode;
|
|
21
|
+
}
|
|
18
22
|
const { compilation, chunk, chunkGraph } = this;
|
|
19
23
|
if (!chunk || !chunkGraph || !compilation) {
|
|
20
24
|
return null;
|
|
@@ -39,7 +43,19 @@ class EmbedFederationRuntimeModule extends RuntimeModule {
|
|
|
39
43
|
weak: false,
|
|
40
44
|
runtimeRequirements: new Set(),
|
|
41
45
|
});
|
|
42
|
-
|
|
46
|
+
const result = Template.asString([
|
|
47
|
+
`var oldStartup = ${RuntimeGlobals.startup};`,
|
|
48
|
+
`var hasRun = false;`,
|
|
49
|
+
`${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction('', [
|
|
50
|
+
`if (!hasRun) {`,
|
|
51
|
+
` hasRun = true;`,
|
|
52
|
+
` ${initRuntimeModuleGetter};`,
|
|
53
|
+
`}`,
|
|
54
|
+
`return oldStartup();`,
|
|
55
|
+
])};`,
|
|
56
|
+
]);
|
|
57
|
+
this._cachedGeneratedCode = result;
|
|
58
|
+
return result;
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
61
|
exports.default = EmbedFederationRuntimeModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbedFederationRuntimeModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimeModule.ts"],"names":[],"mappings":";;AAAA;;;EAGE;AACF,0FAAqF;AAMrF,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"EmbedFederationRuntimeModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimeModule.ts"],"names":[],"mappings":";;AAAA;;;EAGE;AACF,0FAAqF;AAMrF,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CACzD,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,4BAA6B,SAAQ,aAAa;IAMtD,YACE,iBAEC;QAED,KAAK,CAAC,kBAAkB,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;IACxC,CAAC;IAEQ,UAAU;QACjB,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAEQ,QAAQ;QACf,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnD,IAAI,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC9D,KAAK,GAAG,GAAuB,CAAC;oBAChC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,uBAAuB,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC;YACpE,MAAM,EAAE,KAAK;YACb,UAAU;YACV,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK;YACX,mBAAmB,EAAE,IAAI,GAAG,EAAE;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC/B,oBAAoB,cAAc,CAAC,OAAO,GAAG;YAC7C,qBAAqB;YACrB,GAAG,cAAc,CAAC,OAAO,MAAM,WAAW,CAAC,eAAe,CAAC,aAAa,CACtE,EAAE,EACF;gBACE,gBAAgB;gBAChB,kBAAkB;gBAClB,KAAK,uBAAuB,GAAG;gBAC/B,GAAG;gBACH,sBAAsB;aACvB,CACF,GAAG;SACL,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AACD,kBAAe,4BAA4B,CAAC"}
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
import type { Compiler } from 'webpack';
|
|
2
|
+
interface EmbedFederationRuntimePluginOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Whether to enable runtime module embedding for all chunks.
|
|
5
|
+
* If false, only chunks that explicitly require it will be embedded.
|
|
6
|
+
*/
|
|
7
|
+
enableForAllChunks?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Plugin that embeds Module Federation runtime code into chunks.
|
|
11
|
+
* It ensures proper initialization of federated modules and manages runtime requirements.
|
|
12
|
+
*/
|
|
2
13
|
declare class EmbedFederationRuntimePlugin {
|
|
14
|
+
private readonly options;
|
|
15
|
+
private readonly processedChunks;
|
|
16
|
+
constructor(options?: EmbedFederationRuntimePluginOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Determines if runtime embedding should be enabled for a given chunk.
|
|
19
|
+
*/
|
|
20
|
+
private isEnabledForChunk;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if a hook has already been tapped by this plugin.
|
|
23
|
+
*/
|
|
24
|
+
private isHookAlreadyTapped;
|
|
3
25
|
apply(compiler: Compiler): void;
|
|
4
26
|
}
|
|
5
27
|
export default EmbedFederationRuntimePlugin;
|
|
@@ -8,31 +8,95 @@ const EmbedFederationRuntimeModule_1 = __importDefault(require("./EmbedFederatio
|
|
|
8
8
|
const FederationModulesPlugin_1 = __importDefault(require("./FederationModulesPlugin"));
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
10
|
const { RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
11
|
+
const PLUGIN_NAME = 'EmbedFederationRuntimePlugin';
|
|
11
12
|
const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals);
|
|
13
|
+
/**
|
|
14
|
+
* Plugin that embeds Module Federation runtime code into chunks.
|
|
15
|
+
* It ensures proper initialization of federated modules and manages runtime requirements.
|
|
16
|
+
*/
|
|
12
17
|
class EmbedFederationRuntimePlugin {
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this.processedChunks = new WeakMap();
|
|
20
|
+
this.options = {
|
|
21
|
+
enableForAllChunks: false,
|
|
22
|
+
...options,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Determines if runtime embedding should be enabled for a given chunk.
|
|
27
|
+
*/
|
|
28
|
+
isEnabledForChunk(chunk) {
|
|
29
|
+
// Disable for our special "build time chunk"
|
|
30
|
+
if (chunk.id === 'build time chunk')
|
|
31
|
+
return false;
|
|
32
|
+
return this.options.enableForAllChunks || chunk.hasRuntime();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Checks if a hook has already been tapped by this plugin.
|
|
36
|
+
*/
|
|
37
|
+
isHookAlreadyTapped(taps, hookName) {
|
|
38
|
+
return taps.some((tap) => tap.name === hookName);
|
|
39
|
+
}
|
|
13
40
|
apply(compiler) {
|
|
14
|
-
|
|
15
|
-
|
|
41
|
+
// Prevent double application of the plugin.
|
|
42
|
+
const compilationTaps = compiler.hooks.thisCompilation.taps || [];
|
|
43
|
+
if (this.isHookAlreadyTapped(compilationTaps, PLUGIN_NAME)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Tap into the compilation to modify renderStartup and runtime requirements.
|
|
47
|
+
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
48
|
+
// --- Part 1: Modify renderStartup to append a startup call when none is added automatically ---
|
|
49
|
+
const { renderStartup } = compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);
|
|
50
|
+
renderStartup.tap(PLUGIN_NAME, (startupSource, _lastInlinedModule, renderContext) => {
|
|
51
|
+
const { chunk, chunkGraph } = renderContext;
|
|
52
|
+
if (!this.isEnabledForChunk(chunk)) {
|
|
53
|
+
return startupSource;
|
|
54
|
+
}
|
|
55
|
+
const runtimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
|
|
56
|
+
const entryModuleCount = chunkGraph.getNumberOfEntryModules(chunk);
|
|
57
|
+
// The default renderBootstrap automatically pushes a startup call when either:
|
|
58
|
+
// - There is at least one entry module, OR
|
|
59
|
+
// - runtimeRequirements.has(RuntimeGlobals.startupNoDefault) is true.
|
|
60
|
+
if (entryModuleCount > 0 ||
|
|
61
|
+
runtimeRequirements.has(RuntimeGlobals.startupNoDefault)) {
|
|
62
|
+
return startupSource;
|
|
63
|
+
}
|
|
64
|
+
// Otherwise, append a startup call.
|
|
65
|
+
return new compiler.webpack.sources.ConcatSource(startupSource, '\n// Custom hook: appended startup call because none was added automatically\n', `${RuntimeGlobals.startup}();\n`);
|
|
66
|
+
});
|
|
67
|
+
// --- Part 2: Embed Federation Runtime Module and adjust runtime requirements ---
|
|
68
|
+
const federationHooks = FederationModulesPlugin_1.default.getCompilationHooks(compilation);
|
|
16
69
|
const containerEntrySet = new Set();
|
|
17
|
-
|
|
70
|
+
// Proactively add startupOnlyBefore target chunks.
|
|
71
|
+
compilation.hooks.additionalChunkRuntimeRequirements.tap(PLUGIN_NAME, (chunk, runtimeRequirements) => {
|
|
72
|
+
if (!this.isEnabledForChunk(chunk)) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
runtimeRequirements.add(RuntimeGlobals.startupOnlyBefore);
|
|
76
|
+
});
|
|
77
|
+
// Collect federation runtime dependencies.
|
|
78
|
+
federationHooks.addFederationRuntimeModule.tap(PLUGIN_NAME, (dependency) => {
|
|
18
79
|
containerEntrySet.add(dependency);
|
|
19
80
|
});
|
|
81
|
+
// Handle additional runtime requirements when federation is enabled.
|
|
20
82
|
const handleRuntimeRequirements = (chunk, runtimeRequirements) => {
|
|
21
|
-
if (
|
|
83
|
+
if (!this.isEnabledForChunk(chunk)) {
|
|
22
84
|
return;
|
|
23
85
|
}
|
|
86
|
+
// Skip if already processed or if not a federation chunk.
|
|
24
87
|
if (runtimeRequirements.has('embeddedFederationRuntime'))
|
|
25
88
|
return;
|
|
26
89
|
if (!runtimeRequirements.has(federationGlobal)) {
|
|
27
90
|
return;
|
|
28
91
|
}
|
|
92
|
+
// Mark as embedded and add the runtime module.
|
|
29
93
|
runtimeRequirements.add('embeddedFederationRuntime');
|
|
30
94
|
const runtimeModule = new EmbedFederationRuntimeModule_1.default(containerEntrySet);
|
|
31
95
|
compilation.addRuntimeModule(chunk, runtimeModule);
|
|
32
96
|
};
|
|
33
97
|
compilation.hooks.runtimeRequirementInTree
|
|
34
98
|
.for(federationGlobal)
|
|
35
|
-
.tap(
|
|
99
|
+
.tap(PLUGIN_NAME, handleRuntimeRequirements);
|
|
36
100
|
});
|
|
37
101
|
}
|
|
38
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbedFederationRuntimePlugin.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimePlugin.ts"],"names":[],"mappings":";;;;;AAAA,0FAAqF;AACrF,kGAA0E;AAC1E,wFAAgE;AAEhE,mCAAmD;AAInD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAChC,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"EmbedFederationRuntimePlugin.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ declare class FederationRuntimePlugin {
|
|
|
13
13
|
getDependency(compiler: Compiler): FederationRuntimeDependency;
|
|
14
14
|
prependEntry(compiler: Compiler): void;
|
|
15
15
|
injectRuntime(compiler: Compiler): void;
|
|
16
|
+
getRuntimeAlias(compiler: Compiler): string;
|
|
16
17
|
setRuntimeAlias(compiler: Compiler): void;
|
|
17
18
|
apply(compiler: Compiler): void;
|
|
18
19
|
}
|