@module-federation/runtime-core 0.0.0-feat-shared-treeshake-poc-20251230095050 → 0.0.0-feat-shared-treeshake-poc-20260112031921
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/index.cjs.cjs +70 -99
- package/dist/index.cjs.cjs.map +1 -1
- package/dist/index.esm.js +70 -99
- package/dist/index.esm.js.map +1 -1
- package/dist/src/shared/index.d.ts +1 -1
- package/dist/src/type/config.d.ts +5 -5
- package/dist/src/utils/share.d.ts +5 -5
- package/package.json +3 -3
package/dist/index.esm.js
CHANGED
|
@@ -200,7 +200,7 @@ function getGlobalFederationConstructor() {
|
|
|
200
200
|
function setGlobalFederationConstructor(FederationConstructor, isDebug = isDebugMode()) {
|
|
201
201
|
if (isDebug) {
|
|
202
202
|
CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
|
|
203
|
-
CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.0-feat-shared-treeshake-poc-
|
|
203
|
+
CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.0-feat-shared-treeshake-poc-20260112031921";
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
@@ -807,8 +807,8 @@ function formatShare(shareArgs, from, name, shareStrategy) {
|
|
|
807
807
|
throw new Error(`Can not get shared '${name}'!`);
|
|
808
808
|
});
|
|
809
809
|
}
|
|
810
|
-
if (shareArgs.shareConfig?.eager && shareArgs.
|
|
811
|
-
throw new Error('Can not set "eager:true" and "
|
|
810
|
+
if (shareArgs.shareConfig?.eager && shareArgs.treeShaking) {
|
|
811
|
+
throw new Error('Can not set "eager:true" and "treeShaking" at the same time!');
|
|
812
812
|
}
|
|
813
813
|
return {
|
|
814
814
|
deps: [],
|
|
@@ -830,11 +830,11 @@ function formatShare(shareArgs, from, name, shareStrategy) {
|
|
|
830
830
|
? shareArgs.scope
|
|
831
831
|
: [shareArgs.scope ?? 'default'],
|
|
832
832
|
strategy: (shareArgs.strategy ?? shareStrategy) || 'version-first',
|
|
833
|
-
|
|
833
|
+
treeShaking: shareArgs.treeShaking
|
|
834
834
|
? {
|
|
835
|
-
...shareArgs.
|
|
836
|
-
strategy: shareArgs.
|
|
837
|
-
status: shareArgs.
|
|
835
|
+
...shareArgs.treeShaking,
|
|
836
|
+
strategy: shareArgs.treeShaking.strategy ?? 'server',
|
|
837
|
+
status: shareArgs.treeShaking.status ?? 1 /* TreeShakingStatus.UNKNOWN */,
|
|
838
838
|
useIn: [],
|
|
839
839
|
}
|
|
840
840
|
: undefined,
|
|
@@ -869,22 +869,22 @@ function formatShareConfigs(prevOptions, newOptions) {
|
|
|
869
869
|
});
|
|
870
870
|
return { allShareInfos, newShareInfos };
|
|
871
871
|
}
|
|
872
|
-
function
|
|
873
|
-
if (!
|
|
872
|
+
function shouldUseTreeShaking(treeShaking, usedExports) {
|
|
873
|
+
if (!treeShaking) {
|
|
874
874
|
return false;
|
|
875
875
|
}
|
|
876
|
-
const { status, strategy } =
|
|
877
|
-
if (status === 0 /*
|
|
876
|
+
const { status, strategy } = treeShaking;
|
|
877
|
+
if (status === 0 /* TreeShakingStatus.NO_USE */) {
|
|
878
878
|
return false;
|
|
879
879
|
}
|
|
880
|
-
if (status === 2 /*
|
|
880
|
+
if (status === 2 /* TreeShakingStatus.CALCULATED */) {
|
|
881
881
|
return true;
|
|
882
882
|
}
|
|
883
883
|
if (strategy === 'infer') {
|
|
884
884
|
if (!usedExports) {
|
|
885
885
|
return true;
|
|
886
886
|
}
|
|
887
|
-
return isMatchUsedExports(
|
|
887
|
+
return isMatchUsedExports(treeShaking, usedExports);
|
|
888
888
|
}
|
|
889
889
|
return false;
|
|
890
890
|
}
|
|
@@ -936,76 +936,76 @@ const isLoaded = (shared) => {
|
|
|
936
936
|
const isLoading = (shared) => {
|
|
937
937
|
return Boolean(shared.loading);
|
|
938
938
|
};
|
|
939
|
-
const isMatchUsedExports = (
|
|
940
|
-
if (!
|
|
939
|
+
const isMatchUsedExports = (treeShaking, usedExports) => {
|
|
940
|
+
if (!treeShaking || !usedExports) {
|
|
941
941
|
return false;
|
|
942
942
|
}
|
|
943
|
-
const { usedExports:
|
|
944
|
-
if (!
|
|
943
|
+
const { usedExports: treeShakingUsedExports } = treeShaking;
|
|
944
|
+
if (!treeShakingUsedExports) {
|
|
945
945
|
return false;
|
|
946
946
|
}
|
|
947
|
-
if (usedExports.every((e) =>
|
|
947
|
+
if (usedExports.every((e) => treeShakingUsedExports.includes(e))) {
|
|
948
948
|
return true;
|
|
949
949
|
}
|
|
950
950
|
return false;
|
|
951
951
|
};
|
|
952
|
-
function findSingletonVersionOrderByVersion(shareScopeMap, scope, pkgName,
|
|
952
|
+
function findSingletonVersionOrderByVersion(shareScopeMap, scope, pkgName, treeShaking) {
|
|
953
953
|
const versions = shareScopeMap[scope][pkgName];
|
|
954
954
|
let version = '';
|
|
955
|
-
let
|
|
955
|
+
let useTreesShaking = shouldUseTreeShaking(treeShaking);
|
|
956
956
|
// return false means use prev version
|
|
957
957
|
const callback = function (prev, cur) {
|
|
958
|
-
if (
|
|
959
|
-
if (!versions[prev].
|
|
958
|
+
if (useTreesShaking) {
|
|
959
|
+
if (!versions[prev].treeShaking) {
|
|
960
960
|
return true;
|
|
961
961
|
}
|
|
962
|
-
if (!versions[cur].
|
|
962
|
+
if (!versions[cur].treeShaking) {
|
|
963
963
|
return false;
|
|
964
964
|
}
|
|
965
|
-
return !isLoaded(versions[prev].
|
|
965
|
+
return !isLoaded(versions[prev].treeShaking) && versionLt(prev, cur);
|
|
966
966
|
}
|
|
967
967
|
return !isLoaded(versions[prev]) && versionLt(prev, cur);
|
|
968
968
|
};
|
|
969
|
-
if (
|
|
969
|
+
if (useTreesShaking) {
|
|
970
970
|
version = findVersion(shareScopeMap[scope][pkgName], callback);
|
|
971
971
|
if (version) {
|
|
972
972
|
return {
|
|
973
973
|
version,
|
|
974
|
-
|
|
974
|
+
useTreesShaking,
|
|
975
975
|
};
|
|
976
976
|
}
|
|
977
|
-
|
|
977
|
+
useTreesShaking = false;
|
|
978
978
|
}
|
|
979
979
|
return {
|
|
980
980
|
version: findVersion(shareScopeMap[scope][pkgName], callback),
|
|
981
|
-
|
|
981
|
+
useTreesShaking,
|
|
982
982
|
};
|
|
983
983
|
}
|
|
984
984
|
const isLoadingOrLoaded = (shared) => {
|
|
985
985
|
return isLoaded(shared) || isLoading(shared);
|
|
986
986
|
};
|
|
987
|
-
function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName,
|
|
987
|
+
function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName, treeShaking) {
|
|
988
988
|
const versions = shareScopeMap[scope][pkgName];
|
|
989
989
|
let version = '';
|
|
990
|
-
let
|
|
990
|
+
let useTreesShaking = shouldUseTreeShaking(treeShaking);
|
|
991
991
|
// return false means use prev version
|
|
992
992
|
const callback = function (prev, cur) {
|
|
993
|
-
if (
|
|
994
|
-
if (!versions[prev].
|
|
993
|
+
if (useTreesShaking) {
|
|
994
|
+
if (!versions[prev].treeShaking) {
|
|
995
995
|
return true;
|
|
996
996
|
}
|
|
997
|
-
if (!versions[cur].
|
|
997
|
+
if (!versions[cur].treeShaking) {
|
|
998
998
|
return false;
|
|
999
999
|
}
|
|
1000
|
-
if (isLoadingOrLoaded(versions[cur].
|
|
1001
|
-
if (isLoadingOrLoaded(versions[prev].
|
|
1000
|
+
if (isLoadingOrLoaded(versions[cur].treeShaking)) {
|
|
1001
|
+
if (isLoadingOrLoaded(versions[prev].treeShaking)) {
|
|
1002
1002
|
return Boolean(versionLt(prev, cur));
|
|
1003
1003
|
}
|
|
1004
1004
|
else {
|
|
1005
1005
|
return true;
|
|
1006
1006
|
}
|
|
1007
1007
|
}
|
|
1008
|
-
if (isLoadingOrLoaded(versions[prev].
|
|
1008
|
+
if (isLoadingOrLoaded(versions[prev].treeShaking)) {
|
|
1009
1009
|
return false;
|
|
1010
1010
|
}
|
|
1011
1011
|
}
|
|
@@ -1022,19 +1022,19 @@ function findSingletonVersionOrderByLoaded(shareScopeMap, scope, pkgName, treesh
|
|
|
1022
1022
|
}
|
|
1023
1023
|
return versionLt(prev, cur);
|
|
1024
1024
|
};
|
|
1025
|
-
if (
|
|
1025
|
+
if (useTreesShaking) {
|
|
1026
1026
|
version = findVersion(shareScopeMap[scope][pkgName], callback);
|
|
1027
1027
|
if (version) {
|
|
1028
1028
|
return {
|
|
1029
1029
|
version,
|
|
1030
|
-
|
|
1030
|
+
useTreesShaking,
|
|
1031
1031
|
};
|
|
1032
1032
|
}
|
|
1033
|
-
|
|
1033
|
+
useTreesShaking = false;
|
|
1034
1034
|
}
|
|
1035
1035
|
return {
|
|
1036
1036
|
version: findVersion(shareScopeMap[scope][pkgName], callback),
|
|
1037
|
-
|
|
1037
|
+
useTreesShaking,
|
|
1038
1038
|
};
|
|
1039
1039
|
}
|
|
1040
1040
|
function getFindShareFunction(strategy) {
|
|
@@ -1047,7 +1047,7 @@ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare
|
|
|
1047
1047
|
if (!localShareScopeMap) {
|
|
1048
1048
|
return;
|
|
1049
1049
|
}
|
|
1050
|
-
const { shareConfig, scope = DEFAULT_SCOPE, strategy,
|
|
1050
|
+
const { shareConfig, scope = DEFAULT_SCOPE, strategy, treeShaking, } = shareInfo;
|
|
1051
1051
|
const scopes = Array.isArray(scope) ? scope : [scope];
|
|
1052
1052
|
for (const sc of scopes) {
|
|
1053
1053
|
if (shareConfig &&
|
|
@@ -1055,7 +1055,7 @@ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare
|
|
|
1055
1055
|
localShareScopeMap[sc][pkgName]) {
|
|
1056
1056
|
const { requiredVersion } = shareConfig;
|
|
1057
1057
|
const findShareFunction = getFindShareFunction(strategy);
|
|
1058
|
-
const { version: maxOrSingletonVersion,
|
|
1058
|
+
const { version: maxOrSingletonVersion, useTreesShaking } = findShareFunction(localShareScopeMap, sc, pkgName, treeShaking);
|
|
1059
1059
|
const defaultResolver = () => {
|
|
1060
1060
|
const shared = localShareScopeMap[sc][pkgName][maxOrSingletonVersion];
|
|
1061
1061
|
if (shareConfig.singleton) {
|
|
@@ -1071,32 +1071,32 @@ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare
|
|
|
1071
1071
|
}
|
|
1072
1072
|
return {
|
|
1073
1073
|
shared,
|
|
1074
|
-
|
|
1074
|
+
useTreesShaking,
|
|
1075
1075
|
};
|
|
1076
1076
|
}
|
|
1077
1077
|
else {
|
|
1078
1078
|
if (requiredVersion === false || requiredVersion === '*') {
|
|
1079
1079
|
return {
|
|
1080
1080
|
shared,
|
|
1081
|
-
|
|
1081
|
+
useTreesShaking,
|
|
1082
1082
|
};
|
|
1083
1083
|
}
|
|
1084
1084
|
if (satisfy(maxOrSingletonVersion, requiredVersion)) {
|
|
1085
1085
|
return {
|
|
1086
1086
|
shared,
|
|
1087
|
-
|
|
1087
|
+
useTreesShaking,
|
|
1088
1088
|
};
|
|
1089
1089
|
}
|
|
1090
|
-
const
|
|
1091
|
-
if (
|
|
1090
|
+
const _usedTreeShaking = shouldUseTreeShaking(treeShaking);
|
|
1091
|
+
if (_usedTreeShaking) {
|
|
1092
1092
|
for (const [versionKey, versionValue] of Object.entries(localShareScopeMap[sc][pkgName])) {
|
|
1093
|
-
if (!
|
|
1093
|
+
if (!shouldUseTreeShaking(versionValue.treeShaking, treeShaking?.usedExports)) {
|
|
1094
1094
|
continue;
|
|
1095
1095
|
}
|
|
1096
1096
|
if (satisfy(versionKey, requiredVersion)) {
|
|
1097
1097
|
return {
|
|
1098
1098
|
shared: versionValue,
|
|
1099
|
-
|
|
1099
|
+
useTreesShaking: _usedTreeShaking,
|
|
1100
1100
|
};
|
|
1101
1101
|
}
|
|
1102
1102
|
}
|
|
@@ -1105,7 +1105,7 @@ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare
|
|
|
1105
1105
|
if (satisfy(versionKey, requiredVersion)) {
|
|
1106
1106
|
return {
|
|
1107
1107
|
shared: versionValue,
|
|
1108
|
-
|
|
1108
|
+
useTreesShaking: false,
|
|
1109
1109
|
};
|
|
1110
1110
|
}
|
|
1111
1111
|
}
|
|
@@ -1141,7 +1141,7 @@ function getTargetSharedOptions(options) {
|
|
|
1141
1141
|
});
|
|
1142
1142
|
const callback = function (prev, cur) {
|
|
1143
1143
|
return (
|
|
1144
|
-
// TODO: consider multiple
|
|
1144
|
+
// TODO: consider multiple treeShaking shared scenes
|
|
1145
1145
|
!isLoaded(shareVersionMap[prev]) && versionLt(prev, cur));
|
|
1146
1146
|
};
|
|
1147
1147
|
const maxVersion = findVersion(shareVersionMap, callback);
|
|
@@ -1176,9 +1176,9 @@ const addUseIn = (shared, from) => {
|
|
|
1176
1176
|
}
|
|
1177
1177
|
addUniqueItem(shared.useIn, from);
|
|
1178
1178
|
};
|
|
1179
|
-
function directShare(shared,
|
|
1180
|
-
if (
|
|
1181
|
-
return shared.
|
|
1179
|
+
function directShare(shared, useTreesShaking) {
|
|
1180
|
+
if (useTreesShaking && shared.treeShaking) {
|
|
1181
|
+
return shared.treeShaking;
|
|
1182
1182
|
}
|
|
1183
1183
|
return shared;
|
|
1184
1184
|
}
|
|
@@ -2597,9 +2597,9 @@ class SharedHandler {
|
|
|
2597
2597
|
const { shareInfo: shareOptionsRes } = loadShareRes;
|
|
2598
2598
|
// Assert that shareInfoRes exists, if not, throw an error
|
|
2599
2599
|
assert(shareOptionsRes, `Cannot find ${pkgName} Share in the ${host.options.name}. Please ensure that the ${pkgName} Share parameters have been injected`);
|
|
2600
|
-
const { shared: registeredShared,
|
|
2600
|
+
const { shared: registeredShared, useTreesShaking } = getRegisteredShare(this.shareScopeMap, pkgName, shareOptionsRes, this.hooks.lifecycle.resolveShare) || {};
|
|
2601
2601
|
if (registeredShared) {
|
|
2602
|
-
const targetShared = directShare(registeredShared,
|
|
2602
|
+
const targetShared = directShare(registeredShared, useTreesShaking);
|
|
2603
2603
|
if (targetShared.lib) {
|
|
2604
2604
|
addUseIn(targetShared, host.options.name);
|
|
2605
2605
|
return targetShared.lib;
|
|
@@ -2629,7 +2629,9 @@ class SharedHandler {
|
|
|
2629
2629
|
from: host.options.name,
|
|
2630
2630
|
lib: null,
|
|
2631
2631
|
loading,
|
|
2632
|
-
|
|
2632
|
+
treeShaking: useTreesShaking
|
|
2633
|
+
? targetShared
|
|
2634
|
+
: undefined,
|
|
2633
2635
|
});
|
|
2634
2636
|
return loading;
|
|
2635
2637
|
}
|
|
@@ -2638,16 +2640,16 @@ class SharedHandler {
|
|
|
2638
2640
|
if (extraOptions?.customShareInfo) {
|
|
2639
2641
|
return false;
|
|
2640
2642
|
}
|
|
2641
|
-
const
|
|
2642
|
-
const targetShared = directShare(shareOptionsRes,
|
|
2643
|
+
const _useTreeShaking = shouldUseTreeShaking(shareOptionsRes.treeShaking);
|
|
2644
|
+
const targetShared = directShare(shareOptionsRes, _useTreeShaking);
|
|
2643
2645
|
const asyncLoadProcess = async () => {
|
|
2644
2646
|
const factory = await targetShared.get();
|
|
2645
2647
|
targetShared.lib = factory;
|
|
2646
2648
|
targetShared.loaded = true;
|
|
2647
2649
|
addUseIn(targetShared, host.options.name);
|
|
2648
|
-
const { shared: gShared,
|
|
2650
|
+
const { shared: gShared, useTreesShaking: gUseTreeShaking } = getRegisteredShare(this.shareScopeMap, pkgName, shareOptionsRes, this.hooks.lifecycle.resolveShare) || {};
|
|
2649
2651
|
if (gShared) {
|
|
2650
|
-
const targetGShared = directShare(gShared,
|
|
2652
|
+
const targetGShared = directShare(gShared, gUseTreeShaking);
|
|
2651
2653
|
targetGShared.lib = factory;
|
|
2652
2654
|
targetGShared.loaded = true;
|
|
2653
2655
|
gShared.from = shareOptionsRes.from;
|
|
@@ -2662,7 +2664,9 @@ class SharedHandler {
|
|
|
2662
2664
|
from: host.options.name,
|
|
2663
2665
|
lib: null,
|
|
2664
2666
|
loading,
|
|
2665
|
-
|
|
2667
|
+
treeShaking: _useTreeShaking
|
|
2668
|
+
? targetShared
|
|
2669
|
+
: undefined,
|
|
2666
2670
|
});
|
|
2667
2671
|
return loading;
|
|
2668
2672
|
}
|
|
@@ -2782,7 +2786,7 @@ class SharedHandler {
|
|
|
2782
2786
|
this.initializeSharing(shareScope, { strategy: shareOptions.strategy });
|
|
2783
2787
|
});
|
|
2784
2788
|
}
|
|
2785
|
-
const { shared: registeredShared,
|
|
2789
|
+
const { shared: registeredShared, useTreesShaking } = getRegisteredShare(this.shareScopeMap, pkgName, shareOptions, this.hooks.lifecycle.resolveShare) || {};
|
|
2786
2790
|
if (registeredShared) {
|
|
2787
2791
|
if (typeof registeredShared.lib === 'function') {
|
|
2788
2792
|
addUseIn(registeredShared, host.options.name);
|
|
@@ -2841,39 +2845,6 @@ class SharedHandler {
|
|
|
2841
2845
|
}
|
|
2842
2846
|
initShareScopeMap(scopeName, shareScope, extraOptions = {}) {
|
|
2843
2847
|
const { host } = this;
|
|
2844
|
-
// const existedShareScope = this.shareScopeMap[scopeName];
|
|
2845
|
-
// if (existedShareScope) {
|
|
2846
|
-
// Object.entries(shareScope).forEach(([pkgName, newVersions]) => {
|
|
2847
|
-
// const existedShareMap = existedShareScope[pkgName];
|
|
2848
|
-
// if (!existedShareMap) {
|
|
2849
|
-
// return;
|
|
2850
|
-
// }
|
|
2851
|
-
// Object.entries(existedShareMap).forEach(([version, existedShared]) => {
|
|
2852
|
-
// if (!shareScope[pkgName][version]) {
|
|
2853
|
-
// shareScope[pkgName][version] = existedShared;
|
|
2854
|
-
// }
|
|
2855
|
-
// // const newShared = newVersions[version];
|
|
2856
|
-
// // if (
|
|
2857
|
-
// // newShared &&
|
|
2858
|
-
// // newShared.treeshakeStatus === TreeshakeStatus.UNKNOWN &&
|
|
2859
|
-
// // newShared.usedExports &&
|
|
2860
|
-
// // existedShared.usedExports &&
|
|
2861
|
-
// // existedShared.usedExports.some(
|
|
2862
|
-
// // (exportName) => !newShared.usedExports?.includes(exportName),
|
|
2863
|
-
// // )
|
|
2864
|
-
// // ) {
|
|
2865
|
-
// // newShared.treeshakeStatus = TreeshakeStatus.NO_USE;
|
|
2866
|
-
// // newShared._noMatchedUsedExports =
|
|
2867
|
-
// // existedShared._noMatchedUsedExports || [];
|
|
2868
|
-
// // const item: NoMatchedUsedExportsItem = [existedShared.from];
|
|
2869
|
-
// // if (isDebugMode() && existedShared.usedExports) {
|
|
2870
|
-
// // item.push(existedShared.usedExports);
|
|
2871
|
-
// // }
|
|
2872
|
-
// // newShared._noMatchedUsedExports.push(item);
|
|
2873
|
-
// // }
|
|
2874
|
-
// });
|
|
2875
|
-
// });
|
|
2876
|
-
// }
|
|
2877
2848
|
this.shareScopeMap[scopeName] = shareScope;
|
|
2878
2849
|
this.hooks.lifecycle.initContainerShareScopeMap.emit({
|
|
2879
2850
|
shareScope,
|
|
@@ -2883,7 +2854,7 @@ class SharedHandler {
|
|
|
2883
2854
|
hostShareScopeMap: extraOptions.hostShareScopeMap,
|
|
2884
2855
|
});
|
|
2885
2856
|
}
|
|
2886
|
-
setShared({ pkgName, shared, from, lib, loading, loaded, get,
|
|
2857
|
+
setShared({ pkgName, shared, from, lib, loading, loaded, get, treeShaking, }) {
|
|
2887
2858
|
const { version, scope = 'default', ...shareInfo } = shared;
|
|
2888
2859
|
const scopes = Array.isArray(scope) ? scope : [scope];
|
|
2889
2860
|
const mergeAttrs = (shared) => {
|
|
@@ -2892,7 +2863,7 @@ class SharedHandler {
|
|
|
2892
2863
|
s[key] = val;
|
|
2893
2864
|
}
|
|
2894
2865
|
};
|
|
2895
|
-
const targetShared = (
|
|
2866
|
+
const targetShared = (treeShaking ? shared.treeShaking : shared);
|
|
2896
2867
|
merge(targetShared, 'loaded', loaded);
|
|
2897
2868
|
merge(targetShared, 'loading', loading);
|
|
2898
2869
|
merge(targetShared, 'get', get);
|
|
@@ -3290,7 +3261,7 @@ class ModuleFederation {
|
|
|
3290
3261
|
// maybe will change, temporarily for internal use only
|
|
3291
3262
|
initContainer: new AsyncWaterfallHook('initContainer'),
|
|
3292
3263
|
});
|
|
3293
|
-
this.version = "0.0.0-feat-shared-treeshake-poc-
|
|
3264
|
+
this.version = "0.0.0-feat-shared-treeshake-poc-20260112031921";
|
|
3294
3265
|
this.moduleCache = new Map();
|
|
3295
3266
|
this.loaderHook = new PluginSystem({
|
|
3296
3267
|
// FIXME: may not be suitable , not open to the public yet
|