@module-federation/enhanced 0.0.0-next-20240401022607 → 0.0.0-next-20240401073754
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 +2 -0
- package/dist/src/lib/Constants.d.ts +0 -6
- package/dist/src/lib/Constants.js +1 -7
- package/dist/src/lib/Constants.js.map +1 -1
- package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +2 -2
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js +37 -32
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.d.ts +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.js +6 -2
- package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/lib/container/TypesPlugin.d.ts +8 -0
- package/dist/src/lib/container/TypesPlugin.js +73 -0
- package/dist/src/lib/container/TypesPlugin.js.map +1 -0
- package/dist/src/lib/container/runtime/FederationInitModule.d.ts +16 -0
- package/dist/src/lib/container/runtime/FederationInitModule.js +89 -0
- package/dist/src/lib/container/runtime/FederationInitModule.js.map +1 -0
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +29 -30
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +155 -0
- package/dist/src/schemas/container/ModuleFederationPlugin.js +158 -0
- package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
- package/package.json +8 -6
- package/dist/src/lib/eager/EagerRuntimeModule.d.ts +0 -9
- package/dist/src/lib/eager/EagerRuntimeModule.js +0 -98
- package/dist/src/lib/eager/EagerRuntimeModule.js.map +0 -1
- package/dist/src/lib/eager/ProvideEagerDependency.d.ts +0 -38
- package/dist/src/lib/eager/ProvideEagerDependency.js +0 -70
- package/dist/src/lib/eager/ProvideEagerDependency.js.map +0 -1
- package/dist/src/lib/eager/ProvideEagerModule.d.ts +0 -85
- package/dist/src/lib/eager/ProvideEagerModule.js +0 -186
- package/dist/src/lib/eager/ProvideEagerModule.js.map +0 -1
- package/dist/src/lib/eager/ProvideEagerModuleFactory.d.ts +0 -11
- package/dist/src/lib/eager/ProvideEagerModuleFactory.js +0 -30
- package/dist/src/lib/eager/ProvideEagerModuleFactory.js.map +0 -1
- package/dist/src/lib/eager/ProvideEagerModulePlugin.d.ts +0 -29
- package/dist/src/lib/eager/ProvideEagerModulePlugin.js +0 -193
- package/dist/src/lib/eager/ProvideEagerModulePlugin.js.map +0 -1
- package/dist/src/lib/eager/ProvideForEagerDependency.d.ts +0 -11
- package/dist/src/lib/eager/ProvideForEagerDependency.js +0 -27
- package/dist/src/lib/eager/ProvideForEagerDependency.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
"@module-federation/runtime-tools": "workspace:*",
|
|
36
36
|
"@module-federation/manifest": "workspace:*",
|
|
37
37
|
"@module-federation/managers": "workspace:*",
|
|
38
|
+
"@module-federation/dev-plugin": "workspace:*",
|
|
39
|
+
"@module-federation/native-federation-typescript": "workspace:*",
|
|
38
40
|
"upath": "2.0.1"
|
|
39
41
|
},
|
|
40
42
|
"type": "commonjs"
|
|
@@ -97,12 +97,6 @@ export declare const WEBPACK_MODULE_TYPE_REMOTE: Readonly<'remote-module'>;
|
|
|
97
97
|
* TODO: Document this better.
|
|
98
98
|
*/
|
|
99
99
|
export declare const WEBPACK_MODULE_TYPE_PROVIDE: Readonly<'provide-module'>;
|
|
100
|
-
/**
|
|
101
|
-
* @type {Readonly<"eager-module">}
|
|
102
|
-
* This is the module type used for the ModuleFederation feature's EagerModule class.
|
|
103
|
-
* TODO: Document this better.
|
|
104
|
-
*/
|
|
105
|
-
export declare const WEBPACK_MODULE_TYPE_EAGER: Readonly<'eager-module'>;
|
|
106
100
|
/**
|
|
107
101
|
* @type {Readonly<"consume-shared-module">}
|
|
108
102
|
* This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Author Sean Larkin @TheLarkInn
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = exports.
|
|
7
|
+
exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = exports.WEBPACK_MODULE_TYPE_PROVIDE = exports.WEBPACK_MODULE_TYPE_REMOTE = exports.WEBPACK_MODULE_TYPE_FALLBACK = exports.WEBPACK_MODULE_TYPE_RUNTIME = exports.ASSET_MODULE_TYPE_RAW_DATA_URL = exports.ASSET_MODULE_TYPE_SOURCE = exports.ASSET_MODULE_TYPE_RESOURCE = exports.ASSET_MODULE_TYPE_INLINE = exports.ASSET_MODULE_TYPE = exports.CSS_MODULE_TYPE_AUTO = exports.CSS_MODULE_TYPE_MODULE = exports.CSS_MODULE_TYPE_GLOBAL = exports.CSS_MODULE_TYPE = exports.WEBASSEMBLY_MODULE_TYPE_SYNC = exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = exports.JSON_MODULE_TYPE = exports.JAVASCRIPT_MODULE_TYPE_ESM = exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = exports.JAVASCRIPT_MODULE_TYPE_AUTO = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* @type {Readonly<"javascript/auto">}
|
|
10
10
|
*/
|
|
@@ -104,12 +104,6 @@ exports.WEBPACK_MODULE_TYPE_REMOTE = 'remote-module';
|
|
|
104
104
|
* TODO: Document this better.
|
|
105
105
|
*/
|
|
106
106
|
exports.WEBPACK_MODULE_TYPE_PROVIDE = 'provide-module';
|
|
107
|
-
/**
|
|
108
|
-
* @type {Readonly<"eager-module">}
|
|
109
|
-
* This is the module type used for the ModuleFederation feature's EagerModule class.
|
|
110
|
-
* TODO: Document this better.
|
|
111
|
-
*/
|
|
112
|
-
exports.WEBPACK_MODULE_TYPE_EAGER = 'eager-module';
|
|
113
107
|
/**
|
|
114
108
|
* @type {Readonly<"consume-shared-module">}
|
|
115
109
|
* This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;AAEF;;GAEG;AACU,QAAA,2BAA2B,GACtC,iBAAiB,CAAC;AAEpB;;GAEG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,gBAAgB,GAAqB,MAAM,CAAC;AAEzD;;;;GAIG;AACU,QAAA,6BAA6B,GACxC,mBAAmB,CAAC;AAEtB;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,kBAAkB,CAAC;AAErB;;;GAGG;AACU,QAAA,eAAe,GAAoB,KAAK,CAAC;AAEtD;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,oBAAoB,GAAyB,UAAU,CAAC;AAErE;;;GAGG;AACU,QAAA,iBAAiB,GAAsB,OAAO,CAAC;AAE5D;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;GAGG;AACU,QAAA,2BAA2B,GAAwB,SAAS,CAAC;AAE1E;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,iBAAiB,CAAC;AAEpB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,eAAe,CAAC;AAElB;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,gBAAgB,CAAC;AAEnB
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;AAEF;;GAEG;AACU,QAAA,2BAA2B,GACtC,iBAAiB,CAAC;AAEpB;;GAEG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,gBAAgB,GAAqB,MAAM,CAAC;AAEzD;;;;GAIG;AACU,QAAA,6BAA6B,GACxC,mBAAmB,CAAC;AAEtB;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,kBAAkB,CAAC;AAErB;;;GAGG;AACU,QAAA,eAAe,GAAoB,KAAK,CAAC;AAEtD;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,oBAAoB,GAAyB,UAAU,CAAC;AAErE;;;GAGG;AACU,QAAA,iBAAiB,GAAsB,OAAO,CAAC;AAE5D;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;GAGG;AACU,QAAA,2BAA2B,GAAwB,SAAS,CAAC;AAE1E;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,iBAAiB,CAAC;AAEpB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,eAAe,CAAC;AAElB;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,yCAAyC,GACpD,uBAAuB,CAAC;AAE1B;;;GAGG;AACU,QAAA,0CAA0C,GACrD,wBAAwB,CAAC;AAE3B,mGAAmG;AACnG,uCAAuC;AACvC,iFAAiF;AACjF,oEAAoE;AACpE,sHAAsH;AACtH,4JAA4J;AAC5J,2CAA2C;AAC3C,2KAA2K"}
|
|
@@ -6,10 +6,10 @@ export declare class HoistContainerReferencesPlugin implements WebpackPluginInst
|
|
|
6
6
|
processChunks(chunks: Iterable<Chunk>, compilation: Compilation): void;
|
|
7
7
|
collectRuntimes(chunks: Iterable<Chunk>, runtimes: Set<string>): void;
|
|
8
8
|
optimizeWithoutRuntimeChunk(chunks: Iterable<Chunk>, compilation: Compilation): void;
|
|
9
|
-
integrateRuntimeChunks(chunks: Iterable<Chunk>, federationRuntimeChunk: Chunk, compilation: Compilation): void;
|
|
9
|
+
integrateRuntimeChunks(chunks: Iterable<Chunk>, federationRuntimeChunk: Chunk, federationRuntimePlugins: Chunk, compilation: Compilation): void;
|
|
10
10
|
disconnectModulesFromChunk(compilation: Compilation, chunk: Chunk): void;
|
|
11
11
|
optimizeWithRuntimeChunk(compilation: Compilation, runtimes: Set<string>): void;
|
|
12
|
-
handleRuntimeChunks(compilation: Compilation, runtime: string, baseRuntimeName: string): void;
|
|
12
|
+
handleRuntimeChunks(compilation: Compilation, runtime: string, baseRuntimeName: string, basePluginsName: string): void;
|
|
13
13
|
getNamedChunk(compilation: Compilation, newChunkName: string, defaultChunkName: string): Chunk | undefined;
|
|
14
14
|
private chunkContainsContainerEntryModule;
|
|
15
15
|
}
|
|
@@ -20,7 +20,7 @@ class HoistContainerReferencesPlugin {
|
|
|
20
20
|
this.integratedChunks.add(chunkB);
|
|
21
21
|
// Merge runtime
|
|
22
22
|
//@ts-ignore
|
|
23
|
-
|
|
23
|
+
chunkA.runtime = runtime.mergeRuntime(chunkA.runtime, chunkB.runtime);
|
|
24
24
|
// getChunkModules is used here to create a clone, because disconnectChunkAndModule modifies
|
|
25
25
|
for (const module of chunkGraph.getChunkModules(chunkB)) {
|
|
26
26
|
// chunkGraph.disconnectChunkAndModule(chunkB, module);
|
|
@@ -67,29 +67,23 @@ class HoistContainerReferencesPlugin {
|
|
|
67
67
|
// because this entrypoint is integrated using chunk group updates - this chunk cannot be emitted without causing multiple writes to same runtime
|
|
68
68
|
// the federation-runtime serves no output process, it is used as a reference to hoist federation runtime once into all runtime chunks for eager consumption
|
|
69
69
|
// this plugin serves
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// compilation.namedChunks.delete('federation-runtime');
|
|
88
|
-
// compilation.namedChunks.delete('mfp-runtime-plugins');
|
|
89
|
-
// for (const chunk of this.integratedChunks) {
|
|
90
|
-
// compilation.chunks.delete(chunk);
|
|
91
|
-
// if (chunk.name) compilation.namedChunks.delete(chunk.name);
|
|
92
|
-
// }
|
|
70
|
+
const federationRuntimeChunk = compilation.namedChunks.get('federation-runtime');
|
|
71
|
+
const federationRuntimePluginsChunk = compilation.namedChunks.get('mfp-runtime-plugins');
|
|
72
|
+
if (federationRuntimeChunk) {
|
|
73
|
+
compilation.chunks.delete(federationRuntimeChunk);
|
|
74
|
+
this.integratedChunks.delete(federationRuntimeChunk);
|
|
75
|
+
}
|
|
76
|
+
if (federationRuntimePluginsChunk) {
|
|
77
|
+
compilation.chunks.delete(federationRuntimePluginsChunk);
|
|
78
|
+
this.integratedChunks.delete(federationRuntimePluginsChunk);
|
|
79
|
+
}
|
|
80
|
+
compilation.namedChunks.delete('federation-runtime');
|
|
81
|
+
compilation.namedChunks.delete('mfp-runtime-plugins');
|
|
82
|
+
for (const chunk of this.integratedChunks) {
|
|
83
|
+
compilation.chunks.delete(chunk);
|
|
84
|
+
if (chunk.name)
|
|
85
|
+
compilation.namedChunks.delete(chunk.name);
|
|
86
|
+
}
|
|
93
87
|
});
|
|
94
88
|
});
|
|
95
89
|
}
|
|
@@ -120,18 +114,23 @@ class HoistContainerReferencesPlugin {
|
|
|
120
114
|
}
|
|
121
115
|
optimizeWithoutRuntimeChunk(chunks, compilation) {
|
|
122
116
|
const federationRuntimeChunk = compilation.namedChunks.get('federation-runtime');
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
const federationRuntimePlugins = compilation.namedChunks.get('mfp-runtime-plugins');
|
|
118
|
+
if (federationRuntimeChunk && federationRuntimePlugins) {
|
|
119
|
+
this.integrateRuntimeChunks(chunks, federationRuntimeChunk, federationRuntimePlugins, compilation);
|
|
125
120
|
this.disconnectModulesFromChunk(compilation, federationRuntimeChunk);
|
|
121
|
+
this.disconnectModulesFromChunk(compilation, federationRuntimePlugins);
|
|
126
122
|
}
|
|
127
123
|
}
|
|
128
|
-
integrateRuntimeChunks(chunks, federationRuntimeChunk, compilation) {
|
|
124
|
+
integrateRuntimeChunks(chunks, federationRuntimeChunk, federationRuntimePlugins, compilation) {
|
|
129
125
|
for (const chunk of chunks) {
|
|
130
126
|
if (chunk.hasRuntime() &&
|
|
131
127
|
!this.chunkContainsContainerEntryModule(chunk, compilation)) {
|
|
132
128
|
if (chunk !== federationRuntimeChunk) {
|
|
133
129
|
this.integrateChunks(chunk, federationRuntimeChunk, compilation);
|
|
134
130
|
}
|
|
131
|
+
if (chunk !== federationRuntimePlugins) {
|
|
132
|
+
this.integrateChunks(chunk, federationRuntimePlugins, compilation);
|
|
133
|
+
}
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
136
|
}
|
|
@@ -143,24 +142,30 @@ class HoistContainerReferencesPlugin {
|
|
|
143
142
|
}
|
|
144
143
|
optimizeWithRuntimeChunk(compilation, runtimes) {
|
|
145
144
|
const baseRuntimeName = 'federation-runtime';
|
|
145
|
+
const basePluginsName = 'mfp-runtime-plugins';
|
|
146
146
|
for (const runtime of runtimes) {
|
|
147
|
-
this.handleRuntimeChunks(compilation, runtime, baseRuntimeName);
|
|
147
|
+
this.handleRuntimeChunks(compilation, runtime, baseRuntimeName, basePluginsName);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
handleRuntimeChunks(compilation, runtime, baseRuntimeName) {
|
|
150
|
+
handleRuntimeChunks(compilation, runtime, baseRuntimeName, basePluginsName) {
|
|
151
151
|
const runtimeChunk = compilation.namedChunks.get(runtime);
|
|
152
152
|
if (!runtimeChunk ||
|
|
153
153
|
this.chunkContainsContainerEntryModule(runtimeChunk, compilation))
|
|
154
154
|
return;
|
|
155
155
|
const federationRuntimeChunk = this.getNamedChunk(compilation, `${baseRuntimeName}-${runtime}`, baseRuntimeName);
|
|
156
|
+
const pluginsRuntimeChunk = this.getNamedChunk(compilation, `${basePluginsName}-${runtime}`, basePluginsName);
|
|
156
157
|
if (federationRuntimeChunk) {
|
|
157
158
|
this.integrateChunks(runtimeChunk, federationRuntimeChunk, compilation);
|
|
158
159
|
}
|
|
160
|
+
if (pluginsRuntimeChunk) {
|
|
161
|
+
this.integrateChunks(runtimeChunk, pluginsRuntimeChunk, compilation);
|
|
162
|
+
}
|
|
159
163
|
}
|
|
160
164
|
getNamedChunk(compilation, newChunkName, defaultChunkName) {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
return (
|
|
166
|
+
// search for runtime allocated entry chunk, fall back to default runtime chunk (undefined, false, etc)
|
|
167
|
+
compilation.namedChunks.get(newChunkName) ||
|
|
168
|
+
compilation.namedChunks.get(defaultChunkName));
|
|
164
169
|
}
|
|
165
170
|
chunkContainsContainerEntryModule(chunk, compilation) {
|
|
166
171
|
let hasContainerEntryModule = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;;;;;AAMA,0FAAqF;AACrF,kFAA0D;AAE1D,MAAM,OAAO,GAAG,OAAO,CACrB,IAAA,6CAAoB,EAAC,0BAA0B,CAAC,CACJ,CAAC;AAE/C,MAAa,8BAA8B;IAA3C;QACU,qBAAgB,GAAe,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Compiler, WebpackPluginInstance } from 'webpack';
|
|
2
|
-
import type
|
|
2
|
+
import { type moduleFederationPlugin } from '@module-federation/sdk';
|
|
3
3
|
declare class ModuleFederationPlugin implements WebpackPluginInstance {
|
|
4
4
|
private _options;
|
|
5
5
|
/**
|
|
@@ -8,13 +8,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
11
|
+
const manifest_1 = require("@module-federation/manifest");
|
|
12
|
+
const managers_1 = require("@module-federation/managers");
|
|
13
|
+
const dev_plugin_1 = require("@module-federation/dev-plugin");
|
|
11
14
|
const SharePlugin_1 = __importDefault(require("../sharing/SharePlugin"));
|
|
12
15
|
const ContainerPlugin_1 = __importDefault(require("./ContainerPlugin"));
|
|
13
16
|
const ContainerReferencePlugin_1 = __importDefault(require("./ContainerReferencePlugin"));
|
|
14
17
|
const ModuleFederationPlugin_1 = __importDefault(require("../../schemas/container/ModuleFederationPlugin"));
|
|
15
18
|
const FederationRuntimePlugin_1 = __importDefault(require("./runtime/FederationRuntimePlugin"));
|
|
16
|
-
const
|
|
17
|
-
const managers_1 = require("@module-federation/managers");
|
|
19
|
+
const TypesPlugin_1 = require("./TypesPlugin");
|
|
18
20
|
const isValidExternalsType = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/schemas/plugins/container/ExternalsType.check.js'));
|
|
19
21
|
const createSchemaValidation = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/create-schema-validation'));
|
|
20
22
|
const validate = createSchemaValidation(
|
|
@@ -55,6 +57,7 @@ class ModuleFederationPlugin {
|
|
|
55
57
|
ContainerPlugin_1.default.patchChunkSplit(compiler, 'federation-runtime');
|
|
56
58
|
ContainerPlugin_1.default.patchChunkSplit(compiler, 'mfp-runtime-plugins');
|
|
57
59
|
}
|
|
60
|
+
new dev_plugin_1.DevPlugin(options).apply(compiler);
|
|
58
61
|
if (!disableManifest && useContainerPlugin) {
|
|
59
62
|
try {
|
|
60
63
|
const containerManager = new managers_1.ContainerManager();
|
|
@@ -105,6 +108,7 @@ class ModuleFederationPlugin {
|
|
|
105
108
|
}).apply(compiler);
|
|
106
109
|
}
|
|
107
110
|
});
|
|
111
|
+
new TypesPlugin_1.TypesPlugin(options).apply(compiler);
|
|
108
112
|
if (!disableManifest) {
|
|
109
113
|
const pkg = require('../../../../package.json');
|
|
110
114
|
new manifest_1.StatsPlugin(options, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type moduleFederationPlugin } from '@module-federation/sdk';
|
|
2
|
+
import type { Compiler, WebpackPluginInstance } from 'webpack';
|
|
3
|
+
declare class TypesPlugin implements WebpackPluginInstance {
|
|
4
|
+
options: moduleFederationPlugin.ModuleFederationPluginOptions;
|
|
5
|
+
constructor(options: moduleFederationPlugin.ModuleFederationPluginOptions);
|
|
6
|
+
apply(compiler: Compiler): void;
|
|
7
|
+
}
|
|
8
|
+
export { TypesPlugin };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TypesPlugin = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const sdk_1 = require("@module-federation/sdk");
|
|
10
|
+
const webpack_1 = require("@module-federation/native-federation-typescript/webpack");
|
|
11
|
+
class TypesPlugin {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
apply(compiler) {
|
|
16
|
+
const { options } = this;
|
|
17
|
+
const isTSProject = (tsConfigPath, context = process.cwd()) => {
|
|
18
|
+
try {
|
|
19
|
+
let filepath = tsConfigPath
|
|
20
|
+
? tsConfigPath
|
|
21
|
+
: path_1.default.resolve(context, './tsconfig.json');
|
|
22
|
+
if (!path_1.default.isAbsolute(filepath)) {
|
|
23
|
+
filepath = path_1.default.resolve(context, filepath);
|
|
24
|
+
}
|
|
25
|
+
return fs_1.default.existsSync(filepath);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const normalizedDtsOptions = (0, sdk_1.normalizeOptions)(isTSProject(undefined, compiler.context), {
|
|
32
|
+
disableGenerateTypes: false,
|
|
33
|
+
disableConsumeTypes: false,
|
|
34
|
+
remote: {
|
|
35
|
+
generateAPITypes: true,
|
|
36
|
+
compileInChildProcess: true,
|
|
37
|
+
abortOnError: false,
|
|
38
|
+
extractThirdParty: true,
|
|
39
|
+
extractRemoteTypes: true,
|
|
40
|
+
},
|
|
41
|
+
host: { abortOnError: false, consumeAPITypes: true },
|
|
42
|
+
extraOptions: {},
|
|
43
|
+
}, 'mfOptions.dts')(options.dts);
|
|
44
|
+
if (typeof normalizedDtsOptions === 'object') {
|
|
45
|
+
if (!normalizedDtsOptions.disableGenerateTypes) {
|
|
46
|
+
(0, webpack_1.NativeFederationTypeScriptRemote)({
|
|
47
|
+
remote: {
|
|
48
|
+
implementation: normalizedDtsOptions.implementation,
|
|
49
|
+
context: compiler.context,
|
|
50
|
+
moduleFederationConfig: options,
|
|
51
|
+
...normalizedDtsOptions.remote,
|
|
52
|
+
},
|
|
53
|
+
extraOptions: normalizedDtsOptions.extraOptions || {},
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
}).apply(compiler);
|
|
56
|
+
}
|
|
57
|
+
if (!normalizedDtsOptions.disableConsumeTypes) {
|
|
58
|
+
(0, webpack_1.NativeFederationTypeScriptHost)({
|
|
59
|
+
host: {
|
|
60
|
+
implementation: normalizedDtsOptions.implementation,
|
|
61
|
+
context: compiler.context,
|
|
62
|
+
moduleFederationConfig: options,
|
|
63
|
+
...normalizedDtsOptions.host,
|
|
64
|
+
},
|
|
65
|
+
extraOptions: normalizedDtsOptions.extraOptions || {},
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
}).apply(compiler);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.TypesPlugin = TypesPlugin;
|
|
73
|
+
//# sourceMappingURL=TypesPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/TypesPlugin.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,gDAGgC;AAEhC,qFAGiE;AAEjE,MAAM,WAAW;IAEf,YAAY,OAA6D;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,CAAC,YAAqB,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,YAAY;oBACzB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,oBAAoB,GACxB,IAAA,sBAAgB,EACd,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxC;YACE,oBAAoB,EAAE,KAAK;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACN,gBAAgB,EAAE,IAAI;gBACtB,qBAAqB,EAAE,IAAI;gBAC3B,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,IAAI;aACzB;YACD,IAAI,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;YACpD,YAAY,EAAE,EAAE;SACjB,EACD,eAAe,CAChB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,IAAA,0CAAgC,EAAC;oBAC/B,MAAM,EAAE;wBACN,cAAc,EAAE,oBAAoB,CAAC,cAAc;wBACnD,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,sBAAsB,EAAE,OAAO;wBAC/B,GAAG,oBAAoB,CAAC,MAAM;qBAC/B;oBACD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;oBACrD,aAAa;iBACd,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;gBAC9C,IAAA,wCAA8B,EAAC;oBAC7B,IAAI,EAAE;wBACJ,cAAc,EAAE,oBAAoB,CAAC,cAAc;wBACnD,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,sBAAsB,EAAE,OAAO;wBAC/B,GAAG,oBAAoB,CAAC,IAAI;qBAC7B;oBACD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;oBACrD,aAAa;iBACd,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAEQ,kCAAW"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Chunk } from 'webpack';
|
|
2
|
+
declare const RuntimeModule: typeof import("webpack").RuntimeModule;
|
|
3
|
+
declare class FederationInitModule extends RuntimeModule {
|
|
4
|
+
containerName: string;
|
|
5
|
+
entryFilePath: string;
|
|
6
|
+
chunksRuntimePluginsDependsOn: Set<Chunk> | undefined;
|
|
7
|
+
constructor(containerName: string, entryFilePath: string, chunksRuntimePluginsDependsOn: Set<Chunk> | undefined);
|
|
8
|
+
private chunkContainsFederationRuntime;
|
|
9
|
+
getModuleByInstance(): {
|
|
10
|
+
federationRuntimeModuleId: string | number | undefined;
|
|
11
|
+
runtimePluginModuleId: string | number | undefined;
|
|
12
|
+
chunk: Chunk;
|
|
13
|
+
} | null;
|
|
14
|
+
generate(): string | null;
|
|
15
|
+
}
|
|
16
|
+
export default FederationInitModule;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
4
|
+
const { RuntimeModule, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
5
|
+
class FederationInitModule extends RuntimeModule {
|
|
6
|
+
constructor(containerName, entryFilePath, chunksRuntimePluginsDependsOn) {
|
|
7
|
+
super('federation runtime init', RuntimeModule.STAGE_ATTACH);
|
|
8
|
+
this.containerName = containerName;
|
|
9
|
+
this.entryFilePath = entryFilePath;
|
|
10
|
+
this.chunksRuntimePluginsDependsOn = chunksRuntimePluginsDependsOn;
|
|
11
|
+
}
|
|
12
|
+
chunkContainsFederationRuntime(chunk, compilation) {
|
|
13
|
+
let federationRuntimeModule = null;
|
|
14
|
+
let federationRuntimePluginModule = null;
|
|
15
|
+
for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) {
|
|
16
|
+
if (!federationRuntimeModule &&
|
|
17
|
+
module.identifier?.()?.includes('.federation/federation')) {
|
|
18
|
+
federationRuntimeModule = module;
|
|
19
|
+
}
|
|
20
|
+
else if (!federationRuntimePluginModule &&
|
|
21
|
+
module.identifier?.()?.includes('.federation/plugin')) {
|
|
22
|
+
federationRuntimePluginModule = module;
|
|
23
|
+
}
|
|
24
|
+
if (federationRuntimeModule && federationRuntimePluginModule)
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
return { federationRuntimeModule, federationRuntimePluginModule };
|
|
28
|
+
}
|
|
29
|
+
getModuleByInstance() {
|
|
30
|
+
if (!this.compilation ||
|
|
31
|
+
!this.chunk ||
|
|
32
|
+
!this.compilation.chunkGraph ||
|
|
33
|
+
!this.chunk.hasRuntime())
|
|
34
|
+
return null;
|
|
35
|
+
const { federationRuntimeModule, federationRuntimePluginModule } = this.chunkContainsFederationRuntime(this.chunk, this.compilation);
|
|
36
|
+
let runtimePluginModuleId;
|
|
37
|
+
let federationRuntimeModuleId;
|
|
38
|
+
if (federationRuntimeModule) {
|
|
39
|
+
federationRuntimeModuleId = this.compilation.chunkGraph.getModuleId(federationRuntimeModule);
|
|
40
|
+
}
|
|
41
|
+
if (federationRuntimePluginModule) {
|
|
42
|
+
runtimePluginModuleId = this.compilation.chunkGraph.getModuleId(federationRuntimePluginModule);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
federationRuntimeModuleId,
|
|
46
|
+
runtimePluginModuleId,
|
|
47
|
+
chunk: this.chunk,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
generate() {
|
|
51
|
+
if (!this.compilation || !this.chunk)
|
|
52
|
+
return '';
|
|
53
|
+
const moduleInstance = this.getModuleByInstance();
|
|
54
|
+
// Early return if no moduleInstance is found
|
|
55
|
+
if (!moduleInstance)
|
|
56
|
+
return '';
|
|
57
|
+
const { federationRuntimeModuleId, runtimePluginModuleId } = moduleInstance;
|
|
58
|
+
const requireStatements = [];
|
|
59
|
+
// Directly push federationRuntimeModuleId require statement if it exists
|
|
60
|
+
if (federationRuntimeModuleId) {
|
|
61
|
+
requireStatements.push(`__webpack_require__(${JSON.stringify(federationRuntimeModuleId)});`);
|
|
62
|
+
}
|
|
63
|
+
if (runtimePluginModuleId) {
|
|
64
|
+
// check if needs async boundary
|
|
65
|
+
const chunkConsumesStatements = this.chunksRuntimePluginsDependsOn
|
|
66
|
+
? Array.from(this.chunksRuntimePluginsDependsOn)
|
|
67
|
+
.map((chunk) => `__webpack_require__.f.consumes(${JSON.stringify(chunk.id || chunk.name)}, consumes);`)
|
|
68
|
+
.join('\n')
|
|
69
|
+
: '';
|
|
70
|
+
if (chunkConsumesStatements) {
|
|
71
|
+
requireStatements.push(Template.asString([
|
|
72
|
+
`var consumes = [];`,
|
|
73
|
+
`if(__webpack_require__.f && __webpack_require__.f.consumes){`,
|
|
74
|
+
Template.indent(chunkConsumesStatements),
|
|
75
|
+
`}`,
|
|
76
|
+
`Promise.all(consumes).then(function() {`,
|
|
77
|
+
Template.indent(`__webpack_require__(${JSON.stringify(runtimePluginModuleId)});`),
|
|
78
|
+
`});`,
|
|
79
|
+
]));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
requireStatements.push(`__webpack_require__(${JSON.stringify(runtimePluginModuleId)});`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return Template.asString(requireStatements);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.default = FederationInitModule;
|
|
89
|
+
//# sourceMappingURL=FederationInitModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FederationInitModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/FederationInitModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
7
7
|
const FederationRuntimeModule_1 = __importDefault(require("./FederationRuntimeModule"));
|
|
8
|
-
const
|
|
8
|
+
const FederationInitModule_1 = __importDefault(require("./FederationInitModule"));
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
10
|
const fs_1 = __importDefault(require("fs"));
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
12
|
const constant_1 = require("../constant");
|
|
13
13
|
const HoistContainerReferencesPlugin_1 = __importDefault(require("../HoistContainerReferencesPlugin"));
|
|
14
|
-
const ProvideEagerModulePlugin_1 = __importDefault(require("../../eager/ProvideEagerModulePlugin"));
|
|
15
14
|
const { RuntimeGlobals, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
16
15
|
const { mkdirpSync } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/fs'));
|
|
17
16
|
const RuntimeToolsPath = require.resolve('@module-federation/runtime-tools');
|
|
@@ -105,30 +104,25 @@ class FederationRuntimePlugin {
|
|
|
105
104
|
}
|
|
106
105
|
prependEntry(compiler) {
|
|
107
106
|
this.ensureFiles();
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
[
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
singleton: undefined,
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
}).apply(compiler);
|
|
107
|
+
(0, utils_1.modifyEntry)({
|
|
108
|
+
compiler,
|
|
109
|
+
prependEntry: (entry) => {
|
|
110
|
+
Object.keys(entry).forEach((key) => {
|
|
111
|
+
const entryItem = entry[key];
|
|
112
|
+
const prefix = entryItem.runtime ? `-${entryItem.runtime}` : '';
|
|
113
|
+
const runtimePluginKey = `mfp-runtime-plugins${prefix}`;
|
|
114
|
+
const federationRuntimeKey = `federation-runtime${prefix}`;
|
|
115
|
+
entry[runtimePluginKey] = {
|
|
116
|
+
import: [this.pluginsFilePath],
|
|
117
|
+
runtime: entryItem.runtime,
|
|
118
|
+
};
|
|
119
|
+
entry[federationRuntimeKey] = {
|
|
120
|
+
import: [this.entryFilePath],
|
|
121
|
+
runtime: entryItem.runtime,
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
});
|
|
132
126
|
}
|
|
133
127
|
injectRuntime(compiler) {
|
|
134
128
|
if (!this.options || !this.options.name) {
|
|
@@ -138,6 +132,14 @@ class FederationRuntimePlugin {
|
|
|
138
132
|
const initOptionsWithoutShared = (0, utils_1.normalizeRuntimeInitOptionsWithOutShared)(this.options);
|
|
139
133
|
const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals || {});
|
|
140
134
|
compiler.hooks.thisCompilation.tap(this.constructor.name, (compilation, { normalModuleFactory }) => {
|
|
135
|
+
let chunksRuntimePluginsDependsOn = undefined;
|
|
136
|
+
compilation.hooks.afterOptimizeChunks.tap(this.constructor.name, (chunk) => {
|
|
137
|
+
const runtimePluginEntry = compilation.namedChunks.get('mfp-runtime-plugins');
|
|
138
|
+
if (runtimePluginEntry) {
|
|
139
|
+
chunksRuntimePluginsDependsOn =
|
|
140
|
+
runtimePluginEntry.getAllInitialChunks();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
141
143
|
compilation.hooks.additionalTreeRuntimeRequirements.tap(this.constructor.name, (chunk, runtimeRequirements) => {
|
|
142
144
|
if (runtimeRequirements.has(federationGlobal)) {
|
|
143
145
|
return;
|
|
@@ -146,11 +148,8 @@ class FederationRuntimePlugin {
|
|
|
146
148
|
runtimeRequirements.add(RuntimeGlobals.moduleCache);
|
|
147
149
|
runtimeRequirements.add(RuntimeGlobals.compatGetDefaultExport);
|
|
148
150
|
runtimeRequirements.add(federationGlobal);
|
|
149
|
-
const includesEagerModules = compilation.chunkGraph.getChunkModulesIterableBySourceType(chunk, 'eager-init');
|
|
150
151
|
compilation.addRuntimeModule(chunk, new FederationRuntimeModule_1.default(runtimeRequirements, name, initOptionsWithoutShared));
|
|
151
|
-
|
|
152
|
-
compilation.addRuntimeModule(chunk, new EagerRuntimeModule_1.default());
|
|
153
|
-
}
|
|
152
|
+
compilation.addRuntimeModule(chunk, new FederationInitModule_1.default(name, this.entryFilePath, chunksRuntimePluginsDependsOn));
|
|
154
153
|
});
|
|
155
154
|
});
|
|
156
155
|
}
|