@module-federation/enhanced 2.0.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +2357 -0
- package/dist/README.md +213 -0
- package/dist/rstestmigrate.md +140 -0
- package/dist/src/_virtual/_rolldown/runtime.js +47 -0
- package/dist/src/index.d.ts +22 -19
- package/dist/src/index.js +47 -43
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/Constants.d.ts +25 -29
- package/dist/src/lib/Constants.js +136 -116
- package/dist/src/lib/Constants.js.map +1 -1
- package/dist/src/lib/container/AsyncBoundaryPlugin.d.ts +20 -16
- package/dist/src/lib/container/AsyncBoundaryPlugin.js +137 -196
- package/dist/src/lib/container/AsyncBoundaryPlugin.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryDependency.d.ts +28 -23
- package/dist/src/lib/container/ContainerEntryDependency.js +39 -39
- package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModule.d.ts +93 -84
- package/dist/src/lib/container/ContainerEntryModule.js +219 -234
- package/dist/src/lib/container/ContainerEntryModule.js.map +1 -1
- package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +15 -10
- package/dist/src/lib/container/ContainerEntryModuleFactory.js +21 -25
- package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -1
- package/dist/src/lib/container/ContainerExposedDependency.d.ts +29 -24
- package/dist/src/lib/container/ContainerExposedDependency.js +47 -47
- package/dist/src/lib/container/ContainerExposedDependency.js.map +1 -1
- package/dist/src/lib/container/ContainerPlugin.d.ts +12 -8
- package/dist/src/lib/container/ContainerPlugin.js +147 -211
- package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
- package/dist/src/lib/container/ContainerReferencePlugin.d.ts +16 -12
- package/dist/src/lib/container/ContainerReferencePlugin.js +74 -102
- package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/lib/container/FallbackDependency.d.ts +24 -19
- package/dist/src/lib/container/FallbackDependency.js +46 -44
- package/dist/src/lib/container/FallbackDependency.js.map +1 -1
- package/dist/src/lib/container/FallbackItemDependency.d.ts +13 -8
- package/dist/src/lib/container/FallbackItemDependency.js +24 -24
- package/dist/src/lib/container/FallbackItemDependency.js.map +1 -1
- package/dist/src/lib/container/FallbackModule.d.ts +82 -71
- package/dist/src/lib/container/FallbackModule.js +133 -145
- package/dist/src/lib/container/FallbackModule.js.map +1 -1
- package/dist/src/lib/container/FallbackModuleFactory.d.ts +15 -10
- package/dist/src/lib/container/FallbackModuleFactory.js +20 -24
- package/dist/src/lib/container/FallbackModuleFactory.js.map +1 -1
- package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +11 -7
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js +125 -188
- package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/lib/container/ModuleFederationPlugin.d.ts +20 -16
- package/dist/src/lib/container/ModuleFederationPlugin.js +143 -180
- package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/lib/container/RemoteModule.d.ts +79 -74
- package/dist/src/lib/container/RemoteModule.js +143 -153
- package/dist/src/lib/container/RemoteModule.js.map +1 -1
- package/dist/src/lib/container/RemoteRuntimeModule.d.ts +12 -7
- package/dist/src/lib/container/RemoteRuntimeModule.js +86 -120
- package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/RemoteToExternalDependency.d.ts +13 -8
- package/dist/src/lib/container/RemoteToExternalDependency.js +25 -23
- package/dist/src/lib/container/RemoteToExternalDependency.js.map +1 -1
- package/dist/src/lib/container/constant.d.ts +3 -0
- package/dist/src/lib/container/constant.js +11 -14
- package/dist/src/lib/container/constant.js.map +1 -1
- package/dist/src/lib/container/options.d.ts +7 -3
- package/dist/src/lib/container/options.js +51 -69
- package/dist/src/lib/container/options.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +14 -9
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +56 -64
- package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +23 -19
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +71 -101
- package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationModulesPlugin.d.ts +20 -16
- package/dist/src/lib/container/runtime/FederationModulesPlugin.js +55 -47
- package/dist/src/lib/container/runtime/FederationModulesPlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.d.ts +9 -4
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.js +16 -12
- package/dist/src/lib/container/runtime/FederationRuntimeDependency.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +16 -11
- package/dist/src/lib/container/runtime/FederationRuntimeModule.js +39 -46
- package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -1
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +31 -18
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +266 -345
- package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/lib/container/runtime/getFederationGlobal.d.ts +9 -4
- package/dist/src/lib/container/runtime/getFederationGlobal.js +43 -41
- package/dist/src/lib/container/runtime/getFederationGlobal.js.map +1 -1
- package/dist/src/lib/container/runtime/utils.d.ts +24 -13
- package/dist/src/lib/container/runtime/utils.js +83 -101
- package/dist/src/lib/container/runtime/utils.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +15 -10
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js +27 -25
- package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +77 -68
- package/dist/src/lib/sharing/ConsumeSharedModule.js +186 -214
- package/dist/src/lib/sharing/ConsumeSharedModule.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +13 -9
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js +308 -475
- package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +16 -11
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +107 -125
- package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +14 -9
- package/dist/src/lib/sharing/ProvideForSharedDependency.js +25 -25
- package/dist/src/lib/sharing/ProvideForSharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +44 -39
- package/dist/src/lib/sharing/ProvideSharedDependency.js +72 -76
- package/dist/src/lib/sharing/ProvideSharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedModule.d.ts +91 -82
- package/dist/src/lib/sharing/ProvideSharedModule.js +177 -184
- package/dist/src/lib/sharing/ProvideSharedModule.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +14 -9
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.js +19 -25
- package/dist/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -1
- package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +27 -21
- package/dist/src/lib/sharing/ProvideSharedPlugin.js +341 -550
- package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/SharePlugin.d.ts +53 -49
- package/dist/src/lib/sharing/SharePlugin.js +86 -100
- package/dist/src/lib/sharing/SharePlugin.js.map +1 -1
- package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +12 -7
- package/dist/src/lib/sharing/ShareRuntimeModule.js +81 -100
- package/dist/src/lib/sharing/ShareRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +11 -7
- package/dist/src/lib/sharing/resolveMatchedConfigs.js +58 -71
- package/dist/src/lib/sharing/resolveMatchedConfigs.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.d.ts +18 -14
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js +74 -128
- package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.d.ts +39 -34
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js +234 -322
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.d.ts +16 -11
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js +30 -28
- package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.d.ts +28 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js +91 -95
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.d.ts +29 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js +47 -43
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.d.ts +20 -15
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js +33 -29
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.d.ts +85 -77
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js +141 -153
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.d.ts +15 -10
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js +20 -24
- package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.d.ts +21 -16
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js +157 -231
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.d.ts +14 -9
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js +26 -27
- package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js.map +1 -1
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.d.ts +18 -13
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js +41 -49
- package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js.map +1 -1
- package/dist/src/lib/sharing/utils.d.ts +27 -24
- package/dist/src/lib/sharing/utils.js +224 -367
- package/dist/src/lib/sharing/utils.js.map +1 -1
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.d.ts +11 -7
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +56 -75
- package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -1
- package/dist/src/lib/startup/StartupHelpers.d.ts +11 -6
- package/dist/src/lib/startup/StartupHelpers.js +128 -178
- package/dist/src/lib/startup/StartupHelpers.js.map +1 -1
- package/dist/src/prefetch.d.ts +3 -2
- package/dist/src/prefetch.js +17 -8
- package/dist/src/rspack.d.ts +3 -2
- package/dist/src/rspack.js +35 -11
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +8 -4
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +19 -16
- package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -1
- package/dist/src/runtime.d.ts +1 -1
- package/dist/src/runtime.js +11 -18
- package/dist/src/schemas/container/ContainerPlugin.check.d.ts +13 -5
- package/dist/src/schemas/container/ContainerPlugin.check.js +958 -1218
- package/dist/src/schemas/container/ContainerPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ContainerPlugin.d.ts +271 -268
- package/dist/src/schemas/container/ContainerPlugin.js +273 -361
- package/dist/src/schemas/container/ContainerPlugin.js.map +1 -1
- package/dist/src/schemas/container/ContainerReferencePlugin.check.d.ts +13 -5
- package/dist/src/schemas/container/ContainerReferencePlugin.check.js +335 -443
- package/dist/src/schemas/container/ContainerReferencePlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ContainerReferencePlugin.d.ts +102 -99
- package/dist/src/schemas/container/ContainerReferencePlugin.js +122 -162
- package/dist/src/schemas/container/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/schemas/container/ExternalsType.check.d.ts +13 -5
- package/dist/src/schemas/container/ExternalsType.check.js +36 -62
- package/dist/src/schemas/container/ExternalsType.check.js.map +1 -1
- package/dist/src/schemas/container/ExternalsType.d.ts +5 -2
- package/dist/src/schemas/container/ExternalsType.js +8 -11
- package/dist/src/schemas/container/ExternalsType.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js +3001 -4812
- package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -1
- package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +819 -814
- package/dist/src/schemas/container/ModuleFederationPlugin.js +780 -1053
- package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js +568 -768
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.d.ts +197 -194
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.js +212 -238
- package/dist/src/schemas/sharing/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js +598 -804
- package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ProvideSharedPlugin.d.ts +184 -181
- package/dist/src/schemas/sharing/ProvideSharedPlugin.js +196 -229
- package/dist/src/schemas/sharing/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.d.ts +12 -4
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js +285 -482
- package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/ProviderSharedPlugin.d.ts +103 -100
- package/dist/src/schemas/sharing/ProviderSharedPlugin.js +104 -126
- package/dist/src/schemas/sharing/ProviderSharedPlugin.js.map +1 -1
- package/dist/src/schemas/sharing/SharePlugin.check.d.ts +13 -5
- package/dist/src/schemas/sharing/SharePlugin.check.js +749 -965
- package/dist/src/schemas/sharing/SharePlugin.check.js.map +1 -1
- package/dist/src/schemas/sharing/SharePlugin.d.ts +245 -242
- package/dist/src/schemas/sharing/SharePlugin.js +256 -293
- package/dist/src/schemas/sharing/SharePlugin.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.js +35 -26
- package/dist/src/utils.js.map +1 -1
- package/dist/src/webpack.d.ts +2 -2
- package/dist/src/webpack.js +6 -40
- package/dist/src/wrapper/AsyncBoundaryPlugin.d.ts +9 -4
- package/dist/src/wrapper/AsyncBoundaryPlugin.js +12 -11
- package/dist/src/wrapper/AsyncBoundaryPlugin.js.map +1 -1
- package/dist/src/wrapper/BaseWrapperPlugin.d.ts +18 -13
- package/dist/src/wrapper/BaseWrapperPlugin.js +39 -39
- package/dist/src/wrapper/BaseWrapperPlugin.js.map +1 -1
- package/dist/src/wrapper/ConsumeSharedPlugin.d.ts +10 -4
- package/dist/src/wrapper/ConsumeSharedPlugin.js +12 -11
- package/dist/src/wrapper/ConsumeSharedPlugin.js.map +1 -1
- package/dist/src/wrapper/ContainerPlugin.d.ts +9 -4
- package/dist/src/wrapper/ContainerPlugin.js +12 -11
- package/dist/src/wrapper/ContainerPlugin.js.map +1 -1
- package/dist/src/wrapper/ContainerReferencePlugin.d.ts +9 -4
- package/dist/src/wrapper/ContainerReferencePlugin.js +12 -11
- package/dist/src/wrapper/ContainerReferencePlugin.js.map +1 -1
- package/dist/src/wrapper/FederationModulesPlugin.d.ts +18 -10
- package/dist/src/wrapper/FederationModulesPlugin.js +19 -19
- package/dist/src/wrapper/FederationModulesPlugin.js.map +1 -1
- package/dist/src/wrapper/FederationRuntimePlugin.d.ts +11 -6
- package/dist/src/wrapper/FederationRuntimePlugin.js +18 -17
- package/dist/src/wrapper/FederationRuntimePlugin.js.map +1 -1
- package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +8 -3
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js +12 -11
- package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -1
- package/dist/src/wrapper/ModuleFederationPlugin.d.ts +12 -7
- package/dist/src/wrapper/ModuleFederationPlugin.js +73 -99
- package/dist/src/wrapper/ModuleFederationPlugin.js.map +1 -1
- package/dist/src/wrapper/ProvideSharedPlugin.d.ts +10 -4
- package/dist/src/wrapper/ProvideSharedPlugin.js +12 -11
- package/dist/src/wrapper/ProvideSharedPlugin.js.map +1 -1
- package/dist/src/wrapper/SharePlugin.d.ts +10 -4
- package/dist/src/wrapper/SharePlugin.js +12 -11
- package/dist/src/wrapper/SharePlugin.js.map +1 -1
- package/dist/src/wrapper/TreeShakingSharedPlugin.d.ts +9 -4
- package/dist/src/wrapper/TreeShakingSharedPlugin.js +12 -11
- package/dist/src/wrapper/TreeShakingSharedPlugin.js.map +1 -1
- package/package.json +21 -14
- package/dist/package.json +0 -110
- package/dist/src/declarations/plugins/container/AsyncDependenciesBlock.d.ts +0 -57
- package/dist/src/declarations/plugins/container/ModuleFactory.d.ts +0 -33
- package/dist/src/declarations/plugins/container/ObjectDeserializerContext.d.ts +0 -4
- package/dist/src/declarations/plugins/container/StaticExportsDependency.d.ts +0 -28
- package/dist/src/declarations/plugins/container/Template.d.ts +0 -198
- package/dist/src/declarations/plugins/container/WebpackError.d.ts +0 -33
- package/dist/src/declarations/plugins/sharing/ConsumeSharedModule.d.ts +0 -86
- package/dist/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.ts +0 -100
- package/dist/src/declarations/plugins/sharing/ProvideSharedPlugin.d.ts +0 -102
- package/dist/src/declarations/plugins/sharing/SharePlugin.d.ts +0 -116
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.d.ts +0 -20
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js +0 -219
- package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js.map +0 -1
- package/dist/src/prefetch.js.map +0 -1
- package/dist/src/rspack.js.map +0 -1
- package/dist/src/runtime.js.map +0 -1
- package/dist/src/types/runtime.d.ts +0 -10
- package/dist/src/types/runtime.js +0 -3
- package/dist/src/types/runtime.js.map +0 -1
- package/dist/src/webpack.js.map +0 -1
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModule = require('./SharedEntryModule.js');
|
|
4
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
5
|
+
|
|
6
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.ts
|
|
7
|
+
const ModuleFactory = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/ModuleFactory"));
|
|
8
|
+
var SharedEntryModuleFactory = class extends ModuleFactory {
|
|
9
|
+
/**
|
|
10
|
+
* @param {ModuleFactoryCreateData} data data object
|
|
11
|
+
* @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
|
|
12
|
+
* @returns {void}
|
|
13
|
+
*/
|
|
14
|
+
create(data, callback) {
|
|
15
|
+
const { dependencies } = data;
|
|
16
|
+
const dep = dependencies[0];
|
|
17
|
+
callback(null, { module: new require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModule.default(dep.name, dep.request) });
|
|
18
|
+
}
|
|
4
19
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const SharedEntryModule_1 = __importDefault(require("./SharedEntryModule"));
|
|
8
|
-
const ModuleFactory = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/ModuleFactory'));
|
|
9
|
-
class SharedEntryModuleFactory extends ModuleFactory {
|
|
10
|
-
/**
|
|
11
|
-
* @param {ModuleFactoryCreateData} data data object
|
|
12
|
-
* @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
|
|
13
|
-
* @returns {void}
|
|
14
|
-
*/
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
create(data, callback) {
|
|
17
|
-
const { dependencies } = data;
|
|
18
|
-
const containerDependencies = dependencies;
|
|
19
|
-
const dep = containerDependencies[0];
|
|
20
|
-
callback(null, {
|
|
21
|
-
// @ts-ignore
|
|
22
|
-
module: new SharedEntryModule_1.default(dep.name, dep.request),
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
26
22
|
exports.default = SharedEntryModuleFactory;
|
|
27
23
|
//# sourceMappingURL=SharedEntryModuleFactory.js.map
|
package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedEntryModuleFactory.js","
|
|
1
|
+
{"version":3,"file":"SharedEntryModuleFactory.js","names":["SharedEntryModule"],"sources":["../../../../../../src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type SharedEntryDependency from './SharedEntryDependency';\nimport SharedEntryModule from './SharedEntryModule';\n\nconst ModuleFactory = require(\n normalizeWebpackPath('webpack/lib/ModuleFactory'),\n) as typeof import('webpack/lib/ModuleFactory');\nimport type {\n ModuleFactoryCreateData,\n ModuleFactoryResult,\n} from 'webpack/lib/ModuleFactory';\n\nexport default class SharedEntryModuleFactory extends ModuleFactory {\n /**\n * @param {ModuleFactoryCreateData} data data object\n * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback\n * @returns {void}\n */\n // @ts-ignore\n override create(\n data: ModuleFactoryCreateData,\n callback: (error: Error | null, result: ModuleFactoryResult) => void,\n ): void {\n const { dependencies } = data;\n const containerDependencies =\n dependencies as unknown as SharedEntryDependency[];\n const dep = containerDependencies[0];\n\n callback(null, {\n // @ts-ignore\n module: new SharedEntryModule(dep.name, dep.request),\n });\n }\n}\n"],"mappings":";;;;;;AAIA,MAAM,gBAAgB,gFACC,4BAA4B,CAClD;AAMD,IAAqB,2BAArB,cAAsD,cAAc;;;;;;CAOlE,AAAS,OACP,MACA,UACM;EACN,MAAM,EAAE,iBAAiB;EAGzB,MAAM,MADJ,aACgC;AAElC,WAAS,MAAM,EAEb,QAAQ,IAAIA,iFAAkB,IAAI,MAAM,IAAI,QAAQ,EACrD,CAAC"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { NormalizedSharedOptions } from "../SharePlugin.js";
|
|
2
|
+
import { ReferencedExports } from "./SharedUsedExportsOptimizerRuntimeModule.js";
|
|
3
|
+
import { moduleFederationPlugin } from "@module-federation/sdk";
|
|
4
|
+
import { Compiler, WebpackPluginInstance } from "webpack";
|
|
5
|
+
|
|
6
|
+
//#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.d.ts
|
|
7
|
+
type CustomReferencedExports = {
|
|
8
|
+
[sharedName: string]: string[];
|
|
7
9
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
declare class SharedUsedExportsOptimizerPlugin implements WebpackPluginInstance {
|
|
11
|
+
name: string;
|
|
12
|
+
sharedReferencedExports: ReferencedExports;
|
|
13
|
+
private sharedOptions;
|
|
14
|
+
private injectTreeShakingUsedExports;
|
|
15
|
+
private manifestOptions;
|
|
16
|
+
ignoredRuntime: string[];
|
|
17
|
+
constructor(sharedOptions: NormalizedSharedOptions, injectTreeShakingUsedExports?: boolean, ignoredRuntime?: string[], manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest']);
|
|
18
|
+
private applyCustomReferencedExports;
|
|
19
|
+
apply(compiler: Compiler): void;
|
|
18
20
|
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { CustomReferencedExports, SharedUsedExportsOptimizerPlugin as default };
|
|
23
|
+
//# sourceMappingURL=SharedUsedExportsOptimizerPlugin.d.ts.map
|
|
@@ -1,237 +1,163 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const SharedUsedExportsOptimizerRuntimeModule_1 = __importDefault(require("./SharedUsedExportsOptimizerRuntimeModule"));
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
const require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerRuntimeModule = require('./SharedUsedExportsOptimizerRuntimeModule.js');
|
|
4
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
5
|
+
|
|
6
|
+
//#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.ts
|
|
8
7
|
function isHarmonyImportSpecifierDependency(dependency) {
|
|
9
|
-
|
|
8
|
+
return dependency.type === "harmony import specifier";
|
|
10
9
|
}
|
|
11
|
-
// dynamic import import('ui-lib')
|
|
12
10
|
function isImportDependency(dependency) {
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
class SharedUsedExportsOptimizerPlugin {
|
|
16
|
-
constructor(sharedOptions, injectTreeShakingUsedExports, ignoredRuntime, manifestOptions) {
|
|
17
|
-
this.name = 'SharedUsedExportsOptimizerPlugin';
|
|
18
|
-
this.sharedOptions = sharedOptions;
|
|
19
|
-
this.injectTreeShakingUsedExports = injectTreeShakingUsedExports ?? true;
|
|
20
|
-
this.manifestOptions = manifestOptions ?? {};
|
|
21
|
-
this.sharedReferencedExports = new Map();
|
|
22
|
-
this.sharedOptions.forEach(([key, config]) => {
|
|
23
|
-
if (!config.treeShaking) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
this.sharedReferencedExports.set(key, new Set());
|
|
27
|
-
});
|
|
28
|
-
this.ignoredRuntime = ignoredRuntime || [];
|
|
29
|
-
}
|
|
30
|
-
applyCustomReferencedExports() {
|
|
31
|
-
const { sharedReferencedExports, sharedOptions } = this;
|
|
32
|
-
const addCustomExports = (shareKey, exports) => {
|
|
33
|
-
if (!sharedReferencedExports.get(shareKey)) {
|
|
34
|
-
sharedReferencedExports.set(shareKey, new Set());
|
|
35
|
-
}
|
|
36
|
-
const sharedExports = sharedReferencedExports.get(shareKey);
|
|
37
|
-
exports.forEach((item) => {
|
|
38
|
-
sharedExports.add(item);
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
sharedOptions.forEach(([shareKey, config]) => {
|
|
42
|
-
if (config.treeShaking?.usedExports) {
|
|
43
|
-
addCustomExports(shareKey, config.treeShaking.usedExports);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
apply(compiler) {
|
|
48
|
-
const { sharedReferencedExports, sharedOptions, injectTreeShakingUsedExports, manifestOptions, } = this;
|
|
49
|
-
if (!sharedOptions.length) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
compiler.hooks.compilation.tap('SharedUsedExportsOptimizerPlugin', (compilation) => {
|
|
53
|
-
// collect referenced export
|
|
54
|
-
compilation.hooks.dependencyReferencedExports.tap('SharedUsedExportsOptimizerPlugin', (referencedExports, dependency, runtime) => {
|
|
55
|
-
if (!('request' in dependency)) {
|
|
56
|
-
return referencedExports;
|
|
57
|
-
}
|
|
58
|
-
const shareKey = dependency.request;
|
|
59
|
-
if (typeof shareKey !== 'string' ||
|
|
60
|
-
sharedOptions.every(([key]) => key !== shareKey)) {
|
|
61
|
-
return referencedExports;
|
|
62
|
-
}
|
|
63
|
-
let currentReferencedExports = referencedExports;
|
|
64
|
-
if (isImportDependency(dependency) &&
|
|
65
|
-
referencedExports ===
|
|
66
|
-
compilation.compiler.webpack.Dependency
|
|
67
|
-
.EXPORTS_OBJECT_REFERENCED) {
|
|
68
|
-
sharedReferencedExports.delete(shareKey);
|
|
69
|
-
return currentReferencedExports;
|
|
70
|
-
}
|
|
71
|
-
if (isHarmonyImportSpecifierDependency(dependency) &&
|
|
72
|
-
dependency.ids &&
|
|
73
|
-
dependency.ids[0] === 'default') {
|
|
74
|
-
const { ids, referencedPropertiesInDestructuring } = dependency;
|
|
75
|
-
const getOriginalReferencedExports = () => {
|
|
76
|
-
if (referencedPropertiesInDestructuring) {
|
|
77
|
-
/** @type {string[][]} */
|
|
78
|
-
const refs = [];
|
|
79
|
-
for (const key of referencedPropertiesInDestructuring) {
|
|
80
|
-
refs.push({
|
|
81
|
-
name: ids ? ids.concat([key]) : [key],
|
|
82
|
-
canMangle: false,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return refs;
|
|
86
|
-
}
|
|
87
|
-
return ids ? [ids] : [[]];
|
|
88
|
-
};
|
|
89
|
-
currentReferencedExports = getOriginalReferencedExports();
|
|
90
|
-
}
|
|
91
|
-
if (!currentReferencedExports.length) {
|
|
92
|
-
return referencedExports;
|
|
93
|
-
}
|
|
94
|
-
currentReferencedExports.forEach((item) => {
|
|
95
|
-
if (typeof runtime !== 'string') {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const exportNames = [];
|
|
99
|
-
if (Array.isArray(item)) {
|
|
100
|
-
exportNames.push(...item);
|
|
101
|
-
}
|
|
102
|
-
else if (Array.isArray(item.name)) {
|
|
103
|
-
exportNames.push(...item.name);
|
|
104
|
-
}
|
|
105
|
-
exportNames.forEach((i) => {
|
|
106
|
-
const moduleExports = sharedReferencedExports.get(shareKey);
|
|
107
|
-
if (!moduleExports) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
moduleExports.add(i);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
return referencedExports;
|
|
114
|
-
});
|
|
115
|
-
// treeShaking shared module
|
|
116
|
-
compilation.hooks.optimizeDependencies.tap({
|
|
117
|
-
name: 'SharedUsedExportsOptimizerPlugin',
|
|
118
|
-
stage: 1,
|
|
119
|
-
}, (modules) => {
|
|
120
|
-
this.applyCustomReferencedExports();
|
|
121
|
-
const sharedModules = [...modules].filter((m) => [
|
|
122
|
-
'consume-shared-module',
|
|
123
|
-
'provide-module',
|
|
124
|
-
'shared-entry-module',
|
|
125
|
-
].includes(m.type));
|
|
126
|
-
const moduleGraph = compilation.moduleGraph;
|
|
127
|
-
sharedModules.forEach((module) => {
|
|
128
|
-
const shareKey = module.options?.shareKey ||
|
|
129
|
-
// @ts-expect-error FIXME: need to add general shareKey field
|
|
130
|
-
module._name ||
|
|
131
|
-
// @ts-ignore
|
|
132
|
-
module._name;
|
|
133
|
-
if (!shareKey) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
if (!sharedOptions.find(([key]) => key === shareKey)?.[1]
|
|
137
|
-
.treeShaking) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
const referenceExports = sharedReferencedExports.get(shareKey);
|
|
141
|
-
if (!referenceExports || !referenceExports.size) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const realSharedModule = [...modules].find((m) => 'rawRequest' in m && m.rawRequest === shareKey);
|
|
145
|
-
if (realSharedModule?.factoryMeta?.sideEffectFree !== true) {
|
|
146
|
-
referenceExports.clear();
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
// mark used exports
|
|
150
|
-
const handleDependency = (dep) => {
|
|
151
|
-
const usedExport = [...referenceExports];
|
|
152
|
-
const referencedModule = moduleGraph.getModule(dep);
|
|
153
|
-
if (!referencedModule)
|
|
154
|
-
return;
|
|
155
|
-
const exportsInfo = moduleGraph.getExportsInfo(referencedModule);
|
|
156
|
-
for (let i = 0; i < usedExport.length; i++) {
|
|
157
|
-
const exportInfo = exportsInfo.getExportInfo(usedExport[i]);
|
|
158
|
-
exportInfo.setUsed(compiler.webpack.UsageState.Used, undefined);
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
module.blocks.forEach((block) => {
|
|
162
|
-
block.dependencies.forEach((dep) => {
|
|
163
|
-
handleDependency(dep);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
module.dependencies.forEach((dep) => {
|
|
167
|
-
handleDependency(dep);
|
|
168
|
-
});
|
|
169
|
-
module.factoryMeta ||= {};
|
|
170
|
-
module.factoryMeta.sideEffectFree = true;
|
|
171
|
-
if (!realSharedModule) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const exportsInfo = compilation.moduleGraph.getExportsInfo(realSharedModule);
|
|
175
|
-
let canUpdateModuleUsedStage = true;
|
|
176
|
-
for (const subExport of exportsInfo.exports) {
|
|
177
|
-
const used = subExport.getUsed(undefined);
|
|
178
|
-
if (used !== 3 && used !== 0) {
|
|
179
|
-
if (referenceExports.has(subExport.name)) {
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
canUpdateModuleUsedStage = false;
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (canUpdateModuleUsedStage) {
|
|
187
|
-
for (const exportInfo of exportsInfo.exports) {
|
|
188
|
-
exportInfo.setUsedConditionally((used) => used === 3, 0, undefined);
|
|
189
|
-
}
|
|
190
|
-
// exportsInfo.otherExportsInfo.setUsedConditionally(
|
|
191
|
-
// (used) => used === 3,
|
|
192
|
-
// 0,
|
|
193
|
-
// undefined,
|
|
194
|
-
// );
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
});
|
|
198
|
-
// inject reference exports to stats
|
|
199
|
-
if (manifestOptions) {
|
|
200
|
-
compilation.hooks.processAssets.tapPromise({
|
|
201
|
-
name: 'injectReferenceExports',
|
|
202
|
-
stage: compilation.constructor
|
|
203
|
-
.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,
|
|
204
|
-
}, async () => {
|
|
205
|
-
const { statsFileName } = (0, sdk_1.getManifestFileName)(manifestOptions);
|
|
206
|
-
const stats = compilation.getAsset(statsFileName);
|
|
207
|
-
if (!stats) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
const statsContent = JSON.parse(stats.source.source().toString());
|
|
211
|
-
for (const key of sharedReferencedExports.keys()) {
|
|
212
|
-
const sharedModule = statsContent.shared.find((s) => s.name === key);
|
|
213
|
-
if (!sharedModule) {
|
|
214
|
-
continue;
|
|
215
|
-
}
|
|
216
|
-
const sharedReferenceExports = sharedReferencedExports.get(key);
|
|
217
|
-
if (!sharedReferenceExports) {
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
sharedModule.usedExports = [...sharedReferenceExports];
|
|
221
|
-
}
|
|
222
|
-
compilation.updateAsset(statsFileName, new compiler.webpack.sources.RawSource(JSON.stringify(statsContent, null, 2)));
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
if (!injectTreeShakingUsedExports) {
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
compilation.hooks.additionalTreeRuntimeRequirements.tap('SharedUsedExportsOptimizerPlugin', (chunk, set) => {
|
|
229
|
-
set.add(compiler.webpack.RuntimeGlobals.runtimeId);
|
|
230
|
-
// inject usedExports info to bundler runtime
|
|
231
|
-
compilation.addRuntimeModule(chunk, new SharedUsedExportsOptimizerRuntimeModule_1.default(this.sharedReferencedExports));
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
}
|
|
11
|
+
return dependency.type === "import()";
|
|
235
12
|
}
|
|
13
|
+
var SharedUsedExportsOptimizerPlugin = class {
|
|
14
|
+
constructor(sharedOptions, injectTreeShakingUsedExports, ignoredRuntime, manifestOptions) {
|
|
15
|
+
this.name = "SharedUsedExportsOptimizerPlugin";
|
|
16
|
+
this.sharedOptions = sharedOptions;
|
|
17
|
+
this.injectTreeShakingUsedExports = injectTreeShakingUsedExports ?? true;
|
|
18
|
+
this.manifestOptions = manifestOptions ?? {};
|
|
19
|
+
this.sharedReferencedExports = /* @__PURE__ */ new Map();
|
|
20
|
+
this.sharedOptions.forEach(([key, config]) => {
|
|
21
|
+
if (!config.treeShaking) return;
|
|
22
|
+
this.sharedReferencedExports.set(key, /* @__PURE__ */ new Set());
|
|
23
|
+
});
|
|
24
|
+
this.ignoredRuntime = ignoredRuntime || [];
|
|
25
|
+
}
|
|
26
|
+
applyCustomReferencedExports() {
|
|
27
|
+
const { sharedReferencedExports, sharedOptions } = this;
|
|
28
|
+
const addCustomExports = (shareKey, exports) => {
|
|
29
|
+
if (!sharedReferencedExports.get(shareKey)) sharedReferencedExports.set(shareKey, /* @__PURE__ */ new Set());
|
|
30
|
+
const sharedExports = sharedReferencedExports.get(shareKey);
|
|
31
|
+
exports.forEach((item) => {
|
|
32
|
+
sharedExports.add(item);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
sharedOptions.forEach(([shareKey, config]) => {
|
|
36
|
+
if (config.treeShaking?.usedExports) addCustomExports(shareKey, config.treeShaking.usedExports);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
apply(compiler) {
|
|
40
|
+
const { sharedReferencedExports, sharedOptions, injectTreeShakingUsedExports, manifestOptions } = this;
|
|
41
|
+
if (!sharedOptions.length) return;
|
|
42
|
+
compiler.hooks.compilation.tap("SharedUsedExportsOptimizerPlugin", (compilation) => {
|
|
43
|
+
compilation.hooks.dependencyReferencedExports.tap("SharedUsedExportsOptimizerPlugin", (referencedExports, dependency, runtime) => {
|
|
44
|
+
if (!("request" in dependency)) return referencedExports;
|
|
45
|
+
const shareKey = dependency.request;
|
|
46
|
+
if (typeof shareKey !== "string" || sharedOptions.every(([key]) => key !== shareKey)) return referencedExports;
|
|
47
|
+
let currentReferencedExports = referencedExports;
|
|
48
|
+
if (isImportDependency(dependency) && referencedExports === compilation.compiler.webpack.Dependency.EXPORTS_OBJECT_REFERENCED) {
|
|
49
|
+
sharedReferencedExports.delete(shareKey);
|
|
50
|
+
return currentReferencedExports;
|
|
51
|
+
}
|
|
52
|
+
if (isHarmonyImportSpecifierDependency(dependency) && dependency.ids && dependency.ids[0] === "default") {
|
|
53
|
+
const { ids, referencedPropertiesInDestructuring } = dependency;
|
|
54
|
+
const getOriginalReferencedExports = () => {
|
|
55
|
+
if (referencedPropertiesInDestructuring) {
|
|
56
|
+
/** @type {string[][]} */
|
|
57
|
+
const refs = [];
|
|
58
|
+
for (const key of referencedPropertiesInDestructuring) refs.push({
|
|
59
|
+
name: ids ? ids.concat([key]) : [key],
|
|
60
|
+
canMangle: false
|
|
61
|
+
});
|
|
62
|
+
return refs;
|
|
63
|
+
}
|
|
64
|
+
return ids ? [ids] : [[]];
|
|
65
|
+
};
|
|
66
|
+
currentReferencedExports = getOriginalReferencedExports();
|
|
67
|
+
}
|
|
68
|
+
if (!currentReferencedExports.length) return referencedExports;
|
|
69
|
+
currentReferencedExports.forEach((item) => {
|
|
70
|
+
if (typeof runtime !== "string") return;
|
|
71
|
+
const exportNames = [];
|
|
72
|
+
if (Array.isArray(item)) exportNames.push(...item);
|
|
73
|
+
else if (Array.isArray(item.name)) exportNames.push(...item.name);
|
|
74
|
+
exportNames.forEach((i) => {
|
|
75
|
+
const moduleExports = sharedReferencedExports.get(shareKey);
|
|
76
|
+
if (!moduleExports) return;
|
|
77
|
+
moduleExports.add(i);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
return referencedExports;
|
|
81
|
+
});
|
|
82
|
+
compilation.hooks.optimizeDependencies.tap({
|
|
83
|
+
name: "SharedUsedExportsOptimizerPlugin",
|
|
84
|
+
stage: 1
|
|
85
|
+
}, (modules) => {
|
|
86
|
+
this.applyCustomReferencedExports();
|
|
87
|
+
const sharedModules = [...modules].filter((m) => [
|
|
88
|
+
"consume-shared-module",
|
|
89
|
+
"provide-module",
|
|
90
|
+
"shared-entry-module"
|
|
91
|
+
].includes(m.type));
|
|
92
|
+
const moduleGraph = compilation.moduleGraph;
|
|
93
|
+
sharedModules.forEach((module) => {
|
|
94
|
+
const shareKey = module.options?.shareKey || module._name || module._name;
|
|
95
|
+
if (!shareKey) return;
|
|
96
|
+
if (!sharedOptions.find(([key]) => key === shareKey)?.[1].treeShaking) return;
|
|
97
|
+
const referenceExports = sharedReferencedExports.get(shareKey);
|
|
98
|
+
if (!referenceExports || !referenceExports.size) return;
|
|
99
|
+
const realSharedModule = [...modules].find((m) => "rawRequest" in m && m.rawRequest === shareKey);
|
|
100
|
+
if (realSharedModule?.factoryMeta?.sideEffectFree !== true) {
|
|
101
|
+
referenceExports.clear();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const handleDependency = (dep) => {
|
|
105
|
+
const usedExport = [...referenceExports];
|
|
106
|
+
const referencedModule = moduleGraph.getModule(dep);
|
|
107
|
+
if (!referencedModule) return;
|
|
108
|
+
const exportsInfo = moduleGraph.getExportsInfo(referencedModule);
|
|
109
|
+
for (let i = 0; i < usedExport.length; i++) exportsInfo.getExportInfo(usedExport[i]).setUsed(compiler.webpack.UsageState.Used, void 0);
|
|
110
|
+
};
|
|
111
|
+
module.blocks.forEach((block) => {
|
|
112
|
+
block.dependencies.forEach((dep) => {
|
|
113
|
+
handleDependency(dep);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
module.dependencies.forEach((dep) => {
|
|
117
|
+
handleDependency(dep);
|
|
118
|
+
});
|
|
119
|
+
module.factoryMeta ||= {};
|
|
120
|
+
module.factoryMeta.sideEffectFree = true;
|
|
121
|
+
if (!realSharedModule) return;
|
|
122
|
+
const exportsInfo = compilation.moduleGraph.getExportsInfo(realSharedModule);
|
|
123
|
+
let canUpdateModuleUsedStage = true;
|
|
124
|
+
for (const subExport of exportsInfo.exports) {
|
|
125
|
+
const used = subExport.getUsed(void 0);
|
|
126
|
+
if (used !== 3 && used !== 0) {
|
|
127
|
+
if (referenceExports.has(subExport.name)) continue;
|
|
128
|
+
canUpdateModuleUsedStage = false;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (canUpdateModuleUsedStage) for (const exportInfo of exportsInfo.exports) exportInfo.setUsedConditionally((used) => used === 3, 0, void 0);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
if (manifestOptions) compilation.hooks.processAssets.tapPromise({
|
|
136
|
+
name: "injectReferenceExports",
|
|
137
|
+
stage: compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER
|
|
138
|
+
}, async () => {
|
|
139
|
+
const { statsFileName } = (0, _module_federation_sdk.getManifestFileName)(manifestOptions);
|
|
140
|
+
const stats = compilation.getAsset(statsFileName);
|
|
141
|
+
if (!stats) return;
|
|
142
|
+
const statsContent = JSON.parse(stats.source.source().toString());
|
|
143
|
+
for (const key of sharedReferencedExports.keys()) {
|
|
144
|
+
const sharedModule = statsContent.shared.find((s) => s.name === key);
|
|
145
|
+
if (!sharedModule) continue;
|
|
146
|
+
const sharedReferenceExports = sharedReferencedExports.get(key);
|
|
147
|
+
if (!sharedReferenceExports) continue;
|
|
148
|
+
sharedModule.usedExports = [...sharedReferenceExports];
|
|
149
|
+
}
|
|
150
|
+
compilation.updateAsset(statsFileName, new compiler.webpack.sources.RawSource(JSON.stringify(statsContent, null, 2)));
|
|
151
|
+
});
|
|
152
|
+
if (!injectTreeShakingUsedExports) return;
|
|
153
|
+
compilation.hooks.additionalTreeRuntimeRequirements.tap("SharedUsedExportsOptimizerPlugin", (chunk, set) => {
|
|
154
|
+
set.add(compiler.webpack.RuntimeGlobals.runtimeId);
|
|
155
|
+
compilation.addRuntimeModule(chunk, new require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerRuntimeModule.default(this.sharedReferencedExports));
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
//#endregion
|
|
236
162
|
exports.default = SharedUsedExportsOptimizerPlugin;
|
|
237
163
|
//# sourceMappingURL=SharedUsedExportsOptimizerPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedUsedExportsOptimizerPlugin.js","sourceRoot":"","sources":["../../../../../src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SharedUsedExportsOptimizerPlugin.js","names":["SharedUsedExportsOptimizerRuntimeModule"],"sources":["../../../../../src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.ts"],"sourcesContent":["import type {\n WebpackPluginInstance,\n Compiler,\n Dependency,\n dependencies,\n} from 'webpack';\nimport {\n moduleFederationPlugin,\n type Stats,\n getManifestFileName,\n} from '@module-federation/sdk';\nimport SharedUsedExportsOptimizerRuntimeModule, {\n ReferencedExports,\n} from './SharedUsedExportsOptimizerRuntimeModule';\nimport { NormalizedSharedOptions } from '../SharePlugin';\nimport ConsumeSharedModule from '../ConsumeSharedModule';\nimport ProvideSharedModule from '../ProvideSharedModule';\nimport SharedEntryModule from './SharedContainerPlugin/SharedEntryModule';\n\nexport type CustomReferencedExports = { [sharedName: string]: string[] };\n\nfunction isHarmonyImportSpecifierDependency(\n dependency: Dependency,\n): dependency is dependencies.HarmonyImportSpecifierDependency {\n return dependency.type === 'harmony import specifier';\n}\n\n// dynamic import import('ui-lib')\nfunction isImportDependency(dependency: Dependency) {\n return dependency.type === 'import()';\n}\n\nexport default class SharedUsedExportsOptimizerPlugin implements WebpackPluginInstance {\n name = 'SharedUsedExportsOptimizerPlugin';\n\n sharedReferencedExports: ReferencedExports;\n private sharedOptions: NormalizedSharedOptions;\n private injectTreeShakingUsedExports: boolean;\n private manifestOptions: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'];\n ignoredRuntime: string[];\n\n constructor(\n sharedOptions: NormalizedSharedOptions,\n injectTreeShakingUsedExports?: boolean,\n ignoredRuntime?: string[],\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n ) {\n this.sharedOptions = sharedOptions;\n this.injectTreeShakingUsedExports = injectTreeShakingUsedExports ?? true;\n this.manifestOptions = manifestOptions ?? {};\n this.sharedReferencedExports = new Map();\n this.sharedOptions.forEach(([key, config]) => {\n if (!config.treeShaking) {\n return;\n }\n this.sharedReferencedExports.set(key, new Set());\n });\n this.ignoredRuntime = ignoredRuntime || [];\n }\n\n private applyCustomReferencedExports() {\n const { sharedReferencedExports, sharedOptions } = this;\n const addCustomExports = (shareKey: string, exports: string[]) => {\n if (!sharedReferencedExports.get(shareKey)) {\n sharedReferencedExports.set(shareKey, new Set());\n }\n const sharedExports = sharedReferencedExports.get(shareKey)!;\n\n exports.forEach((item) => {\n sharedExports.add(item);\n });\n };\n\n sharedOptions.forEach(([shareKey, config]) => {\n if (config.treeShaking?.usedExports) {\n addCustomExports(shareKey, config.treeShaking.usedExports);\n }\n });\n }\n\n apply(compiler: Compiler) {\n const {\n sharedReferencedExports,\n sharedOptions,\n injectTreeShakingUsedExports,\n manifestOptions,\n } = this;\n if (!sharedOptions.length) {\n return;\n }\n compiler.hooks.compilation.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (compilation) => {\n // collect referenced export\n compilation.hooks.dependencyReferencedExports.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (referencedExports, dependency, runtime) => {\n if (!('request' in dependency)) {\n return referencedExports;\n }\n const shareKey = dependency.request;\n if (\n typeof shareKey !== 'string' ||\n sharedOptions.every(([key]) => key !== shareKey)\n ) {\n return referencedExports;\n }\n let currentReferencedExports = referencedExports;\n if (\n isImportDependency(dependency) &&\n referencedExports ===\n compilation.compiler.webpack.Dependency\n .EXPORTS_OBJECT_REFERENCED\n ) {\n sharedReferencedExports.delete(shareKey);\n return currentReferencedExports;\n }\n if (\n isHarmonyImportSpecifierDependency(dependency) &&\n dependency.ids &&\n dependency.ids[0] === 'default'\n ) {\n const { ids, referencedPropertiesInDestructuring } = dependency;\n const getOriginalReferencedExports = () => {\n if (referencedPropertiesInDestructuring) {\n /** @type {string[][]} */\n const refs = [];\n for (const key of referencedPropertiesInDestructuring) {\n refs.push({\n name: ids ? ids.concat([key]) : [key],\n canMangle: false,\n });\n }\n return refs;\n }\n return ids ? [ids] : [[]];\n };\n currentReferencedExports = getOriginalReferencedExports();\n }\n if (!currentReferencedExports.length) {\n return referencedExports;\n }\n\n currentReferencedExports.forEach((item) => {\n if (typeof runtime !== 'string') {\n return;\n }\n const exportNames: string[] = [];\n if (Array.isArray(item)) {\n exportNames.push(...item);\n } else if (Array.isArray(item.name)) {\n exportNames.push(...item.name);\n }\n\n exportNames.forEach((i) => {\n const moduleExports = sharedReferencedExports.get(shareKey);\n if (!moduleExports) {\n return;\n }\n moduleExports.add(i);\n });\n });\n\n return referencedExports;\n },\n );\n\n // treeShaking shared module\n compilation.hooks.optimizeDependencies.tap(\n {\n name: 'SharedUsedExportsOptimizerPlugin',\n stage: 1,\n },\n (modules) => {\n this.applyCustomReferencedExports();\n const sharedModules = [...modules].filter((m) =>\n [\n 'consume-shared-module',\n 'provide-module',\n 'shared-entry-module',\n ].includes(m.type),\n ) as (\n | ConsumeSharedModule\n | ProvideSharedModule\n | SharedEntryModule\n )[];\n const moduleGraph = compilation.moduleGraph;\n sharedModules.forEach((module) => {\n const shareKey =\n (module as ConsumeSharedModule).options?.shareKey ||\n // @ts-expect-error FIXME: need to add general shareKey field\n (module as ProvideSharedModule)._name ||\n // @ts-ignore\n (module as SharedEntryModule)._name;\n if (!shareKey) {\n return;\n }\n if (\n !sharedOptions.find(([key]) => key === shareKey)?.[1]\n .treeShaking\n ) {\n return;\n }\n const referenceExports = sharedReferencedExports.get(shareKey);\n if (!referenceExports || !referenceExports.size) {\n return;\n }\n const realSharedModule = [...modules].find(\n (m) => 'rawRequest' in m && m.rawRequest === shareKey,\n );\n if (realSharedModule?.factoryMeta?.sideEffectFree !== true) {\n referenceExports.clear();\n return;\n }\n // mark used exports\n const handleDependency = (dep: Dependency) => {\n const usedExport = [...referenceExports];\n\n const referencedModule = moduleGraph.getModule(dep);\n if (!referencedModule) return;\n\n const exportsInfo =\n moduleGraph.getExportsInfo(referencedModule);\n\n for (let i = 0; i < usedExport.length; i++) {\n const exportInfo = exportsInfo.getExportInfo(usedExport[i]);\n exportInfo.setUsed(\n compiler.webpack.UsageState.Used,\n undefined,\n );\n }\n };\n\n module.blocks.forEach((block) => {\n block.dependencies.forEach((dep) => {\n handleDependency(dep);\n });\n });\n\n module.dependencies.forEach((dep) => {\n handleDependency(dep);\n });\n\n module.factoryMeta ||= {};\n module.factoryMeta.sideEffectFree = true;\n if (!realSharedModule) {\n return;\n }\n const exportsInfo =\n compilation.moduleGraph.getExportsInfo(realSharedModule);\n let canUpdateModuleUsedStage = true;\n for (const subExport of exportsInfo.exports) {\n const used = subExport.getUsed(undefined);\n if (used !== 3 && used !== 0) {\n if (referenceExports.has(subExport.name)) {\n continue;\n }\n canUpdateModuleUsedStage = false;\n break;\n }\n }\n\n if (canUpdateModuleUsedStage) {\n for (const exportInfo of exportsInfo.exports) {\n exportInfo.setUsedConditionally(\n (used) => used === 3,\n 0,\n undefined,\n );\n }\n // exportsInfo.otherExportsInfo.setUsedConditionally(\n // (used) => used === 3,\n // 0,\n // undefined,\n // );\n }\n });\n },\n );\n\n // inject reference exports to stats\n if (manifestOptions) {\n compilation.hooks.processAssets.tapPromise(\n {\n name: 'injectReferenceExports',\n stage: (compilation.constructor as any)\n .PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,\n },\n async () => {\n const { statsFileName } = getManifestFileName(manifestOptions);\n const stats = compilation.getAsset(statsFileName);\n if (!stats) {\n return;\n }\n const statsContent = JSON.parse(\n stats.source.source().toString(),\n ) as Stats;\n\n for (const key of sharedReferencedExports.keys()) {\n const sharedModule = statsContent.shared.find(\n (s: any) => s.name === key,\n );\n if (!sharedModule) {\n continue;\n }\n\n const sharedReferenceExports = sharedReferencedExports.get(key);\n if (!sharedReferenceExports) {\n continue;\n }\n sharedModule.usedExports = [...sharedReferenceExports];\n }\n\n compilation.updateAsset(\n statsFileName,\n new compiler.webpack.sources.RawSource(\n JSON.stringify(statsContent, null, 2),\n ),\n );\n },\n );\n }\n\n if (!injectTreeShakingUsedExports) {\n return;\n }\n compilation.hooks.additionalTreeRuntimeRequirements.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (chunk, set) => {\n set.add(compiler.webpack.RuntimeGlobals.runtimeId);\n\n // inject usedExports info to bundler runtime\n compilation.addRuntimeModule(\n chunk,\n new SharedUsedExportsOptimizerRuntimeModule(\n this.sharedReferencedExports,\n ),\n );\n },\n );\n },\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import * as webpack$1 from "webpack";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.d.ts
|
|
1
4
|
/**
|
|
2
5
|
* Map of shared module name to Map of runtime id to Set of exported names
|
|
3
6
|
* @example {
|
|
4
7
|
* 'antd': Set(['Button', 'exportedName2']),
|
|
5
8
|
* }
|
|
6
9
|
*/
|
|
7
|
-
|
|
8
|
-
declare const RuntimeModule: typeof
|
|
10
|
+
type ReferencedExports = Map<string, Set<string>>;
|
|
11
|
+
declare const RuntimeModule: typeof webpack$1.RuntimeModule;
|
|
9
12
|
declare class SharedUsedExportsOptimizerRuntimeModule extends RuntimeModule {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
private sharedUsedExports;
|
|
14
|
+
constructor(sharedUsedExports: ReferencedExports);
|
|
15
|
+
/**
|
|
16
|
+
* @returns {string | null} runtime code
|
|
17
|
+
*/
|
|
18
|
+
generate(): string | null;
|
|
16
19
|
}
|
|
17
|
-
|
|
20
|
+
//#endregion
|
|
21
|
+
export { ReferencedExports, SharedUsedExportsOptimizerRuntimeModule as default };
|
|
22
|
+
//# sourceMappingURL=SharedUsedExportsOptimizerRuntimeModule.d.ts.map
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
const require_lib_container_runtime_utils = require('../../container/runtime/utils.js');
|
|
4
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
5
|
+
|
|
6
|
+
//#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.ts
|
|
7
|
+
const { Template, RuntimeGlobals, RuntimeModule } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
8
|
+
var SharedUsedExportsOptimizerRuntimeModule = class extends RuntimeModule {
|
|
9
|
+
constructor(sharedUsedExports) {
|
|
10
|
+
super("shared-used-exports", RuntimeModule.STAGE_ATTACH);
|
|
11
|
+
this.sharedUsedExports = sharedUsedExports;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @returns {string | null} runtime code
|
|
15
|
+
*/
|
|
16
|
+
generate() {
|
|
17
|
+
if (!this.sharedUsedExports) return null;
|
|
18
|
+
const federationGlobal = require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals);
|
|
19
|
+
return Template.asString([`if(!${federationGlobal}) {return;}`, `${federationGlobal}.usedExports = ${JSON.stringify(Array.from(this.sharedUsedExports.entries()).reduce((acc, [pkg, moduleMap]) => {
|
|
20
|
+
acc[pkg] = Array.from(moduleMap);
|
|
21
|
+
return acc;
|
|
22
|
+
}, {}))};`]);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
28
27
|
exports.default = SharedUsedExportsOptimizerRuntimeModule;
|
|
29
28
|
//# sourceMappingURL=SharedUsedExportsOptimizerRuntimeModule.js.map
|