@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,4 +1,7 @@
|
|
|
1
|
-
import { ShareFallback } from
|
|
1
|
+
import { ShareFallback } from "./IndependentSharedPlugin.js";
|
|
2
|
+
import * as webpack$1 from "webpack";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.d.ts
|
|
2
5
|
/**
|
|
3
6
|
* Map of shared module name to Map of runtime id to Set of exported names
|
|
4
7
|
* @example {
|
|
@@ -7,15 +10,17 @@ import { ShareFallback } from './IndependentSharedPlugin';
|
|
|
7
10
|
* },
|
|
8
11
|
* }
|
|
9
12
|
*/
|
|
10
|
-
|
|
11
|
-
declare const RuntimeModule: typeof
|
|
13
|
+
type ReferencedExports = Map<string, Map<string, Set<string>>>;
|
|
14
|
+
declare const RuntimeModule: typeof webpack$1.RuntimeModule;
|
|
12
15
|
declare class IndependentSharedRuntimeModule extends RuntimeModule {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
buildAssets: ShareFallback;
|
|
17
|
+
libraryType: string;
|
|
18
|
+
constructor(buildAssets: ShareFallback, libraryType: string);
|
|
19
|
+
/**
|
|
20
|
+
* @returns {string | null} runtime code
|
|
21
|
+
*/
|
|
22
|
+
generate(): string | null;
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ReferencedExports, IndependentSharedRuntimeModule as default };
|
|
26
|
+
//# sourceMappingURL=IndependentSharedRuntimeModule.d.ts.map
|
|
@@ -1,30 +1,32 @@
|
|
|
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
|
-
|
|
28
|
-
}
|
|
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/IndependentSharedRuntimeModule.ts
|
|
7
|
+
const { Template, RuntimeGlobals, RuntimeModule } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
8
|
+
var IndependentSharedRuntimeModule = class extends RuntimeModule {
|
|
9
|
+
constructor(buildAssets, libraryType) {
|
|
10
|
+
super("shared-fallback", RuntimeModule.STAGE_ATTACH);
|
|
11
|
+
this.buildAssets = {};
|
|
12
|
+
this.libraryType = "global";
|
|
13
|
+
this.buildAssets = buildAssets;
|
|
14
|
+
this.libraryType = libraryType;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @returns {string | null} runtime code
|
|
18
|
+
*/
|
|
19
|
+
generate() {
|
|
20
|
+
if (!this.buildAssets || !Object.keys(this.buildAssets).length) return null;
|
|
21
|
+
const federationGlobal = require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals);
|
|
22
|
+
return Template.asString([
|
|
23
|
+
`if (!${federationGlobal}) return;`,
|
|
24
|
+
`${federationGlobal}.sharedFallback = ${JSON.stringify(this.buildAssets)};`,
|
|
25
|
+
`${federationGlobal}.libraryType = ${JSON.stringify(this.libraryType)};`
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
29
31
|
exports.default = IndependentSharedRuntimeModule;
|
|
30
32
|
//# sourceMappingURL=IndependentSharedRuntimeModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndependentSharedRuntimeModule.js","
|
|
1
|
+
{"version":3,"file":"IndependentSharedRuntimeModule.js","names":["getFederationGlobalScope"],"sources":["../../../../../src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport { getFederationGlobalScope } from '../../container/runtime/utils';\nimport { ShareFallback } from './IndependentSharedPlugin';\n\n/**\n * Map of shared module name to Map of runtime id to Set of exported names\n * @example {\n * 'antd': {\n * 'main': Set(['Button', 'exportedName2']),\n * },\n * }\n */\nexport type ReferencedExports = Map<string, Map<string, Set<string>>>;\n\nconst { Template, RuntimeGlobals, RuntimeModule } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass IndependentSharedRuntimeModule extends RuntimeModule {\n buildAssets: ShareFallback = {};\n libraryType = 'global';\n\n constructor(buildAssets: ShareFallback, libraryType: string) {\n super('shared-fallback', RuntimeModule.STAGE_ATTACH);\n this.buildAssets = buildAssets;\n this.libraryType = libraryType;\n }\n\n /**\n * @returns {string | null} runtime code\n */\n override generate(): string | null {\n if (!this.buildAssets || !Object.keys(this.buildAssets).length) {\n return null;\n }\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals);\n\n return Template.asString([\n `if (!${federationGlobal}) return;`,\n `${federationGlobal}.sharedFallback = ${JSON.stringify(this.buildAssets)};`,\n `${federationGlobal}.libraryType = ${JSON.stringify(this.libraryType)};`,\n ]);\n }\n}\n\nexport default IndependentSharedRuntimeModule;\n"],"mappings":";;;;;;AAcA,MAAM,EAAE,UAAU,gBAAgB,kBAAkB,gFAC7B,UAAU,CAChC;AAED,IAAM,iCAAN,cAA6C,cAAc;CAIzD,YAAY,aAA4B,aAAqB;AAC3D,QAAM,mBAAmB,cAAc,aAAa;qBAJzB,EAAE;qBACjB;AAIZ,OAAK,cAAc;AACnB,OAAK,cAAc;;;;;CAMrB,AAAS,WAA0B;AACjC,MAAI,CAAC,KAAK,eAAe,CAAC,OAAO,KAAK,KAAK,YAAY,CAAC,OACtD,QAAO;EAET,MAAM,mBAAmBA,6DAAyB,eAAe;AAEjE,SAAO,SAAS,SAAS;GACvB,QAAQ,iBAAiB;GACzB,GAAG,iBAAiB,oBAAoB,KAAK,UAAU,KAAK,YAAY,CAAC;GACzE,GAAG,iBAAiB,iBAAiB,KAAK,UAAU,KAAK,YAAY,CAAC;GACvE,CAAC"}
|
|
@@ -1,28 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { moduleFederationPlugin } from "@module-federation/sdk";
|
|
2
|
+
import { Compiler } from "webpack";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.d.ts
|
|
5
|
+
declare const PLUGIN_NAME = "SharedContainerPlugin";
|
|
6
|
+
type SharedContainerPluginOptions = {
|
|
7
|
+
mfName: string;
|
|
8
|
+
shareName: string;
|
|
9
|
+
version: string;
|
|
10
|
+
request: string;
|
|
11
|
+
library?: moduleFederationPlugin.LibraryOptions;
|
|
12
|
+
independentShareFileName?: string;
|
|
11
13
|
};
|
|
12
14
|
declare class SharedContainerPlugin {
|
|
15
|
+
name: string;
|
|
16
|
+
filename: string;
|
|
17
|
+
_options: {
|
|
13
18
|
name: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
constructor(options: SharedContainerPluginOptions);
|
|
25
|
-
getData(): string[];
|
|
26
|
-
apply(compiler: Compiler): void;
|
|
19
|
+
request: string;
|
|
20
|
+
version: string;
|
|
21
|
+
fileName: string;
|
|
22
|
+
library: moduleFederationPlugin.LibraryOptions;
|
|
23
|
+
};
|
|
24
|
+
_shareName: string;
|
|
25
|
+
_globalName: string;
|
|
26
|
+
constructor(options: SharedContainerPluginOptions);
|
|
27
|
+
getData(): string[];
|
|
28
|
+
apply(compiler: Compiler): void;
|
|
27
29
|
}
|
|
28
|
-
|
|
30
|
+
//#endregion
|
|
31
|
+
export { PLUGIN_NAME, SharedContainerPluginOptions, SharedContainerPlugin as default };
|
|
32
|
+
//# sourceMappingURL=SharedContainerPlugin.d.ts.map
|
|
@@ -1,98 +1,94 @@
|
|
|
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_container_runtime_utils = require('../../../container/runtime/utils.js');
|
|
4
|
+
const require_lib_container_runtime_FederationRuntimeModule = require('../../../container/runtime/FederationRuntimeModule.js');
|
|
5
|
+
const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedDependency = require('./SharedDependency.js');
|
|
6
|
+
const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryDependency = require('./SharedEntryDependency.js');
|
|
7
|
+
const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModuleFactory = require('./SharedEntryModuleFactory.js');
|
|
8
|
+
let _module_federation_sdk = require("@module-federation/sdk");
|
|
9
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
10
|
+
|
|
11
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.ts
|
|
12
|
+
const EntryDependency = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/dependencies/EntryDependency"));
|
|
13
|
+
const PLUGIN_NAME = "SharedContainerPlugin";
|
|
14
|
+
const HOT_UPDATE_SUFFIX = ".hot-update";
|
|
15
|
+
var SharedContainerPlugin = class {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.name = PLUGIN_NAME;
|
|
18
|
+
this.filename = "";
|
|
19
|
+
const { mfName, shareName, request, library, independentShareFileName } = options;
|
|
20
|
+
const version = options.version || "0.0.0";
|
|
21
|
+
this._globalName = (0, _module_federation_sdk.encodeName)(`${mfName}_${shareName}_${version}`);
|
|
22
|
+
const fileName = independentShareFileName || `${version}/share-entry.js`;
|
|
23
|
+
this._shareName = shareName;
|
|
24
|
+
this._options = {
|
|
25
|
+
name: shareName,
|
|
26
|
+
request,
|
|
27
|
+
library: (library ? {
|
|
28
|
+
...library,
|
|
29
|
+
name: this._globalName
|
|
30
|
+
} : void 0) || {
|
|
31
|
+
type: "global",
|
|
32
|
+
name: this._globalName
|
|
33
|
+
},
|
|
34
|
+
version,
|
|
35
|
+
fileName
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
getData() {
|
|
39
|
+
return [
|
|
40
|
+
this.filename,
|
|
41
|
+
this._globalName,
|
|
42
|
+
this._options.version
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
apply(compiler) {
|
|
46
|
+
const { library, name, request, fileName } = this._options;
|
|
47
|
+
if (library.type && compiler.options.output && compiler.options.output.enabledLibraryTypes && !compiler.options.output.enabledLibraryTypes.includes(library.type)) compiler.options.output.enabledLibraryTypes.push(library.type);
|
|
48
|
+
compiler.hooks.make.tapAsync(PLUGIN_NAME, async (compilation, callback) => {
|
|
49
|
+
const dep = new require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryDependency.default(name, request);
|
|
50
|
+
dep.loc = { name };
|
|
51
|
+
compilation.addEntry(compilation.options.context || "", dep, {
|
|
52
|
+
name,
|
|
53
|
+
filename: fileName,
|
|
54
|
+
library: {
|
|
55
|
+
type: library.type,
|
|
56
|
+
name: this._globalName
|
|
57
|
+
}
|
|
58
|
+
}, (error) => {
|
|
59
|
+
if (error) throw error;
|
|
60
|
+
});
|
|
61
|
+
callback();
|
|
62
|
+
});
|
|
63
|
+
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
|
|
64
|
+
compilation.dependencyFactories.set(require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryDependency.default, new require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModuleFactory.default());
|
|
65
|
+
compilation.dependencyFactories.set(require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedDependency.default, normalModuleFactory);
|
|
66
|
+
if (!compilation.dependencyFactories.has(EntryDependency)) compilation.dependencyFactories.set(EntryDependency, normalModuleFactory);
|
|
67
|
+
compilation.hooks.additionalTreeRuntimeRequirements.tap(PLUGIN_NAME, (chunk, set) => {
|
|
68
|
+
set.add(require_lib_container_runtime_utils.getFederationGlobalScope(compiler.webpack.RuntimeGlobals));
|
|
69
|
+
set.add(compiler.webpack.RuntimeGlobals.runtimeId);
|
|
70
|
+
compilation.addRuntimeModule(chunk, new require_lib_container_runtime_FederationRuntimeModule.default(set, name, {
|
|
71
|
+
name,
|
|
72
|
+
remotes: []
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
compilation.hooks.processAssets.tapPromise({
|
|
76
|
+
name: "getManifestFileName",
|
|
77
|
+
stage: compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER
|
|
78
|
+
}, async () => {
|
|
79
|
+
(0, _module_federation_sdk.assert)(compilation.entrypoints.get(name), `Can not get shared ${name} entryPoint!`);
|
|
80
|
+
const remoteEntryNameChunk = compilation.namedChunks.get(name);
|
|
81
|
+
(0, _module_federation_sdk.assert)(remoteEntryNameChunk, `Can not get shared ${name} chunk!`);
|
|
82
|
+
const files = Array.from(remoteEntryNameChunk.files).filter((f) => !f.includes(HOT_UPDATE_SUFFIX) && !f.endsWith(".css"));
|
|
83
|
+
(0, _module_federation_sdk.assert)(files.length > 0, `no files found for shared ${name} chunk`);
|
|
84
|
+
(0, _module_federation_sdk.assert)(files.length === 1, `shared ${name} chunk should not have multiple files!, current files: ${files.join(",")}`);
|
|
85
|
+
this.filename = files[0];
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
4
89
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
|
|
9
|
-
const SharedDependency_1 = __importDefault(require("./SharedDependency"));
|
|
10
|
-
const SharedEntryDependency_1 = __importDefault(require("./SharedEntryDependency"));
|
|
11
|
-
const SharedEntryModuleFactory_1 = __importDefault(require("./SharedEntryModuleFactory"));
|
|
12
|
-
const utils_1 = require("../../../container/runtime/utils");
|
|
13
|
-
const FederationRuntimeModule_1 = __importDefault(require("../../../container/runtime/FederationRuntimeModule"));
|
|
14
|
-
const EntryDependency = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/dependencies/EntryDependency'));
|
|
15
|
-
exports.PLUGIN_NAME = 'SharedContainerPlugin';
|
|
16
|
-
const HOT_UPDATE_SUFFIX = '.hot-update';
|
|
17
|
-
class SharedContainerPlugin {
|
|
18
|
-
constructor(options) {
|
|
19
|
-
this.name = exports.PLUGIN_NAME;
|
|
20
|
-
this.filename = '';
|
|
21
|
-
const { mfName, shareName, request, library, independentShareFileName } = options;
|
|
22
|
-
const version = options.version || '0.0.0';
|
|
23
|
-
this._globalName = (0, sdk_1.encodeName)(`${mfName}_${shareName}_${version}`);
|
|
24
|
-
const fileName = independentShareFileName || `${version}/share-entry.js`;
|
|
25
|
-
this._shareName = shareName;
|
|
26
|
-
this._options = {
|
|
27
|
-
name: shareName,
|
|
28
|
-
request: request,
|
|
29
|
-
library: (library
|
|
30
|
-
? { ...library, name: this._globalName }
|
|
31
|
-
: undefined) || {
|
|
32
|
-
type: 'global',
|
|
33
|
-
name: this._globalName,
|
|
34
|
-
},
|
|
35
|
-
version,
|
|
36
|
-
fileName,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
getData() {
|
|
40
|
-
return [this.filename, this._globalName, this._options.version];
|
|
41
|
-
}
|
|
42
|
-
apply(compiler) {
|
|
43
|
-
const { library, name, request, fileName } = this._options;
|
|
44
|
-
if (library.type &&
|
|
45
|
-
compiler.options.output &&
|
|
46
|
-
compiler.options.output.enabledLibraryTypes &&
|
|
47
|
-
!compiler.options.output.enabledLibraryTypes.includes(library.type)) {
|
|
48
|
-
compiler.options.output.enabledLibraryTypes.push(library.type);
|
|
49
|
-
}
|
|
50
|
-
compiler.hooks.make.tapAsync(exports.PLUGIN_NAME, async (compilation, callback) => {
|
|
51
|
-
const dep = new SharedEntryDependency_1.default(name, request);
|
|
52
|
-
dep.loc = { name: name };
|
|
53
|
-
compilation.addEntry(compilation.options.context || '', dep, {
|
|
54
|
-
name: name,
|
|
55
|
-
filename: fileName,
|
|
56
|
-
library: {
|
|
57
|
-
type: library.type,
|
|
58
|
-
name: this._globalName,
|
|
59
|
-
},
|
|
60
|
-
}, (error) => {
|
|
61
|
-
if (error) {
|
|
62
|
-
throw error;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
callback();
|
|
66
|
-
});
|
|
67
|
-
// add the container entry module
|
|
68
|
-
compiler.hooks.thisCompilation.tap(exports.PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
|
|
69
|
-
compilation.dependencyFactories.set(SharedEntryDependency_1.default, new SharedEntryModuleFactory_1.default());
|
|
70
|
-
compilation.dependencyFactories.set(SharedDependency_1.default, normalModuleFactory);
|
|
71
|
-
if (!compilation.dependencyFactories.has(EntryDependency)) {
|
|
72
|
-
compilation.dependencyFactories.set(EntryDependency, normalModuleFactory);
|
|
73
|
-
}
|
|
74
|
-
compilation.hooks.additionalTreeRuntimeRequirements.tap(exports.PLUGIN_NAME, (chunk, set) => {
|
|
75
|
-
set.add((0, utils_1.getFederationGlobalScope)(compiler.webpack.RuntimeGlobals));
|
|
76
|
-
set.add(compiler.webpack.RuntimeGlobals.runtimeId);
|
|
77
|
-
compilation.addRuntimeModule(chunk, new FederationRuntimeModule_1.default(set, name, { name, remotes: [] }));
|
|
78
|
-
});
|
|
79
|
-
compilation.hooks.processAssets.tapPromise({
|
|
80
|
-
name: 'getManifestFileName',
|
|
81
|
-
stage:
|
|
82
|
-
// @ts-ignore use runtime variable in case peer dep not installed
|
|
83
|
-
compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,
|
|
84
|
-
}, async () => {
|
|
85
|
-
const remoteEntryPoint = compilation.entrypoints.get(name);
|
|
86
|
-
(0, sdk_1.assert)(remoteEntryPoint, `Can not get shared ${name} entryPoint!`);
|
|
87
|
-
const remoteEntryNameChunk = compilation.namedChunks.get(name);
|
|
88
|
-
(0, sdk_1.assert)(remoteEntryNameChunk, `Can not get shared ${name} chunk!`);
|
|
89
|
-
const files = Array.from(remoteEntryNameChunk.files).filter((f) => !f.includes(HOT_UPDATE_SUFFIX) && !f.endsWith('.css'));
|
|
90
|
-
(0, sdk_1.assert)(files.length > 0, `no files found for shared ${name} chunk`);
|
|
91
|
-
(0, sdk_1.assert)(files.length === 1, `shared ${name} chunk should not have multiple files!, current files: ${files.join(',')}`);
|
|
92
|
-
this.filename = files[0];
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
exports.PLUGIN_NAME = PLUGIN_NAME;
|
|
97
93
|
exports.default = SharedContainerPlugin;
|
|
98
94
|
//# sourceMappingURL=SharedContainerPlugin.js.map
|
package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedContainerPlugin.js","
|
|
1
|
+
{"version":3,"file":"SharedContainerPlugin.js","names":["SharedEntryDependency","SharedEntryModuleFactory","SharedDependency","getFederationGlobalScope","FederationRuntimeModule"],"sources":["../../../../../../src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.ts"],"sourcesContent":["import type { moduleFederationPlugin } from '@module-federation/sdk';\nimport { assert, encodeName } from '@module-federation/sdk';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nimport type { Compilation, Compiler, WebpackError } from 'webpack';\nimport SharedDependency from './SharedDependency';\nimport SharedEntryDependency from './SharedEntryDependency';\nimport SharedEntryModuleFactory from './SharedEntryModuleFactory';\nimport { getFederationGlobalScope } from '../../../container/runtime/utils';\nimport FederationRuntimeModule from '../../../container/runtime/FederationRuntimeModule';\n\nconst EntryDependency = require(\n normalizeWebpackPath('webpack/lib/dependencies/EntryDependency'),\n) as typeof import('webpack/lib/dependencies/EntryDependency');\n\nexport const PLUGIN_NAME = 'SharedContainerPlugin';\nconst HOT_UPDATE_SUFFIX = '.hot-update';\n\nexport type SharedContainerPluginOptions = {\n mfName: string;\n shareName: string;\n version: string;\n request: string;\n library?: moduleFederationPlugin.LibraryOptions;\n independentShareFileName?: string;\n};\n\nclass SharedContainerPlugin {\n name = PLUGIN_NAME;\n filename = '';\n _options: {\n name: string;\n request: string;\n version: string;\n fileName: string;\n library: moduleFederationPlugin.LibraryOptions;\n };\n _shareName: string;\n _globalName: string;\n\n constructor(options: SharedContainerPluginOptions) {\n const { mfName, shareName, request, library, independentShareFileName } =\n options;\n const version = options.version || '0.0.0';\n this._globalName = encodeName(`${mfName}_${shareName}_${version}`);\n const fileName = independentShareFileName || `${version}/share-entry.js`;\n this._shareName = shareName;\n this._options = {\n name: shareName,\n request: request,\n library: (library\n ? { ...library, name: this._globalName }\n : undefined) || {\n type: 'global',\n name: this._globalName,\n },\n version,\n fileName,\n };\n }\n\n getData() {\n return [this.filename, this._globalName, this._options.version];\n }\n\n apply(compiler: Compiler): void {\n const { library, name, request, fileName } = this._options;\n\n if (\n library.type &&\n compiler.options.output &&\n compiler.options.output.enabledLibraryTypes &&\n !compiler.options.output.enabledLibraryTypes.includes(library.type)\n ) {\n compiler.options.output.enabledLibraryTypes.push(library.type);\n }\n\n compiler.hooks.make.tapAsync(\n PLUGIN_NAME,\n async (\n compilation: Compilation,\n callback: (error?: WebpackError | null | undefined) => void,\n ) => {\n const dep = new SharedEntryDependency(name, request);\n dep.loc = { name: name };\n\n compilation.addEntry(\n compilation.options.context || '',\n dep,\n {\n name: name,\n filename: fileName,\n library: {\n type: library.type!,\n name: this._globalName,\n },\n },\n (error: WebpackError | null | undefined) => {\n if (error) {\n throw error;\n }\n },\n );\n\n callback();\n },\n );\n\n // add the container entry module\n compiler.hooks.thisCompilation.tap(\n PLUGIN_NAME,\n (compilation: Compilation, { normalModuleFactory }) => {\n compilation.dependencyFactories.set(\n SharedEntryDependency,\n new SharedEntryModuleFactory(),\n );\n\n compilation.dependencyFactories.set(\n SharedDependency,\n normalModuleFactory,\n );\n\n if (!compilation.dependencyFactories.has(EntryDependency)) {\n compilation.dependencyFactories.set(\n EntryDependency,\n normalModuleFactory,\n );\n }\n\n compilation.hooks.additionalTreeRuntimeRequirements.tap(\n PLUGIN_NAME,\n (chunk, set) => {\n set.add(getFederationGlobalScope(compiler.webpack.RuntimeGlobals));\n set.add(compiler.webpack.RuntimeGlobals.runtimeId);\n compilation.addRuntimeModule(\n chunk,\n new FederationRuntimeModule(set, name, { name, remotes: [] }),\n );\n },\n );\n\n compilation.hooks.processAssets.tapPromise(\n {\n name: 'getManifestFileName',\n stage:\n // @ts-ignore use runtime variable in case peer dep not installed\n compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,\n },\n async () => {\n const remoteEntryPoint = compilation.entrypoints.get(name);\n assert(remoteEntryPoint, `Can not get shared ${name} entryPoint!`);\n const remoteEntryNameChunk = compilation.namedChunks.get(name);\n assert(remoteEntryNameChunk, `Can not get shared ${name} chunk!`);\n\n const files = Array.from(\n remoteEntryNameChunk.files as Iterable<string>,\n ).filter(\n (f: string) =>\n !f.includes(HOT_UPDATE_SUFFIX) && !f.endsWith('.css'),\n );\n assert(files.length > 0, `no files found for shared ${name} chunk`);\n assert(\n files.length === 1,\n `shared ${name} chunk should not have multiple files!, current files: ${files.join(\n ',',\n )}`,\n );\n this.filename = files[0];\n },\n );\n },\n );\n }\n}\n\nexport default SharedContainerPlugin;\n"],"mappings":";;;;;;;;;;;AAWA,MAAM,kBAAkB,gFACD,2CAA2C,CACjE;AAED,MAAa,cAAc;AAC3B,MAAM,oBAAoB;AAW1B,IAAM,wBAAN,MAA4B;CAa1B,YAAY,SAAuC;cAZ5C;kBACI;EAYT,MAAM,EAAE,QAAQ,WAAW,SAAS,SAAS,6BAC3C;EACF,MAAM,UAAU,QAAQ,WAAW;AACnC,OAAK,qDAAyB,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU;EAClE,MAAM,WAAW,4BAA4B,GAAG,QAAQ;AACxD,OAAK,aAAa;AAClB,OAAK,WAAW;GACd,MAAM;GACG;GACT,UAAU,UACN;IAAE,GAAG;IAAS,MAAM,KAAK;IAAa,GACtC,WAAc;IAChB,MAAM;IACN,MAAM,KAAK;IACZ;GACD;GACA;GACD;;CAGH,UAAU;AACR,SAAO;GAAC,KAAK;GAAU,KAAK;GAAa,KAAK,SAAS;GAAQ;;CAGjE,MAAM,UAA0B;EAC9B,MAAM,EAAE,SAAS,MAAM,SAAS,aAAa,KAAK;AAElD,MACE,QAAQ,QACR,SAAS,QAAQ,UACjB,SAAS,QAAQ,OAAO,uBACxB,CAAC,SAAS,QAAQ,OAAO,oBAAoB,SAAS,QAAQ,KAAK,CAEnE,UAAS,QAAQ,OAAO,oBAAoB,KAAK,QAAQ,KAAK;AAGhE,WAAS,MAAM,KAAK,SAClB,aACA,OACE,aACA,aACG;GACH,MAAM,MAAM,IAAIA,qFAAsB,MAAM,QAAQ;AACpD,OAAI,MAAM,EAAQ,MAAM;AAExB,eAAY,SACV,YAAY,QAAQ,WAAW,IAC/B,KACA;IACQ;IACN,UAAU;IACV,SAAS;KACP,MAAM,QAAQ;KACd,MAAM,KAAK;KACZ;IACF,GACA,UAA2C;AAC1C,QAAI,MACF,OAAM;KAGX;AAED,aAAU;IAEb;AAGD,WAAS,MAAM,gBAAgB,IAC7B,cACC,aAA0B,EAAE,0BAA0B;AACrD,eAAY,oBAAoB,IAC9BA,sFACA,IAAIC,yFAA0B,CAC/B;AAED,eAAY,oBAAoB,IAC9BC,iFACA,oBACD;AAED,OAAI,CAAC,YAAY,oBAAoB,IAAI,gBAAgB,CACvD,aAAY,oBAAoB,IAC9B,iBACA,oBACD;AAGH,eAAY,MAAM,kCAAkC,IAClD,cACC,OAAO,QAAQ;AACd,QAAI,IAAIC,6DAAyB,SAAS,QAAQ,eAAe,CAAC;AAClE,QAAI,IAAI,SAAS,QAAQ,eAAe,UAAU;AAClD,gBAAY,iBACV,OACA,IAAIC,8DAAwB,KAAK,MAAM;KAAE;KAAM,SAAS,EAAE;KAAE,CAAC,CAC9D;KAEJ;AAED,eAAY,MAAM,cAAc,WAC9B;IACE,MAAM;IACN,OAEE,YAAY,YAAY;IAC3B,EACD,YAAY;AAEV,uCADyB,YAAY,YAAY,IAAI,KAAK,EACjC,sBAAsB,KAAK,cAAc;IAClE,MAAM,uBAAuB,YAAY,YAAY,IAAI,KAAK;AAC9D,uCAAO,sBAAsB,sBAAsB,KAAK,SAAS;IAEjE,MAAM,QAAQ,MAAM,KAClB,qBAAqB,MACtB,CAAC,QACC,MACC,CAAC,EAAE,SAAS,kBAAkB,IAAI,CAAC,EAAE,SAAS,OAAO,CACxD;AACD,uCAAO,MAAM,SAAS,GAAG,6BAA6B,KAAK,QAAQ;AACnE,uCACE,MAAM,WAAW,GACjB,UAAU,KAAK,yDAAyD,MAAM,KAC5E,IACD,GACF;AACD,SAAK,WAAW,MAAM;KAEzB;IAEJ"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import * as webpack$1 from "webpack";
|
|
2
|
+
import { ObjectDeserializerContext, ObjectSerializerContext } from "webpack/lib/dependencies/ModuleDependency";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.d.ts
|
|
5
|
+
declare const dependencies: typeof webpack$1.dependencies;
|
|
3
6
|
declare class SharedDependency extends dependencies.ModuleDependency {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
sharedName: string;
|
|
8
|
+
request: string;
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} sharedName public name
|
|
11
|
+
* @param {string} request request to module
|
|
12
|
+
*/
|
|
13
|
+
constructor(sharedName: string, request: string);
|
|
14
|
+
get type(): string;
|
|
15
|
+
get category(): string;
|
|
16
|
+
/**
|
|
17
|
+
* @returns {string | null} an identifier to merge equal requests
|
|
18
|
+
*/
|
|
19
|
+
getResourceIdentifier(): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* @param {ObjectSerializerContext} context context
|
|
22
|
+
*/
|
|
23
|
+
serialize(context: ObjectSerializerContext): void;
|
|
24
|
+
/**
|
|
25
|
+
* @param {ObjectDeserializerContext} context context
|
|
26
|
+
*/
|
|
27
|
+
deserialize(context: ObjectDeserializerContext): void;
|
|
25
28
|
}
|
|
26
|
-
|
|
29
|
+
//#endregion
|
|
30
|
+
export { SharedDependency as default };
|
|
31
|
+
//# sourceMappingURL=SharedDependency.d.ts.map
|
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
|
|
4
|
+
|
|
5
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.ts
|
|
6
|
+
const makeSerializable = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/makeSerializable"));
|
|
7
|
+
const { dependencies } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
|
|
8
|
+
var SharedDependency = class extends dependencies.ModuleDependency {
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} sharedName public name
|
|
11
|
+
* @param {string} request request to module
|
|
12
|
+
*/
|
|
13
|
+
constructor(sharedName, request) {
|
|
14
|
+
super(request);
|
|
15
|
+
this.sharedName = sharedName;
|
|
16
|
+
this.request = request;
|
|
17
|
+
}
|
|
18
|
+
get type() {
|
|
19
|
+
return "shared exposed";
|
|
20
|
+
}
|
|
21
|
+
get category() {
|
|
22
|
+
return "esm";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @returns {string | null} an identifier to merge equal requests
|
|
26
|
+
*/
|
|
27
|
+
getResourceIdentifier() {
|
|
28
|
+
return `shared dependency ${this.sharedName}=${this.request}`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @param {ObjectSerializerContext} context context
|
|
32
|
+
*/
|
|
33
|
+
serialize(context) {
|
|
34
|
+
context.write(this.sharedName);
|
|
35
|
+
super.serialize(context);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @param {ObjectDeserializerContext} context context
|
|
39
|
+
*/
|
|
40
|
+
deserialize(context) {
|
|
41
|
+
this.sharedName = context.read();
|
|
42
|
+
super.deserialize(context);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
makeSerializable(SharedDependency, "SharedDependency");
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
44
48
|
exports.default = SharedDependency;
|
|
45
49
|
//# sourceMappingURL=SharedDependency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedDependency.js","
|
|
1
|
+
{"version":3,"file":"SharedDependency.js","names":[],"sources":["../../../../../../src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nconst makeSerializable = require(\n normalizeWebpackPath('webpack/lib/util/makeSerializable'),\n) as typeof import('webpack/lib/util/makeSerializable');\nconst { dependencies } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nimport type {\n ObjectDeserializerContext,\n ObjectSerializerContext,\n} from 'webpack/lib/dependencies/ModuleDependency';\n\nclass SharedDependency extends dependencies.ModuleDependency {\n sharedName: string;\n override request: string;\n\n /**\n * @param {string} sharedName public name\n * @param {string} request request to module\n */\n constructor(sharedName: string, request: string) {\n super(request);\n this.sharedName = sharedName;\n this.request = request;\n }\n\n override get type(): string {\n return 'shared exposed';\n }\n\n override get category(): string {\n return 'esm';\n }\n\n /**\n * @returns {string | null} an identifier to merge equal requests\n */\n override getResourceIdentifier(): string | null {\n return `shared dependency ${this.sharedName}=${this.request}`;\n }\n\n /**\n * @param {ObjectSerializerContext} context context\n */\n override serialize(context: ObjectSerializerContext): void {\n context.write(this.sharedName);\n super.serialize(context);\n }\n\n /**\n * @param {ObjectDeserializerContext} context context\n */\n override deserialize(context: ObjectDeserializerContext): void {\n this.sharedName = context.read();\n super.deserialize(context);\n }\n}\n\nmakeSerializable(SharedDependency, 'SharedDependency');\n\nexport default SharedDependency;\n"],"mappings":";;;;;AAEA,MAAM,mBAAmB,gFACF,oCAAoC,CAC1D;AACD,MAAM,EAAE,iBAAiB,gFACF,UAAU,CAChC;AAOD,IAAM,mBAAN,cAA+B,aAAa,iBAAiB;;;;;CAQ3D,YAAY,YAAoB,SAAiB;AAC/C,QAAM,QAAQ;AACd,OAAK,aAAa;AAClB,OAAK,UAAU;;CAGjB,IAAa,OAAe;AAC1B,SAAO;;CAGT,IAAa,WAAmB;AAC9B,SAAO;;;;;CAMT,AAAS,wBAAuC;AAC9C,SAAO,qBAAqB,KAAK,WAAW,GAAG,KAAK;;;;;CAMtD,AAAS,UAAU,SAAwC;AACzD,UAAQ,MAAM,KAAK,WAAW;AAC9B,QAAM,UAAU,QAAQ;;;;;CAM1B,AAAS,YAAY,SAA0C;AAC7D,OAAK,aAAa,QAAQ,MAAM;AAChC,QAAM,YAAY,QAAQ;;;AAI9B,iBAAiB,kBAAkB,mBAAmB"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import * as webpack$1 from "webpack";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.d.ts
|
|
4
|
+
declare const Dependency: typeof webpack$1.Dependency;
|
|
2
5
|
declare class SharedEntryDependency extends Dependency {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
name: string;
|
|
7
|
+
request: string;
|
|
8
|
+
/**
|
|
9
|
+
* @param {string} name entry name
|
|
10
|
+
* @param {string} request the request of the entry
|
|
11
|
+
*/
|
|
12
|
+
constructor(name: string, request: string);
|
|
13
|
+
/**
|
|
14
|
+
* @returns {string | null} an identifier to merge equal requests
|
|
15
|
+
*/
|
|
16
|
+
getResourceIdentifier(): string | null;
|
|
17
|
+
get type(): string;
|
|
18
|
+
get category(): string;
|
|
16
19
|
}
|
|
17
|
-
|
|
20
|
+
//#endregion
|
|
21
|
+
export { SharedEntryDependency as default };
|
|
22
|
+
//# sourceMappingURL=SharedEntryDependency.d.ts.map
|