@module-federation/enhanced 0.6.0 → 0.6.2
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 +3 -2
- package/dist/src/declarations/plugins/container/WebpackError.d.ts +2 -1
- package/dist/src/lib/container/ContainerEntryDependency.d.ts +20 -22
- package/dist/src/lib/container/ContainerEntryModule.d.ts +77 -70
- package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +10 -14
- package/dist/src/lib/container/ContainerExposedDependency.d.ts +25 -18
- package/dist/src/lib/container/ContainerPlugin.js +4 -12
- package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
- package/dist/src/lib/container/ContainerReferencePlugin.js +1 -3
- package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/lib/container/FallbackDependency.d.ts +20 -14
- package/dist/src/lib/container/FallbackItemDependency.d.ts +10 -3
- package/dist/src/lib/container/FallbackModule.d.ts +70 -52
- package/dist/src/lib/container/FallbackModuleFactory.d.ts +10 -10
- package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +12 -5
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js +167 -30
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.js +6 -0
- package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/lib/container/RemoteModule.d.ts +73 -88
- package/dist/src/lib/container/RemoteModule.js +0 -1
- package/dist/src/lib/container/RemoteModule.js.map +1 -1
- package/dist/src/lib/container/RemoteRuntimeModule.d.ts +7 -10
- package/dist/src/lib/container/RemoteRuntimeModule.js +10 -0
- package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/RemoteToExternalDependency.d.ts +9 -3
- package/dist/src/lib/container/options.d.ts +3 -12
- package/dist/src/lib/container/options.js +6 -7
- package/dist/src/lib/container/options.js.map +1 -1
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.d.ts +21 -0
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js +215 -0
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js.map +1 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +9 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +81 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +7 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +38 -0
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -0
- package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +2 -2
- package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +2 -2
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +96 -38
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +10 -3
- package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +104 -97
- package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +6 -28
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js +1 -3
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +11 -29
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +7 -0
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +11 -3
- package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +37 -35
- package/dist/src/lib/sharing/ProvideSharedModule.d.ts +83 -65
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +10 -17
- package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +19 -37
- package/dist/src/lib/sharing/ProvideSharedPlugin.js +1 -3
- package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/SharePlugin.d.ts +13 -39
- package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +7 -12
- package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +8 -12
- package/dist/src/lib/sharing/utils.d.ts +29 -21
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.d.ts +11 -0
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +94 -0
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -0
- package/dist/src/lib/startup/StartupHelpers.d.ts +6 -0
- package/dist/src/lib/startup/StartupHelpers.js +190 -0
- package/dist/src/lib/startup/StartupHelpers.js.map +1 -0
- package/dist/src/webpack.js.map +1 -1
- package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +5 -2
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js +7 -3
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -1
- package/package.json +10 -9
- package/dist/src/declarations/plugins/container/Module.d.ts +0 -138
- package/dist/src/lib/RuntimeGlobals.d.ts +0 -0
- package/dist/src/lib/RuntimeGlobals.js +0 -316
- package/dist/src/lib/RuntimeGlobals.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
7
|
+
const StartupHelpers_1 = require("./StartupHelpers");
|
|
8
|
+
const ContainerEntryModule_1 = __importDefault(require("../container/ContainerEntryModule"));
|
|
9
|
+
const { RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
10
|
+
const StartupEntrypointRuntimeModule = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/runtime/StartupEntrypointRuntimeModule'));
|
|
11
|
+
const ConcatenatedModule = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/optimize/ConcatenatedModule'));
|
|
12
|
+
class StartupChunkDependenciesPlugin {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.asyncChunkLoading = options.asyncChunkLoading ?? true;
|
|
15
|
+
}
|
|
16
|
+
isEnabledForChunk(chunk, compilation) {
|
|
17
|
+
if (chunk.id === 'build time chunk')
|
|
18
|
+
return false;
|
|
19
|
+
const [finalEntry] = compilation.chunkGraph.getChunkEntryModulesIterable(chunk) || [];
|
|
20
|
+
return !(finalEntry instanceof ContainerEntryModule_1.default);
|
|
21
|
+
}
|
|
22
|
+
apply(compiler) {
|
|
23
|
+
compiler.hooks.thisCompilation.tap('MfStartupChunkDependenciesPlugin', (compilation) => {
|
|
24
|
+
const isEnabledForChunk = (chunk) => this.isEnabledForChunk(chunk, compilation);
|
|
25
|
+
compilation.hooks.additionalTreeRuntimeRequirements.tap('StartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
|
|
26
|
+
if (!isEnabledForChunk(chunk))
|
|
27
|
+
return;
|
|
28
|
+
if (chunk.hasRuntime()) {
|
|
29
|
+
set.add(RuntimeGlobals.startupEntrypoint);
|
|
30
|
+
set.add(RuntimeGlobals.ensureChunk);
|
|
31
|
+
set.add(RuntimeGlobals.ensureChunkIncludeEntries);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
compilation.hooks.additionalChunkRuntimeRequirements.tap('MfStartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
|
|
35
|
+
if (!isEnabledForChunk(chunk))
|
|
36
|
+
return;
|
|
37
|
+
if (chunkGraph.getNumberOfEntryModules(chunk) === 0)
|
|
38
|
+
return;
|
|
39
|
+
set.add(StartupHelpers_1.federationStartup);
|
|
40
|
+
});
|
|
41
|
+
compilation.hooks.runtimeRequirementInTree
|
|
42
|
+
.for(RuntimeGlobals.startupEntrypoint)
|
|
43
|
+
.tap('StartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
|
|
44
|
+
if (!isEnabledForChunk(chunk))
|
|
45
|
+
return;
|
|
46
|
+
set.add(RuntimeGlobals.require);
|
|
47
|
+
set.add(RuntimeGlobals.ensureChunk);
|
|
48
|
+
set.add(RuntimeGlobals.ensureChunkIncludeEntries);
|
|
49
|
+
compilation.addRuntimeModule(chunk, new StartupEntrypointRuntimeModule(this.asyncChunkLoading));
|
|
50
|
+
});
|
|
51
|
+
const { renderStartup } = compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);
|
|
52
|
+
renderStartup.tap('MfStartupChunkDependenciesPlugin', (startupSource, lastInlinedModule, renderContext) => {
|
|
53
|
+
const { chunk, chunkGraph, runtimeTemplate } = renderContext;
|
|
54
|
+
if (!isEnabledForChunk(chunk)) {
|
|
55
|
+
return startupSource;
|
|
56
|
+
}
|
|
57
|
+
let federationRuntimeModule = null;
|
|
58
|
+
const isFederationModule = (module) => module.context?.endsWith('.federation');
|
|
59
|
+
for (const module of chunkGraph.getChunkEntryModulesIterable(chunk)) {
|
|
60
|
+
if (isFederationModule(module)) {
|
|
61
|
+
federationRuntimeModule = module;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
if (module && '_modules' in module) {
|
|
65
|
+
for (const concatModule of module._modules) {
|
|
66
|
+
if (isFederationModule(concatModule)) {
|
|
67
|
+
federationRuntimeModule = module;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!federationRuntimeModule) {
|
|
74
|
+
return startupSource;
|
|
75
|
+
}
|
|
76
|
+
const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
|
|
77
|
+
const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
|
|
78
|
+
const federation = chunkRuntimeRequirements.has(StartupHelpers_1.federationStartup) ||
|
|
79
|
+
treeRuntimeRequirements.has(StartupHelpers_1.federationStartup);
|
|
80
|
+
if (!federation) {
|
|
81
|
+
return startupSource;
|
|
82
|
+
}
|
|
83
|
+
const federationModuleId = chunkGraph.getModuleId(federationRuntimeModule);
|
|
84
|
+
const entryModules = Array.from(chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk));
|
|
85
|
+
const entryGeneration = runtimeTemplate.outputOptions.module
|
|
86
|
+
? StartupHelpers_1.generateESMEntryStartup
|
|
87
|
+
: StartupHelpers_1.generateEntryStartup;
|
|
88
|
+
return new compiler.webpack.sources.ConcatSource(`${RuntimeGlobals.require}(${JSON.stringify(federationModuleId)});\n`, entryGeneration(compilation, chunkGraph, runtimeTemplate, entryModules, chunk, false));
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.default = StartupChunkDependenciesPlugin;
|
|
94
|
+
//# sourceMappingURL=MfStartupChunkDependenciesPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MfStartupChunkDependenciesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/startup/MfStartupChunkDependenciesPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Compilation, Chunk, ChunkGraph } from 'webpack';
|
|
2
|
+
import type { EntryModuleWithChunkGroup } from 'webpack/lib/ChunkGraph';
|
|
3
|
+
import type RuntimeTemplate from 'webpack/lib/RuntimeTemplate';
|
|
4
|
+
export declare const federationStartup = "federation-entry-startup";
|
|
5
|
+
export declare const generateEntryStartup: (compilation: Compilation, chunkGraph: ChunkGraph, runtimeTemplate: RuntimeTemplate, entries: EntryModuleWithChunkGroup[], chunk: Chunk, passive: boolean) => string;
|
|
6
|
+
export declare const generateESMEntryStartup: (compilation: Compilation, chunkGraph: ChunkGraph, runtimeTemplate: RuntimeTemplate, entries: EntryModuleWithChunkGroup[], chunk: Chunk, passive: boolean) => string;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Tobias Koppers @sokra, Zack Jackson @ScriptedAlchemy
|
|
4
|
+
*/
|
|
5
|
+
'use strict';
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.generateESMEntryStartup = exports.generateEntryStartup = exports.federationStartup = void 0;
|
|
8
|
+
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
9
|
+
const { RuntimeGlobals, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
|
|
10
|
+
const { isSubset } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/SetHelpers'));
|
|
11
|
+
const { getAllChunks } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/javascript/ChunkHelpers'));
|
|
12
|
+
const HotUpdateChunk = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/HotUpdateChunk'));
|
|
13
|
+
const { getUndoPath } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/identifier'));
|
|
14
|
+
const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `;
|
|
15
|
+
exports.federationStartup = 'federation-entry-startup';
|
|
16
|
+
// Abstracted from esm chunk format plugin in webpack, i only need the startup portion
|
|
17
|
+
// https://github.com/webpack/webpack/blob/c802a98f58e26dbfd727ee757ebad7c38b3c77aa/lib/esm/ModuleChunkFormatPlugin.js#L138
|
|
18
|
+
const generateEntryStartup = (compilation, chunkGraph, runtimeTemplate, entries, chunk, passive) => {
|
|
19
|
+
/** @type {string[]} */
|
|
20
|
+
const runtime = [
|
|
21
|
+
`var __webpack_exec__ = ${runtimeTemplate.returningFunction(`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`, 'moduleId')}`,
|
|
22
|
+
'',
|
|
23
|
+
'\n',
|
|
24
|
+
'var promises = [];',
|
|
25
|
+
];
|
|
26
|
+
const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
|
|
27
|
+
const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
|
|
28
|
+
const federation = chunkRuntimeRequirements.has(exports.federationStartup) ||
|
|
29
|
+
treeRuntimeRequirements.has(exports.federationStartup);
|
|
30
|
+
const hasRemotes = chunkRuntimeRequirements.has(RuntimeGlobals.currentRemoteGetScope) ||
|
|
31
|
+
// check if tree has req
|
|
32
|
+
treeRuntimeRequirements.has(RuntimeGlobals.currentRemoteGetScope) ||
|
|
33
|
+
// check if chunk contains remote module types
|
|
34
|
+
// currentRemoteGetScope is not reliable requirement for host check
|
|
35
|
+
!!chunkGraph.getChunkModulesIterableBySourceType(chunk, 'remote');
|
|
36
|
+
const hasConsumes = chunkRuntimeRequirements.has(RuntimeGlobals.initializeSharing) ||
|
|
37
|
+
treeRuntimeRequirements.has(RuntimeGlobals.initializeSharing) ||
|
|
38
|
+
chunkRuntimeRequirements.has(RuntimeGlobals.shareScopeMap) ||
|
|
39
|
+
treeRuntimeRequirements.has(RuntimeGlobals.shareScopeMap);
|
|
40
|
+
const runModule = (id) => {
|
|
41
|
+
return `__webpack_exec__(${JSON.stringify(id)})`;
|
|
42
|
+
};
|
|
43
|
+
const outputCombination = (chunks, moduleIds, final) => {
|
|
44
|
+
if (chunks.size === 0 && !federation) {
|
|
45
|
+
runtime.push(`${final ? EXPORT_PREFIX : ''}(${moduleIds.map(runModule).join(', ')});`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const fn = runtimeTemplate.returningFunction(moduleIds.map(runModule).join(', '));
|
|
49
|
+
if (federation) {
|
|
50
|
+
const chunkIds = Array.from(chunks, (c) => c.id);
|
|
51
|
+
const wrappedInit = (body) => Template.asString([
|
|
52
|
+
'Promise.all([',
|
|
53
|
+
Template.indent([
|
|
54
|
+
// may have other chunks who depend on federation, so best to just fallback
|
|
55
|
+
// instead of try to figure out if consumes or remotes exists during build
|
|
56
|
+
`${RuntimeGlobals.ensureChunkHandlers}.consumes || function(chunkId, promises) {},`,
|
|
57
|
+
`${RuntimeGlobals.ensureChunkHandlers}.remotes || function(chunkId, promises) {},`,
|
|
58
|
+
]),
|
|
59
|
+
`].reduce(${runtimeTemplate.returningFunction(`handler('${chunk.id}', p), p`, 'p, handler')}, promises)`,
|
|
60
|
+
`).then(${runtimeTemplate.returningFunction(body)});`,
|
|
61
|
+
]);
|
|
62
|
+
const wrap = wrappedInit(`${passive
|
|
63
|
+
? RuntimeGlobals.onChunksLoaded
|
|
64
|
+
: RuntimeGlobals.startupEntrypoint}(0, ${JSON.stringify(chunkIds)}, ${fn})`);
|
|
65
|
+
runtime.push(`${final && !passive ? EXPORT_PREFIX : ''}${wrap}`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const chunkIds = Array.from(chunks, (c) => c.id);
|
|
69
|
+
runtime.push(`${final && !passive ? EXPORT_PREFIX : ''}${passive
|
|
70
|
+
? RuntimeGlobals.onChunksLoaded
|
|
71
|
+
: RuntimeGlobals.startupEntrypoint}(0, ${JSON.stringify(chunkIds)}, ${fn});`);
|
|
72
|
+
if (final && passive) {
|
|
73
|
+
runtime.push(`${EXPORT_PREFIX}${RuntimeGlobals.onChunksLoaded}();`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
let currentChunks = undefined;
|
|
79
|
+
let currentModuleIds = undefined;
|
|
80
|
+
for (const [module, entrypoint] of entries) {
|
|
81
|
+
if (!entrypoint)
|
|
82
|
+
continue;
|
|
83
|
+
const runtimeChunk = entrypoint.getRuntimeChunk();
|
|
84
|
+
const moduleId = chunkGraph.getModuleId(module);
|
|
85
|
+
const chunks = getAllChunks(entrypoint, chunk, runtimeChunk);
|
|
86
|
+
if (currentChunks &&
|
|
87
|
+
currentChunks.size === chunks.size &&
|
|
88
|
+
isSubset(currentChunks, chunks)) {
|
|
89
|
+
currentModuleIds.push(moduleId);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (currentChunks) {
|
|
93
|
+
outputCombination(currentChunks, currentModuleIds);
|
|
94
|
+
}
|
|
95
|
+
currentChunks = chunks;
|
|
96
|
+
currentModuleIds = [moduleId];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// output current modules with export prefix
|
|
100
|
+
if (currentChunks) {
|
|
101
|
+
outputCombination(currentChunks, currentModuleIds, true);
|
|
102
|
+
}
|
|
103
|
+
runtime.push('');
|
|
104
|
+
return Template.asString(runtime);
|
|
105
|
+
};
|
|
106
|
+
exports.generateEntryStartup = generateEntryStartup;
|
|
107
|
+
const generateESMEntryStartup = (compilation, chunkGraph, runtimeTemplate, entries, chunk, passive) => {
|
|
108
|
+
const { chunkHasJs, getCompilationHooks, getChunkFilenameTemplate } = compilation.compiler.webpack.JavascriptModulesPlugin;
|
|
109
|
+
const { ConcatSource } = compilation.compiler.webpack.sources;
|
|
110
|
+
const hotUpdateChunk = chunk instanceof HotUpdateChunk ? chunk : null;
|
|
111
|
+
if (hotUpdateChunk) {
|
|
112
|
+
throw new Error('HMR is not implemented for module chunk format yet');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
|
|
116
|
+
const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
|
|
117
|
+
const federation = chunkRuntimeRequirements.has(exports.federationStartup) ||
|
|
118
|
+
treeRuntimeRequirements.has(exports.federationStartup);
|
|
119
|
+
if (entries.length > 0) {
|
|
120
|
+
const runtimeChunk = entries[0]?.[1]?.getRuntimeChunk?.();
|
|
121
|
+
if (!runtimeChunk) {
|
|
122
|
+
throw new Error('Runtime chunk is undefined');
|
|
123
|
+
}
|
|
124
|
+
const currentOutputName = compilation
|
|
125
|
+
.getPath(getChunkFilenameTemplate(chunk, compilation.outputOptions), {
|
|
126
|
+
chunk,
|
|
127
|
+
contentHashType: 'javascript',
|
|
128
|
+
})
|
|
129
|
+
.replace(/^\/+/g, '')
|
|
130
|
+
.split('/');
|
|
131
|
+
/**
|
|
132
|
+
* @param {Chunk} chunk the chunk
|
|
133
|
+
* @returns {string} the relative path
|
|
134
|
+
*/
|
|
135
|
+
const getRelativePath = (chunk) => {
|
|
136
|
+
const baseOutputName = currentOutputName.slice();
|
|
137
|
+
const chunkOutputName = compilation
|
|
138
|
+
.getPath(getChunkFilenameTemplate(chunk, compilation.outputOptions), {
|
|
139
|
+
chunk,
|
|
140
|
+
contentHashType: 'javascript',
|
|
141
|
+
})
|
|
142
|
+
.replace(/^\/+/g, '')
|
|
143
|
+
.split('/');
|
|
144
|
+
// remove common parts except filename
|
|
145
|
+
while (baseOutputName.length > 1 &&
|
|
146
|
+
chunkOutputName.length > 1 &&
|
|
147
|
+
baseOutputName[0] === chunkOutputName[0]) {
|
|
148
|
+
baseOutputName.shift();
|
|
149
|
+
chunkOutputName.shift();
|
|
150
|
+
}
|
|
151
|
+
const last = chunkOutputName.join('/');
|
|
152
|
+
// create final path
|
|
153
|
+
return getUndoPath(baseOutputName.join('/'), last, true) + last;
|
|
154
|
+
};
|
|
155
|
+
const startupSource = new ConcatSource();
|
|
156
|
+
startupSource.add(`var __webpack_exec__ = ${runtimeTemplate.returningFunction(`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`, 'moduleId')}\n`);
|
|
157
|
+
const loadedChunks = new Set();
|
|
158
|
+
let index = 0;
|
|
159
|
+
for (let i = 0; i < entries.length; i++) {
|
|
160
|
+
const [module, entrypoint] = entries[i];
|
|
161
|
+
if (!entrypoint)
|
|
162
|
+
continue;
|
|
163
|
+
const final = i + 1 === entries.length;
|
|
164
|
+
const moduleId = chunkGraph.getModuleId(module);
|
|
165
|
+
const chunks = getAllChunks(entrypoint, runtimeChunk, undefined);
|
|
166
|
+
for (const chunk of chunks) {
|
|
167
|
+
if (loadedChunks.has(chunk) || !chunkHasJs(chunk, chunkGraph))
|
|
168
|
+
continue;
|
|
169
|
+
loadedChunks.add(chunk);
|
|
170
|
+
startupSource.add(`import * as __webpack_chunk_${index}__ from ${JSON.stringify(getRelativePath(chunk))};\n`);
|
|
171
|
+
startupSource.add(`${RuntimeGlobals.externalInstallChunk}(__webpack_chunk_${index}__);\n`);
|
|
172
|
+
index++;
|
|
173
|
+
}
|
|
174
|
+
// generateEntryStartup handles calling require and execution of the entry module.
|
|
175
|
+
if (!federation) {
|
|
176
|
+
startupSource.add(`${final ? EXPORT_PREFIX : ''}__webpack_exec__(${JSON.stringify(moduleId)});\n`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (federation) {
|
|
180
|
+
startupSource.add('\n');
|
|
181
|
+
// call original entry startup, which will template out the startup code now that the chunk installs are done
|
|
182
|
+
startupSource.add((0, exports.generateEntryStartup)(compilation, chunkGraph, runtimeTemplate, entries, chunk, passive));
|
|
183
|
+
}
|
|
184
|
+
return startupSource.source();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return '';
|
|
188
|
+
};
|
|
189
|
+
exports.generateESMEntryStartup = generateESMEntryStartup;
|
|
190
|
+
//# sourceMappingURL=StartupHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartupHelpers.js","sourceRoot":"","sources":["../../../../src/lib/startup/StartupHelpers.ts"],"names":[],"mappings":"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"}
|
package/dist/src/webpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/webpack.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqF;
|
|
1
|
+
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/webpack.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqF;AAE5E,uGAFW,gCAAsB,OAEX"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { WebpackPluginInstance, Compiler } from 'webpack';
|
|
2
2
|
export default class HoistContainerReferencesPlugin implements WebpackPluginInstance {
|
|
3
3
|
name: string;
|
|
4
|
-
private containerName
|
|
5
|
-
|
|
4
|
+
private containerName;
|
|
5
|
+
private entryFilePath?;
|
|
6
|
+
private bundlerRuntimeDep?;
|
|
7
|
+
private explanation;
|
|
8
|
+
constructor(name?: string, entryFilePath?: string, bundlerRuntimeDep?: string);
|
|
6
9
|
apply(compiler: Compiler): void;
|
|
7
10
|
}
|
|
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
4
4
|
const PLUGIN_NAME = 'HoistContainerReferencesPlugin';
|
|
5
5
|
class HoistContainerReferencesPlugin {
|
|
6
|
-
constructor(name) {
|
|
7
|
-
this.containerName = name;
|
|
6
|
+
constructor(name, entryFilePath, bundlerRuntimeDep) {
|
|
7
|
+
this.containerName = name || 'no known chunk name';
|
|
8
|
+
this.entryFilePath = entryFilePath;
|
|
9
|
+
this.bundlerRuntimeDep = bundlerRuntimeDep;
|
|
10
|
+
this.explanation =
|
|
11
|
+
'Bundler runtime path module is required for proper functioning';
|
|
8
12
|
this.name = PLUGIN_NAME;
|
|
9
13
|
}
|
|
10
14
|
apply(compiler) {
|
|
@@ -12,7 +16,7 @@ class HoistContainerReferencesPlugin {
|
|
|
12
16
|
process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
|
|
13
17
|
const CoreHoistContainerReferencesPlugin = require('../lib/container/HoistContainerReferencesPlugin')
|
|
14
18
|
.default;
|
|
15
|
-
new CoreHoistContainerReferencesPlugin().apply(compiler);
|
|
19
|
+
new CoreHoistContainerReferencesPlugin(this.containerName, this.entryFilePath, this.bundlerRuntimeDep).apply(compiler);
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
exports.default = HoistContainerReferencesPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../src/wrapper/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;AACA,0FAA+E;AAE/E,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAqB,8BAA8B;
|
|
1
|
+
{"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../src/wrapper/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;AACA,0FAA+E;AAE/E,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAqB,8BAA8B;IASjD,YACE,IAAa,EACb,aAAsB,EACtB,iBAA0B;QAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,qBAAqB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,WAAW;YACd,gEAAgE,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,IAAA,uCAAc,EAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,kCAAkC,GACtC,OAAO,CAAC,iDAAiD,CAAC;aACvD,OAAmF,CAAC;QACzF,IAAI,kCAAkC,CACpC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,iBAAiB,CACvB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;CACF;AAlCD,iDAkCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/enhanced",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"main": "./dist/src/index.js",
|
|
5
5
|
"types": "./dist/src/index.d.ts",
|
|
6
6
|
"repository": "https://github.com/module-federation/core/tree/main/packages/enhanced",
|
|
@@ -68,17 +68,18 @@
|
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@types/btoa": "^1.2.5",
|
|
71
|
-
"
|
|
71
|
+
"enhanced-resolve": "^5.0.0",
|
|
72
|
+
"@module-federation/webpack-bundler-runtime": "0.6.2"
|
|
72
73
|
},
|
|
73
74
|
"dependencies": {
|
|
74
75
|
"upath": "2.0.1",
|
|
75
76
|
"btoa": "^1.2.1",
|
|
76
|
-
"@module-federation/sdk": "0.6.
|
|
77
|
-
"@module-federation/runtime-tools": "0.6.
|
|
78
|
-
"@module-federation/manifest": "0.6.
|
|
79
|
-
"@module-federation/managers": "0.6.
|
|
80
|
-
"@module-federation/dts-plugin": "0.6.
|
|
81
|
-
"@module-federation/rspack": "0.6.
|
|
82
|
-
"@module-federation/bridge-react-webpack-plugin": "0.6.
|
|
77
|
+
"@module-federation/sdk": "0.6.2",
|
|
78
|
+
"@module-federation/runtime-tools": "0.6.2",
|
|
79
|
+
"@module-federation/manifest": "0.6.2",
|
|
80
|
+
"@module-federation/managers": "0.6.2",
|
|
81
|
+
"@module-federation/dts-plugin": "0.6.2",
|
|
82
|
+
"@module-federation/rspack": "0.6.2",
|
|
83
|
+
"@module-federation/bridge-react-webpack-plugin": "0.6.2"
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
declare class Module extends DependenciesBlock {
|
|
2
|
-
constructor(type: string, context?: null | string, layer?: null | string);
|
|
3
|
-
type: string;
|
|
4
|
-
context: null | string;
|
|
5
|
-
layer: null | string;
|
|
6
|
-
needId: boolean;
|
|
7
|
-
debugId: number;
|
|
8
|
-
resolveOptions?: ResolveOptionsWebpackOptions;
|
|
9
|
-
factoryMeta?: FactoryMeta;
|
|
10
|
-
useSourceMap: boolean;
|
|
11
|
-
useSimpleSourceMap: boolean;
|
|
12
|
-
buildMeta?: BuildMeta;
|
|
13
|
-
buildInfo?: BuildInfo;
|
|
14
|
-
presentationalDependencies?: Dependency[];
|
|
15
|
-
codeGenerationDependencies?: Dependency[];
|
|
16
|
-
id: string | number;
|
|
17
|
-
get hash(): string;
|
|
18
|
-
get renderedHash(): string;
|
|
19
|
-
profile: null | ModuleProfile;
|
|
20
|
-
index: null | number;
|
|
21
|
-
index2: null | number;
|
|
22
|
-
depth: null | number;
|
|
23
|
-
issuer: null | Module;
|
|
24
|
-
get usedExports(): null | boolean | SortableSet<string>;
|
|
25
|
-
get optimizationBailout(): (
|
|
26
|
-
| string
|
|
27
|
-
| ((requestShortener: RequestShortener) => string)
|
|
28
|
-
)[];
|
|
29
|
-
get optional(): boolean;
|
|
30
|
-
addChunk(chunk: Chunk): boolean;
|
|
31
|
-
removeChunk(chunk: Chunk): void;
|
|
32
|
-
isInChunk(chunk: Chunk): boolean;
|
|
33
|
-
isEntryModule(): boolean;
|
|
34
|
-
getChunks(): Chunk[];
|
|
35
|
-
getNumberOfChunks(): number;
|
|
36
|
-
get chunksIterable(): Iterable<Chunk>;
|
|
37
|
-
isProvided(exportName: string): null | boolean;
|
|
38
|
-
get exportsArgument(): string;
|
|
39
|
-
get moduleArgument(): string;
|
|
40
|
-
getExportsType(
|
|
41
|
-
moduleGraph: ModuleGraph,
|
|
42
|
-
strict?: boolean,
|
|
43
|
-
): 'namespace' | 'default-only' | 'default-with-named' | 'dynamic';
|
|
44
|
-
addPresentationalDependency(presentationalDependency: Dependency): void;
|
|
45
|
-
addCodeGenerationDependency(codeGenerationDependency: Dependency): void;
|
|
46
|
-
addWarning(warning: WebpackError): void;
|
|
47
|
-
getWarnings(): undefined | Iterable<WebpackError>;
|
|
48
|
-
getNumberOfWarnings(): number;
|
|
49
|
-
addError(error: WebpackError): void;
|
|
50
|
-
getErrors(): undefined | Iterable<WebpackError>;
|
|
51
|
-
getNumberOfErrors(): number;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* removes all warnings and errors
|
|
55
|
-
*/
|
|
56
|
-
clearWarningsAndErrors(): void;
|
|
57
|
-
isOptional(moduleGraph: ModuleGraph): boolean;
|
|
58
|
-
isAccessibleInChunk(
|
|
59
|
-
chunkGraph: ChunkGraph,
|
|
60
|
-
chunk: Chunk,
|
|
61
|
-
ignoreChunk?: Chunk,
|
|
62
|
-
): boolean;
|
|
63
|
-
isAccessibleInChunkGroup(
|
|
64
|
-
chunkGraph: ChunkGraph,
|
|
65
|
-
chunkGroup: ChunkGroup,
|
|
66
|
-
ignoreChunk?: Chunk,
|
|
67
|
-
): boolean;
|
|
68
|
-
hasReasonForChunk(
|
|
69
|
-
chunk: Chunk,
|
|
70
|
-
moduleGraph: ModuleGraph,
|
|
71
|
-
chunkGraph: ChunkGraph,
|
|
72
|
-
): boolean;
|
|
73
|
-
hasReasons(moduleGraph: ModuleGraph, runtime: RuntimeSpec): boolean;
|
|
74
|
-
needBuild(
|
|
75
|
-
context: NeedBuildContext,
|
|
76
|
-
callback: (arg0?: null | WebpackError, arg1?: boolean) => void,
|
|
77
|
-
): void;
|
|
78
|
-
needRebuild(
|
|
79
|
-
fileTimestamps: Map<string, null | number>,
|
|
80
|
-
contextTimestamps: Map<string, null | number>,
|
|
81
|
-
): boolean;
|
|
82
|
-
invalidateBuild(): void;
|
|
83
|
-
identifier(): string;
|
|
84
|
-
readableIdentifier(requestShortener: RequestShortener): string;
|
|
85
|
-
build(
|
|
86
|
-
options: WebpackOptionsNormalized,
|
|
87
|
-
compilation: Compilation,
|
|
88
|
-
resolver: ResolverWithOptions,
|
|
89
|
-
fs: InputFileSystem,
|
|
90
|
-
callback: (arg0?: WebpackError) => void,
|
|
91
|
-
): void;
|
|
92
|
-
getSourceTypes(): Set<string>;
|
|
93
|
-
source(
|
|
94
|
-
dependencyTemplates: DependencyTemplates,
|
|
95
|
-
runtimeTemplate: RuntimeTemplate,
|
|
96
|
-
type?: string,
|
|
97
|
-
): Source;
|
|
98
|
-
size(type?: string): number;
|
|
99
|
-
libIdent(options: LibIdentOptions): null | string;
|
|
100
|
-
nameForCondition(): null | string;
|
|
101
|
-
getConcatenationBailoutReason(
|
|
102
|
-
context: ConcatenationBailoutReasonContext,
|
|
103
|
-
): undefined | string;
|
|
104
|
-
getSideEffectsConnectionState(moduleGraph: ModuleGraph): ConnectionState;
|
|
105
|
-
codeGeneration(context: CodeGenerationContext): CodeGenerationResult;
|
|
106
|
-
chunkCondition(chunk: Chunk, compilation: Compilation): boolean;
|
|
107
|
-
hasChunkCondition(): boolean;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Assuming this module is in the cache. Update the (cached) module with
|
|
111
|
-
* the fresh module from the factory. Usually updates internal references
|
|
112
|
-
* and properties.
|
|
113
|
-
*/
|
|
114
|
-
updateCacheModule(module: Module): void;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Module should be unsafe cached. Get data that's needed for that.
|
|
118
|
-
* This data will be passed to restoreFromUnsafeCache later.
|
|
119
|
-
*/
|
|
120
|
-
getUnsafeCacheData(): object;
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Assuming this module is in the cache. Remove internal references to allow freeing some memory.
|
|
124
|
-
*/
|
|
125
|
-
cleanupForCache(): void;
|
|
126
|
-
originalSource(): null | Source;
|
|
127
|
-
addCacheDependencies(
|
|
128
|
-
fileDependencies: LazySet<string>,
|
|
129
|
-
contextDependencies: LazySet<string>,
|
|
130
|
-
missingDependencies: LazySet<string>,
|
|
131
|
-
buildDependencies: LazySet<string>,
|
|
132
|
-
): void;
|
|
133
|
-
get hasEqualsChunks(): any;
|
|
134
|
-
get isUsed(): any;
|
|
135
|
-
get errors(): any;
|
|
136
|
-
get warnings(): any;
|
|
137
|
-
used: any;
|
|
138
|
-
}
|
|
File without changes
|