webpack 5.99.9 → 5.100.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/bin/webpack.js +8 -2
- package/hot/log.js +15 -15
- package/hot/poll.js +1 -0
- package/lib/APIPlugin.js +3 -3
- package/lib/AbstractMethodError.js +1 -0
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +1 -1
- package/lib/CaseSensitiveModulesWarning.js +4 -4
- package/lib/Chunk.js +6 -6
- package/lib/ChunkGraph.js +37 -31
- package/lib/ChunkGroup.js +4 -4
- package/lib/ChunkTemplate.js +1 -1
- package/lib/CleanPlugin.js +94 -17
- package/lib/CodeGenerationResults.js +1 -1
- package/lib/CompatibilityPlugin.js +5 -2
- package/lib/Compilation.js +67 -45
- package/lib/Compiler.js +46 -16
- package/lib/ConcatenationScope.js +15 -6
- package/lib/ConstPlugin.js +5 -3
- package/lib/ContextModule.js +16 -12
- package/lib/ContextModuleFactory.js +4 -3
- package/lib/ContextReplacementPlugin.js +4 -2
- package/lib/CssModule.js +2 -2
- package/lib/DefinePlugin.js +111 -3
- package/lib/DelegatedModuleFactoryPlugin.js +18 -18
- package/lib/Dependency.js +6 -1
- package/lib/DependencyTemplate.js +1 -0
- package/lib/DllEntryPlugin.js +3 -1
- package/lib/DllPlugin.js +4 -3
- package/lib/DllReferencePlugin.js +2 -2
- package/lib/DynamicEntryPlugin.js +1 -1
- package/lib/EntryOptionPlugin.js +5 -0
- package/lib/ErrorHelpers.js +4 -4
- package/lib/EvalDevToolModulePlugin.js +3 -3
- package/lib/EvalSourceMapDevToolPlugin.js +7 -7
- package/lib/ExportsInfo.js +48 -39
- package/lib/ExternalModule.js +15 -11
- package/lib/ExternalModuleFactoryPlugin.js +5 -2
- package/lib/FileSystemInfo.js +51 -36
- package/lib/FlagDependencyExportsPlugin.js +14 -7
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +14 -1
- package/lib/HookWebpackError.js +1 -0
- package/lib/HotModuleReplacementPlugin.js +77 -50
- package/lib/IgnorePlugin.js +1 -1
- package/lib/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/JavascriptMetaInfoPlugin.js +0 -1
- package/lib/LibManifestPlugin.js +4 -2
- package/lib/LoaderOptionsPlugin.js +6 -4
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +21 -6
- package/lib/ModuleFactory.js +1 -0
- package/lib/ModuleGraph.js +24 -2
- package/lib/ModuleGraphConnection.js +5 -5
- package/lib/ModuleInfoHeaderPlugin.js +2 -1
- package/lib/ModuleParseError.js +1 -0
- package/lib/ModuleSourceTypesConstants.js +12 -12
- package/lib/ModuleTemplate.js +1 -1
- package/lib/ModuleTypeConstants.js +21 -21
- package/lib/MultiCompiler.js +6 -6
- package/lib/NormalModule.js +31 -44
- package/lib/NormalModuleFactory.js +29 -19
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptimizationStages.js +1 -1
- package/lib/Parser.js +1 -0
- package/lib/ProgressPlugin.js +12 -5
- package/lib/ProvidePlugin.js +5 -1
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RuntimeGlobals.js +175 -155
- package/lib/RuntimeModule.js +1 -0
- package/lib/RuntimePlugin.js +33 -7
- package/lib/RuntimeTemplate.js +111 -11
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +15 -25
- package/lib/SourceMapDevToolPlugin.js +19 -17
- package/lib/Template.js +2 -2
- package/lib/TemplatedPathPlugin.js +1 -1
- package/lib/WarnDeprecatedOptionPlugin.js +7 -8
- package/lib/WatchIgnorePlugin.js +4 -3
- package/lib/WebpackIsIncludedPlugin.js +2 -1
- package/lib/WebpackOptionsApply.js +115 -27
- package/lib/asset/AssetGenerator.js +15 -11
- package/lib/asset/AssetModulesPlugin.js +19 -17
- package/lib/asset/AssetSourceGenerator.js +4 -4
- package/lib/asset/RawDataUrlModule.js +4 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +1 -1
- package/lib/buildChunkGraph.js +6 -3
- package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
- package/lib/cache/IdleFileCachePlugin.js +7 -4
- package/lib/cache/MemoryCachePlugin.js +1 -0
- package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
- package/lib/cache/PackFileCacheStrategy.js +26 -20
- package/lib/cache/ResolverCachePlugin.js +16 -8
- package/lib/cli.js +15 -10
- package/lib/config/browserslistTargetHandler.js +3 -3
- package/lib/config/defaults.js +25 -17
- package/lib/config/normalization.js +2 -1
- package/lib/config/target.js +6 -5
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackModule.js +2 -1
- package/lib/container/HoistContainerReferencesPlugin.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -2
- package/lib/container/RemoteModule.js +1 -1
- package/lib/css/CssGenerator.js +9 -6
- package/lib/css/CssModulesPlugin.js +44 -31
- package/lib/css/CssParser.js +6 -4
- package/lib/css/walkCssTokens.js +33 -37
- package/lib/debug/ProfilingPlugin.js +6 -6
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +8 -8
- package/lib/dependencies/AMDPlugin.js +12 -8
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -26
- package/lib/dependencies/CachedConstDependency.js +1 -5
- package/lib/dependencies/CommonJsExportRequireDependency.js +6 -4
- package/lib/dependencies/CommonJsExportsParserPlugin.js +22 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -114
- package/lib/dependencies/CommonJsPlugin.js +15 -16
- package/lib/dependencies/ContextDependencyHelpers.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +1 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/DynamicExports.js +9 -9
- package/lib/dependencies/ExportsInfoDependency.js +1 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +122 -101
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +95 -19
- package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
- package/lib/dependencies/HarmonyImportDependency.js +11 -5
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +238 -162
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +20 -9
- package/lib/dependencies/HarmonyModulesPlugin.js +23 -12
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaPlugin.js +2 -2
- package/lib/dependencies/ImportParserPlugin.js +40 -9
- package/lib/dependencies/ImportPlugin.js +3 -1
- package/lib/dependencies/LoaderPlugin.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +3 -1
- package/lib/dependencies/RequireEnsurePlugin.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
- package/lib/dependencies/RequireIncludePlugin.js +1 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLContextDependency.js +65 -0
- package/lib/dependencies/URLPlugin.js +17 -157
- package/lib/dependencies/WorkerPlugin.js +23 -10
- package/lib/dependencies/processExportInfo.js +2 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +269 -185
- package/lib/esm/ModuleChunkLoadingPlugin.js +39 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +70 -3
- package/lib/hmr/HotModuleReplacement.runtime.js +0 -1
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
- package/lib/hmr/LazyCompilationPlugin.js +4 -2
- package/lib/hmr/lazyCompilationBackend.js +4 -2
- package/lib/ids/ChunkModuleIdRangePlugin.js +6 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +30 -35
- package/lib/ids/DeterministicModuleIdsPlugin.js +4 -3
- package/lib/ids/HashedModuleIdsPlugin.js +5 -4
- package/lib/ids/IdHelpers.js +21 -17
- package/lib/ids/NamedChunkIdsPlugin.js +5 -5
- package/lib/ids/NamedModuleIdsPlugin.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +3 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +1 -1
- package/lib/index.js +13 -3
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +113 -119
- package/lib/javascript/BasicEvaluatedExpression.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +121 -136
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -3
- package/lib/javascript/JavascriptGenerator.js +14 -2
- package/lib/javascript/JavascriptModulesPlugin.js +68 -27
- package/lib/javascript/JavascriptParser.js +117 -76
- package/lib/javascript/JavascriptParserHelpers.js +41 -41
- package/lib/javascript/StartupHelpers.js +17 -17
- package/lib/json/JsonGenerator.js +4 -2
- package/lib/json/JsonModulesPlugin.js +2 -2
- package/lib/json/JsonParser.js +1 -1
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AssignLibraryPlugin.js +21 -6
- package/lib/library/EnableLibraryPlugin.js +23 -3
- package/lib/library/UmdLibraryPlugin.js +15 -6
- package/lib/logging/createConsoleLogger.js +3 -3
- package/lib/logging/runtime.js +9 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/RequireChunkLoadingRuntimeModule.js +4 -22
- package/lib/node/nodeConsole.js +4 -2
- package/lib/optimize/AggressiveMergingPlugin.js +45 -46
- package/lib/optimize/AggressiveSplittingPlugin.js +13 -12
- package/lib/optimize/ConcatenatedModule.js +227 -57
- package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -1
- package/lib/optimize/InnerGraph.js +115 -112
- package/lib/optimize/InnerGraphPlugin.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +4 -2
- package/lib/optimize/MangleExportsPlugin.js +4 -3
- package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
- package/lib/optimize/MinChunkSizePlugin.js +6 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +31 -22
- package/lib/optimize/RealContentHashPlugin.js +26 -20
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +1 -0
- package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
- package/lib/optimize/SplitChunksPlugin.js +16 -13
- package/lib/rules/BasicEffectRulePlugin.js +4 -2
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -1
- package/lib/rules/RuleSetCompiler.js +6 -3
- package/lib/rules/UseEffectRulePlugin.js +3 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +64 -9
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +214 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +8 -7
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +27 -19
- package/lib/schemes/VirtualUrlPlugin.js +222 -0
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +5 -4
- package/lib/serialization/FileMiddleware.js +7 -4
- package/lib/serialization/ObjectMiddleware.js +14 -8
- package/lib/serialization/Serializer.js +5 -3
- package/lib/serialization/SerializerMiddleware.js +2 -0
- package/lib/sharing/ConsumeSharedModule.js +1 -1
- package/lib/sharing/ConsumeSharedPlugin.js +3 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +2 -2
- package/lib/sharing/ProvideSharedModule.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +3 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +3 -5
- package/lib/sharing/utils.js +34 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +49 -46
- package/lib/stats/DefaultStatsPresetPlugin.js +4 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +15 -9
- package/lib/stats/StatsFactory.js +4 -2
- package/lib/stats/StatsPrinter.js +3 -2
- package/lib/url/URLParserPlugin.js +266 -0
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +1 -1
- package/lib/util/Hash.js +2 -0
- package/lib/util/IterableHelpers.js +1 -1
- package/lib/util/LazyBucketSortedSet.js +2 -1
- package/lib/util/LazySet.js +11 -6
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/SetHelpers.js +3 -3
- package/lib/util/SortableSet.js +2 -2
- package/lib/util/StackedCacheMap.js +3 -1
- package/lib/util/StackedMap.js +2 -2
- package/lib/util/StringXor.js +1 -0
- package/lib/util/TupleSet.js +1 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -1
- package/lib/util/cleverMerge.js +12 -8
- package/lib/util/comparators.js +154 -127
- package/lib/util/compileBooleanMatcher.js +8 -3
- package/lib/util/concatenate.js +8 -7
- package/lib/util/conventions.js +72 -73
- package/lib/util/create-schema-validation.js +2 -1
- package/lib/util/createHash.js +10 -4
- package/lib/util/deprecation.js +69 -66
- package/lib/util/deterministicGrouping.js +4 -2
- package/lib/util/extractUrlAndGlobal.js +1 -1
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +30 -23
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +4 -2
- package/lib/util/identifier.js +13 -12
- package/lib/util/internalSerializables.js +2 -0
- package/lib/util/magicComment.js +5 -5
- package/lib/util/processAsyncTree.js +1 -1
- package/lib/util/propertyAccess.js +1 -1
- package/lib/util/propertyName.js +1 -1
- package/lib/util/registerExternalSerializer.js +1 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +29 -21
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +3 -0
- package/lib/util/source.js +3 -2
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +6 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +4 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +46 -49
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +2 -3
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +3 -2
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +4 -22
- package/lib/webpack.js +4 -5
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +1 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -24
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
- package/package.json +119 -113
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
- package/types.d.ts +1230 -360
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
const { constants } = require("buffer");
|
|
8
8
|
const { pipeline } = require("stream");
|
|
9
9
|
const {
|
|
10
|
+
constants: zConstants,
|
|
11
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
10
12
|
createBrotliCompress,
|
|
13
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
11
14
|
createBrotliDecompress,
|
|
12
|
-
createGzip,
|
|
13
15
|
createGunzip,
|
|
14
|
-
|
|
16
|
+
createGzip
|
|
15
17
|
} = require("zlib");
|
|
16
18
|
const { DEFAULTS } = require("../config/defaults");
|
|
17
19
|
const createHash = require("../util/createHash");
|
|
@@ -117,8 +119,9 @@ const serialize = async (
|
|
|
117
119
|
let lastBuffers;
|
|
118
120
|
for (const item of await data) {
|
|
119
121
|
if (typeof item === "function") {
|
|
120
|
-
if (!SerializerMiddleware.isLazy(item))
|
|
122
|
+
if (!SerializerMiddleware.isLazy(item)) {
|
|
121
123
|
throw new Error("Unexpected function");
|
|
124
|
+
}
|
|
122
125
|
if (!SerializerMiddleware.isLazy(item, middleware)) {
|
|
123
126
|
throw new Error(
|
|
124
127
|
"Unexpected lazy value with non-this target (can't pass through lazy values)"
|
|
@@ -551,7 +554,7 @@ class FileMiddleware extends SerializerMiddleware {
|
|
|
551
554
|
* @param {(value?: undefined) => void} resolve resolve
|
|
552
555
|
*/
|
|
553
556
|
resolve => {
|
|
554
|
-
this.fs.rename(filename, `${filename}.old`,
|
|
557
|
+
this.fs.rename(filename, `${filename}.old`, _err => {
|
|
555
558
|
resolve();
|
|
556
559
|
});
|
|
557
560
|
}
|
|
@@ -175,7 +175,7 @@ if (exports.constructor !== Object) {
|
|
|
175
175
|
// eslint-disable-next-line n/exports-style
|
|
176
176
|
const Obj = /** @type {ObjectConstructor} */ (exports.constructor);
|
|
177
177
|
const Fn = /** @type {FunctionConstructor} */ (Obj.constructor);
|
|
178
|
-
for (const [type, config] of
|
|
178
|
+
for (const [type, config] of jsTypes) {
|
|
179
179
|
if (type) {
|
|
180
180
|
const Type = new Fn(`return ${type.name};`)();
|
|
181
181
|
jsTypes.set(Type, config);
|
|
@@ -416,7 +416,7 @@ class ObjectMiddleware extends SerializerMiddleware {
|
|
|
416
416
|
* @returns {string} stack
|
|
417
417
|
*/
|
|
418
418
|
const stackToString = item => {
|
|
419
|
-
const arr =
|
|
419
|
+
const arr = [...cycleStack];
|
|
420
420
|
arr.push(item);
|
|
421
421
|
return arr
|
|
422
422
|
.map(item => {
|
|
@@ -439,11 +439,13 @@ class ObjectMiddleware extends SerializerMiddleware {
|
|
|
439
439
|
}
|
|
440
440
|
if (typeof item === "object" && item !== null) {
|
|
441
441
|
if (item.constructor) {
|
|
442
|
-
if (item.constructor === Object)
|
|
442
|
+
if (item.constructor === Object) {
|
|
443
443
|
return `Object { ${Object.keys(item).join(", ")} }`;
|
|
444
|
+
}
|
|
444
445
|
if (item.constructor === Map) return `Map { ${item.size} items }`;
|
|
445
|
-
if (item.constructor === Array)
|
|
446
|
+
if (item.constructor === Array) {
|
|
446
447
|
return `Array { ${item.length} items }`;
|
|
448
|
+
}
|
|
447
449
|
if (item.constructor === Set) return `Set { ${item.size} items }`;
|
|
448
450
|
if (item.constructor === RegExp) return item.toString();
|
|
449
451
|
return `${item.constructor.name}`;
|
|
@@ -472,8 +474,9 @@ class ObjectMiddleware extends SerializerMiddleware {
|
|
|
472
474
|
process(value);
|
|
473
475
|
} catch (err) {
|
|
474
476
|
if (err !== NOT_SERIALIZABLE) {
|
|
475
|
-
if (hasDebugInfoAttached === undefined)
|
|
477
|
+
if (hasDebugInfoAttached === undefined) {
|
|
476
478
|
hasDebugInfoAttached = new WeakSet();
|
|
479
|
+
}
|
|
477
480
|
if (!hasDebugInfoAttached.has(/** @type {Error} */ (err))) {
|
|
478
481
|
/** @type {Error} */
|
|
479
482
|
(err).message += `\nwhile serializing ${stackToString(value)}`;
|
|
@@ -596,8 +599,9 @@ class ObjectMiddleware extends SerializerMiddleware {
|
|
|
596
599
|
|
|
597
600
|
result.push(item);
|
|
598
601
|
} else if (typeof item === "function") {
|
|
599
|
-
if (!SerializerMiddleware.isLazy(item))
|
|
602
|
+
if (!SerializerMiddleware.isLazy(item)) {
|
|
600
603
|
throw new Error(`Unexpected function ${item}`);
|
|
604
|
+
}
|
|
601
605
|
|
|
602
606
|
/** @type {SerializedType | undefined} */
|
|
603
607
|
const serializedData =
|
|
@@ -658,14 +662,16 @@ class ObjectMiddleware extends SerializerMiddleware {
|
|
|
658
662
|
deserialize(data, context) {
|
|
659
663
|
let currentDataPos = 0;
|
|
660
664
|
const read = () => {
|
|
661
|
-
if (currentDataPos >= data.length)
|
|
665
|
+
if (currentDataPos >= data.length) {
|
|
662
666
|
throw new Error("Unexpected end of stream");
|
|
667
|
+
}
|
|
663
668
|
|
|
664
669
|
return data[currentDataPos++];
|
|
665
670
|
};
|
|
666
671
|
|
|
667
|
-
if (read() !== CURRENT_VERSION)
|
|
672
|
+
if (read() !== CURRENT_VERSION) {
|
|
668
673
|
throw new Error("Version mismatch, serializer changed");
|
|
674
|
+
}
|
|
669
675
|
|
|
670
676
|
let currentPos = 0;
|
|
671
677
|
/** @type {ReferenceableItem[]} */
|
|
@@ -20,8 +20,8 @@ class Serializer {
|
|
|
20
20
|
* @param {Context=} context context
|
|
21
21
|
*/
|
|
22
22
|
constructor(middlewares, context) {
|
|
23
|
-
this.serializeMiddlewares = middlewares
|
|
24
|
-
this.deserializeMiddlewares = middlewares.
|
|
23
|
+
this.serializeMiddlewares = [...middlewares];
|
|
24
|
+
this.deserializeMiddlewares = [...middlewares].reverse();
|
|
25
25
|
this.context = context;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -49,7 +49,9 @@ class Serializer {
|
|
|
49
49
|
} catch (err) {
|
|
50
50
|
current = Promise.reject(err);
|
|
51
51
|
}
|
|
52
|
-
} else
|
|
52
|
+
} else {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
53
55
|
}
|
|
54
56
|
return /** @type {Promise<SerializedValue>} */ (current);
|
|
55
57
|
}
|
|
@@ -35,6 +35,7 @@ class SerializerMiddleware {
|
|
|
35
35
|
*/
|
|
36
36
|
serialize(data, context) {
|
|
37
37
|
const AbstractMethodError = require("../AbstractMethodError");
|
|
38
|
+
|
|
38
39
|
throw new AbstractMethodError();
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -47,6 +48,7 @@ class SerializerMiddleware {
|
|
|
47
48
|
*/
|
|
48
49
|
deserialize(data, context) {
|
|
49
50
|
const AbstractMethodError = require("../AbstractMethodError");
|
|
51
|
+
|
|
50
52
|
throw new AbstractMethodError();
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -177,7 +177,7 @@ class ConsumeSharedModule extends Module {
|
|
|
177
177
|
* @param {CodeGenerationContext} context context for code generation
|
|
178
178
|
* @returns {CodeGenerationResult} result
|
|
179
179
|
*/
|
|
180
|
-
codeGeneration({ chunkGraph,
|
|
180
|
+
codeGeneration({ chunkGraph, runtimeTemplate }) {
|
|
181
181
|
const runtimeRequirements = new Set([RuntimeGlobals.shareScopeMap]);
|
|
182
182
|
const {
|
|
183
183
|
shareScope,
|
|
@@ -18,9 +18,9 @@ const ConsumeSharedRuntimeModule = require("./ConsumeSharedRuntimeModule");
|
|
|
18
18
|
const ProvideForSharedDependency = require("./ProvideForSharedDependency");
|
|
19
19
|
const { resolveMatchedConfigs } = require("./resolveMatchedConfigs");
|
|
20
20
|
const {
|
|
21
|
-
isRequiredVersion,
|
|
22
21
|
getDescriptionFile,
|
|
23
|
-
getRequiredVersionFromDescriptionFile
|
|
22
|
+
getRequiredVersionFromDescriptionFile,
|
|
23
|
+
isRequiredVersion
|
|
24
24
|
} = require("./utils");
|
|
25
25
|
|
|
26
26
|
/** @typedef {import("../../declarations/plugins/sharing/ConsumeSharedPlugin").ConsumeSharedPluginOptions} ConsumeSharedPluginOptions */
|
|
@@ -32,7 +32,7 @@ const {
|
|
|
32
32
|
/** @typedef {import("./utils").DescriptionFile} DescriptionFile */
|
|
33
33
|
|
|
34
34
|
const validate = createSchemaValidation(
|
|
35
|
-
require("../../schemas/plugins/sharing/ConsumeSharedPlugin.check
|
|
35
|
+
require("../../schemas/plugins/sharing/ConsumeSharedPlugin.check"),
|
|
36
36
|
() => require("../../schemas/plugins/sharing/ConsumeSharedPlugin.json"),
|
|
37
37
|
{
|
|
38
38
|
name: "Consume Shared Plugin",
|
|
@@ -10,9 +10,9 @@ const RuntimeModule = require("../RuntimeModule");
|
|
|
10
10
|
const Template = require("../Template");
|
|
11
11
|
const {
|
|
12
12
|
parseVersionRuntimeCode,
|
|
13
|
-
versionLtRuntimeCode,
|
|
14
13
|
rangeToStringRuntimeCode,
|
|
15
|
-
satisfyRuntimeCode
|
|
14
|
+
satisfyRuntimeCode,
|
|
15
|
+
versionLtRuntimeCode
|
|
16
16
|
} = require("../util/semver");
|
|
17
17
|
|
|
18
18
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
@@ -132,7 +132,7 @@ class ProvideSharedModule extends Module {
|
|
|
132
132
|
* @param {CodeGenerationContext} context context for code generation
|
|
133
133
|
* @returns {CodeGenerationResult} result
|
|
134
134
|
*/
|
|
135
|
-
codeGeneration({ runtimeTemplate,
|
|
135
|
+
codeGeneration({ runtimeTemplate, chunkGraph }) {
|
|
136
136
|
const runtimeRequirements = new Set([RuntimeGlobals.initializeSharing]);
|
|
137
137
|
const code = `register(${JSON.stringify(this._name)}, ${JSON.stringify(
|
|
138
138
|
this._version || "0"
|
|
@@ -18,7 +18,7 @@ const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
|
|
|
18
18
|
/** @typedef {import("../NormalModuleFactory").NormalModuleCreateData} NormalModuleCreateData */
|
|
19
19
|
|
|
20
20
|
const validate = createSchemaValidation(
|
|
21
|
-
require("../../schemas/plugins/sharing/ProvideSharedPlugin.check
|
|
21
|
+
require("../../schemas/plugins/sharing/ProvideSharedPlugin.check"),
|
|
22
22
|
() => require("../../schemas/plugins/sharing/ProvideSharedPlugin.json"),
|
|
23
23
|
{
|
|
24
24
|
name: "Provide Shared Plugin",
|
|
@@ -49,8 +49,9 @@ class ProvideSharedPlugin {
|
|
|
49
49
|
parseOptions(
|
|
50
50
|
options.provides,
|
|
51
51
|
item => {
|
|
52
|
-
if (Array.isArray(item))
|
|
52
|
+
if (Array.isArray(item)) {
|
|
53
53
|
throw new Error("Unexpected array of provides");
|
|
54
|
+
}
|
|
54
55
|
/** @type {ProvideOptions} */
|
|
55
56
|
const result = {
|
|
56
57
|
shareKey: item,
|
|
@@ -27,8 +27,9 @@ class SharePlugin {
|
|
|
27
27
|
const sharedOptions = parseOptions(
|
|
28
28
|
options.shared,
|
|
29
29
|
(item, key) => {
|
|
30
|
-
if (typeof item !== "string")
|
|
30
|
+
if (typeof item !== "string") {
|
|
31
31
|
throw new Error("Unexpected array in shared");
|
|
32
|
+
}
|
|
32
33
|
/** @type {SharedConfig} */
|
|
33
34
|
const config =
|
|
34
35
|
item === key || !isRequiredVersion(item)
|
|
@@ -121,17 +121,15 @@ class ShareRuntimeModule extends RuntimeModule {
|
|
|
121
121
|
])}`,
|
|
122
122
|
"var promises = [];",
|
|
123
123
|
"switch(name) {",
|
|
124
|
-
...
|
|
124
|
+
...[...initCodePerScope]
|
|
125
125
|
.sort(([a], [b]) => compareStrings(a, b))
|
|
126
126
|
.map(([name, stages]) =>
|
|
127
127
|
Template.indent([
|
|
128
128
|
`case ${JSON.stringify(name)}: {`,
|
|
129
129
|
Template.indent(
|
|
130
|
-
|
|
130
|
+
[...stages]
|
|
131
131
|
.sort(([a], [b]) => a - b)
|
|
132
|
-
.map(([, initCode]) =>
|
|
133
|
-
Template.asString(Array.from(initCode))
|
|
134
|
-
)
|
|
132
|
+
.map(([, initCode]) => Template.asString([...initCode]))
|
|
135
133
|
),
|
|
136
134
|
"}",
|
|
137
135
|
"break;"
|
package/lib/sharing/utils.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const {
|
|
8
|
+
const { dirname, join, readJson } = require("../util/fs");
|
|
9
9
|
|
|
10
10
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
11
11
|
/** @typedef {import("../util/fs").JsonObject} JsonObject */
|
|
@@ -292,34 +292,6 @@ function getGitUrlVersion(gitUrl) {
|
|
|
292
292
|
return getVersionFromHash(gitUrl);
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
/**
|
|
296
|
-
* @param {string} str maybe required version
|
|
297
|
-
* @returns {boolean} true, if it looks like a version
|
|
298
|
-
*/
|
|
299
|
-
function isRequiredVersion(str) {
|
|
300
|
-
return VERSION_PATTERN_REGEXP.test(str);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
module.exports.isRequiredVersion = isRequiredVersion;
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
|
|
307
|
-
* @param {string} versionDesc version to be normalized
|
|
308
|
-
* @returns {string} normalized version
|
|
309
|
-
*/
|
|
310
|
-
function normalizeVersion(versionDesc) {
|
|
311
|
-
versionDesc = (versionDesc && versionDesc.trim()) || "";
|
|
312
|
-
|
|
313
|
-
if (isRequiredVersion(versionDesc)) {
|
|
314
|
-
return versionDesc;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// add handle for URL Dependencies
|
|
318
|
-
return getGitUrlVersion(versionDesc.toLowerCase());
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
module.exports.normalizeVersion = normalizeVersion;
|
|
322
|
-
|
|
323
295
|
/** @typedef {{ data: JsonObject, path: string }} DescriptionFile */
|
|
324
296
|
|
|
325
297
|
/**
|
|
@@ -349,11 +321,9 @@ const getDescriptionFile = (
|
|
|
349
321
|
if (i >= descriptionFiles.length) {
|
|
350
322
|
const parentDirectory = dirname(fs, directory);
|
|
351
323
|
if (!parentDirectory || parentDirectory === directory) {
|
|
352
|
-
return callback(
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
Array.from(satisfiesDescriptionFileDataInternal.checkedFilePaths)
|
|
356
|
-
);
|
|
324
|
+
return callback(null, undefined, [
|
|
325
|
+
...satisfiesDescriptionFileDataInternal.checkedFilePaths
|
|
326
|
+
]);
|
|
357
327
|
}
|
|
358
328
|
return getDescriptionFile(
|
|
359
329
|
fs,
|
|
@@ -391,6 +361,7 @@ const getDescriptionFile = (
|
|
|
391
361
|
};
|
|
392
362
|
tryLoadCurrent();
|
|
393
363
|
};
|
|
364
|
+
|
|
394
365
|
module.exports.getDescriptionFile = getDescriptionFile;
|
|
395
366
|
|
|
396
367
|
/**
|
|
@@ -421,5 +392,34 @@ const getRequiredVersionFromDescriptionFile = (data, packageName) => {
|
|
|
421
392
|
}
|
|
422
393
|
}
|
|
423
394
|
};
|
|
395
|
+
|
|
424
396
|
module.exports.getRequiredVersionFromDescriptionFile =
|
|
425
397
|
getRequiredVersionFromDescriptionFile;
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* @param {string} str maybe required version
|
|
401
|
+
* @returns {boolean} true, if it looks like a version
|
|
402
|
+
*/
|
|
403
|
+
function isRequiredVersion(str) {
|
|
404
|
+
return VERSION_PATTERN_REGEXP.test(str);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
module.exports.isRequiredVersion = isRequiredVersion;
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
|
|
411
|
+
* @param {string} versionDesc version to be normalized
|
|
412
|
+
* @returns {string} normalized version
|
|
413
|
+
*/
|
|
414
|
+
function normalizeVersion(versionDesc) {
|
|
415
|
+
versionDesc = (versionDesc && versionDesc.trim()) || "";
|
|
416
|
+
|
|
417
|
+
if (isRequiredVersion(versionDesc)) {
|
|
418
|
+
return versionDesc;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// add handle for URL Dependencies
|
|
422
|
+
return getGitUrlVersion(versionDesc.toLowerCase());
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
module.exports.normalizeVersion = normalizeVersion;
|
|
@@ -14,13 +14,13 @@ const AggressiveSplittingPlugin = require("../optimize/AggressiveSplittingPlugin
|
|
|
14
14
|
const SizeLimitsPlugin = require("../performance/SizeLimitsPlugin");
|
|
15
15
|
const { countIterable } = require("../util/IterableHelpers");
|
|
16
16
|
const {
|
|
17
|
-
compareLocations,
|
|
18
17
|
compareChunksById,
|
|
19
|
-
compareNumbers,
|
|
20
18
|
compareIds,
|
|
21
|
-
|
|
19
|
+
compareLocations,
|
|
20
|
+
compareModulesByIdentifier,
|
|
21
|
+
compareNumbers,
|
|
22
22
|
compareSelect,
|
|
23
|
-
|
|
23
|
+
concatComparators
|
|
24
24
|
} = require("../util/comparators");
|
|
25
25
|
const { makePathsRelative, parseResource } = require("../util/identifier");
|
|
26
26
|
|
|
@@ -358,7 +358,7 @@ const uniqueArray = (items, selector) => {
|
|
|
358
358
|
set.add(i);
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
|
-
return
|
|
361
|
+
return [...set];
|
|
362
362
|
};
|
|
363
363
|
|
|
364
364
|
/**
|
|
@@ -495,7 +495,7 @@ const EXTRACT_ERROR = {
|
|
|
495
495
|
errorDetails: (
|
|
496
496
|
object,
|
|
497
497
|
error,
|
|
498
|
-
{ type, compilation, cachedGetErrors
|
|
498
|
+
{ type, compilation, cachedGetErrors },
|
|
499
499
|
{ errorDetails }
|
|
500
500
|
) => {
|
|
501
501
|
if (
|
|
@@ -582,6 +582,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
582
582
|
const { logging, loggingDebug, loggingTrace } = options;
|
|
583
583
|
if (logging || (loggingDebug && loggingDebug.length > 0)) {
|
|
584
584
|
const util = require("util");
|
|
585
|
+
|
|
585
586
|
object.logging = {};
|
|
586
587
|
let acceptedTypes;
|
|
587
588
|
let collapsedGroups = false;
|
|
@@ -654,8 +655,9 @@ const SIMPLE_EXTRACTORS = {
|
|
|
654
655
|
if (
|
|
655
656
|
type === LogType.groupCollapsed &&
|
|
656
657
|
(debugMode || collapsedGroups)
|
|
657
|
-
)
|
|
658
|
+
) {
|
|
658
659
|
type = LogType.group;
|
|
660
|
+
}
|
|
659
661
|
|
|
660
662
|
if (depthInCollapsedGroup === 0) {
|
|
661
663
|
processedLogEntries++;
|
|
@@ -821,15 +823,11 @@ const SIMPLE_EXTRACTORS = {
|
|
|
821
823
|
}
|
|
822
824
|
}
|
|
823
825
|
|
|
824
|
-
const groupedAssets = factory.create(
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
compilationFileToChunks,
|
|
830
|
-
compilationAuxiliaryFileToChunks
|
|
831
|
-
}
|
|
832
|
-
);
|
|
826
|
+
const groupedAssets = factory.create(`${type}.assets`, [...assets], {
|
|
827
|
+
...context,
|
|
828
|
+
compilationFileToChunks,
|
|
829
|
+
compilationAuxiliaryFileToChunks
|
|
830
|
+
});
|
|
833
831
|
const limited = spaceLimited(
|
|
834
832
|
groupedAssets,
|
|
835
833
|
/** @type {number} */ (options.assetsSpace)
|
|
@@ -841,13 +839,13 @@ const SIMPLE_EXTRACTORS = {
|
|
|
841
839
|
const { type } = context;
|
|
842
840
|
object.chunks = factory.create(
|
|
843
841
|
`${type}.chunks`,
|
|
844
|
-
|
|
842
|
+
[...compilation.chunks],
|
|
845
843
|
context
|
|
846
844
|
);
|
|
847
845
|
},
|
|
848
846
|
modules: (object, compilation, context, options, factory) => {
|
|
849
847
|
const { type } = context;
|
|
850
|
-
const array =
|
|
848
|
+
const array = [...compilation.modules];
|
|
851
849
|
const groupedModules = factory.create(`${type}.modules`, array, context);
|
|
852
850
|
const limited = spaceLimited(groupedModules, options.modulesSpace);
|
|
853
851
|
object.modules = limited.children;
|
|
@@ -980,9 +978,10 @@ const SIMPLE_EXTRACTORS = {
|
|
|
980
978
|
!warningsFilter &&
|
|
981
979
|
/** @type {KnownNormalizedStatsOptions["warningsFilter"]} */
|
|
982
980
|
(warningsFilter).length === 0
|
|
983
|
-
)
|
|
981
|
+
) {
|
|
984
982
|
// Type is wrong, because we don't need the real value for counting
|
|
985
983
|
return /** @type {EXPECTED_ANY[]} */ (cachedGetWarnings(c));
|
|
984
|
+
}
|
|
986
985
|
return factory
|
|
987
986
|
.create(`${type}${childType}.warnings`, cachedGetWarnings(c), context)
|
|
988
987
|
.filter(
|
|
@@ -1038,7 +1037,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1038
1037
|
_: (
|
|
1039
1038
|
object,
|
|
1040
1039
|
asset,
|
|
1041
|
-
{
|
|
1040
|
+
{ compilationFileToChunks, compilationAuxiliaryFileToChunks }
|
|
1042
1041
|
) => {
|
|
1043
1042
|
const chunks = compilationFileToChunks.get(asset.name) || [];
|
|
1044
1043
|
const auxiliaryChunks =
|
|
@@ -1050,7 +1049,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1050
1049
|
);
|
|
1051
1050
|
object.chunkIdHints = uniqueOrderedArray(
|
|
1052
1051
|
chunks,
|
|
1053
|
-
c =>
|
|
1052
|
+
c => [...c.idNameHints],
|
|
1054
1053
|
compareIds
|
|
1055
1054
|
);
|
|
1056
1055
|
object.auxiliaryChunkNames = uniqueOrderedArray(
|
|
@@ -1060,7 +1059,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1060
1059
|
);
|
|
1061
1060
|
object.auxiliaryChunkIdHints = uniqueOrderedArray(
|
|
1062
1061
|
auxiliaryChunks,
|
|
1063
|
-
c =>
|
|
1062
|
+
c => [...c.idNameHints],
|
|
1064
1063
|
compareIds
|
|
1065
1064
|
);
|
|
1066
1065
|
object.filteredRelated = asset.related ? asset.related.length : undefined;
|
|
@@ -1200,7 +1199,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1200
1199
|
}
|
|
1201
1200
|
}
|
|
1202
1201
|
}
|
|
1203
|
-
return
|
|
1202
|
+
return [...set];
|
|
1204
1203
|
})
|
|
1205
1204
|
: undefined
|
|
1206
1205
|
};
|
|
@@ -1330,7 +1329,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1330
1329
|
} = context;
|
|
1331
1330
|
const groupsReasons = factory.create(
|
|
1332
1331
|
`${type.slice(0, -8)}.reasons`,
|
|
1333
|
-
|
|
1332
|
+
[...moduleGraph.getIncomingConnections(module)],
|
|
1334
1333
|
context
|
|
1335
1334
|
);
|
|
1336
1335
|
const limited = spaceLimited(
|
|
@@ -1352,7 +1351,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1352
1351
|
} else if (typeof usedExports === "boolean") {
|
|
1353
1352
|
object.usedExports = usedExports;
|
|
1354
1353
|
} else {
|
|
1355
|
-
object.usedExports =
|
|
1354
|
+
object.usedExports = [...usedExports];
|
|
1356
1355
|
}
|
|
1357
1356
|
},
|
|
1358
1357
|
providedExports: (object, module, { compilation: { moduleGraph } }) => {
|
|
@@ -1506,15 +1505,15 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1506
1505
|
size: chunkGraph.getChunkModulesSize(chunk),
|
|
1507
1506
|
sizes: chunkGraph.getChunkModulesSizes(chunk),
|
|
1508
1507
|
names: chunk.name ? [chunk.name] : [],
|
|
1509
|
-
idHints:
|
|
1508
|
+
idHints: [...chunk.idNameHints],
|
|
1510
1509
|
runtime:
|
|
1511
1510
|
chunk.runtime === undefined
|
|
1512
1511
|
? undefined
|
|
1513
1512
|
: typeof chunk.runtime === "string"
|
|
1514
1513
|
? [makePathsRelative(chunk.runtime)]
|
|
1515
1514
|
: Array.from(chunk.runtime.sort(), makePathsRelative),
|
|
1516
|
-
files:
|
|
1517
|
-
auxiliaryFiles:
|
|
1515
|
+
files: [...chunk.files],
|
|
1516
|
+
auxiliaryFiles: [...chunk.auxiliaryFiles].sort(compareIds),
|
|
1518
1517
|
hash: /** @type {string} */ (chunk.renderedHash),
|
|
1519
1518
|
childrenByOrder: childIdByOrder
|
|
1520
1519
|
};
|
|
@@ -1523,7 +1522,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1523
1522
|
ids: (object, chunk) => {
|
|
1524
1523
|
object.id = /** @type {ChunkId} */ (chunk.id);
|
|
1525
1524
|
},
|
|
1526
|
-
chunkRelations: (object, chunk,
|
|
1525
|
+
chunkRelations: (object, chunk, _context) => {
|
|
1527
1526
|
/** @type {Set<string|number>} */
|
|
1528
1527
|
const parents = new Set();
|
|
1529
1528
|
/** @type {Set<string|number>} */
|
|
@@ -1543,13 +1542,14 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1543
1542
|
}
|
|
1544
1543
|
}
|
|
1545
1544
|
for (const sibling of chunkGroup.chunks) {
|
|
1546
|
-
if (sibling !== chunk)
|
|
1545
|
+
if (sibling !== chunk) {
|
|
1547
1546
|
siblings.add(/** @type {ChunkId} */ (sibling.id));
|
|
1547
|
+
}
|
|
1548
1548
|
}
|
|
1549
1549
|
}
|
|
1550
|
-
object.siblings =
|
|
1551
|
-
object.parents =
|
|
1552
|
-
object.children =
|
|
1550
|
+
object.siblings = [...siblings].sort(compareIds);
|
|
1551
|
+
object.parents = [...parents].sort(compareIds);
|
|
1552
|
+
object.children = [...children].sort(compareIds);
|
|
1553
1553
|
},
|
|
1554
1554
|
chunkModules: (object, chunk, context, options, factory) => {
|
|
1555
1555
|
const {
|
|
@@ -1624,15 +1624,13 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1624
1624
|
object.originName = origin.readableIdentifier(requestShortener);
|
|
1625
1625
|
object.moduleIdentifier = module.identifier();
|
|
1626
1626
|
object.moduleName = module.readableIdentifier(requestShortener);
|
|
1627
|
-
const dependencies =
|
|
1628
|
-
moduleGraph.getIncomingConnections(module)
|
|
1629
|
-
)
|
|
1627
|
+
const dependencies = [...moduleGraph.getIncomingConnections(module)]
|
|
1630
1628
|
.filter(c => c.resolvedOriginModule === origin && c.dependency)
|
|
1631
1629
|
.map(c => c.dependency);
|
|
1632
1630
|
object.dependencies = factory.create(
|
|
1633
1631
|
`${type}.dependencies`,
|
|
1634
1632
|
/** @type {Dependency[]} */
|
|
1635
|
-
(
|
|
1633
|
+
([...new Set(dependencies)]),
|
|
1636
1634
|
context
|
|
1637
1635
|
);
|
|
1638
1636
|
},
|
|
@@ -1705,7 +1703,7 @@ const SORTERS = {
|
|
|
1705
1703
|
"chunk.modules": MODULES_SORTER,
|
|
1706
1704
|
"module.modules": MODULES_SORTER,
|
|
1707
1705
|
"module.reasons": {
|
|
1708
|
-
_: (comparators,
|
|
1706
|
+
_: (comparators, _context) => {
|
|
1709
1707
|
comparators.push(
|
|
1710
1708
|
compareSelect(x => x.originModule, compareModulesByIdentifier)
|
|
1711
1709
|
);
|
|
@@ -1868,7 +1866,7 @@ const spaceLimited = (
|
|
|
1868
1866
|
if (groupsSize + items.length <= max) {
|
|
1869
1867
|
// The total size in the current state fits into the max
|
|
1870
1868
|
// keep all
|
|
1871
|
-
children = groups.length > 0 ? groups
|
|
1869
|
+
children = groups.length > 0 ? [...groups, ...items] : items;
|
|
1872
1870
|
} else if (groups.length === 0) {
|
|
1873
1871
|
// slice items to max
|
|
1874
1872
|
// inner space marks that lines for filteredChildren already reserved
|
|
@@ -1931,7 +1929,7 @@ const spaceLimited = (
|
|
|
1931
1929
|
}
|
|
1932
1930
|
}
|
|
1933
1931
|
}
|
|
1934
|
-
children = groups
|
|
1932
|
+
children = [...groups, ...items];
|
|
1935
1933
|
} else if (limit === max) {
|
|
1936
1934
|
// If we have only enough space to show one line per group and one line for the filtered items
|
|
1937
1935
|
// collapse all groups and items
|
|
@@ -1956,7 +1954,7 @@ const errorsSpaceLimit = (errors, max) => {
|
|
|
1956
1954
|
let filtered = 0;
|
|
1957
1955
|
// Can not fit into limit
|
|
1958
1956
|
// print only messages
|
|
1959
|
-
if (errors.length + 1 >= max)
|
|
1957
|
+
if (errors.length + 1 >= max) {
|
|
1960
1958
|
return [
|
|
1961
1959
|
errors.map(error => {
|
|
1962
1960
|
if (typeof error === "string" || !error.details) return error;
|
|
@@ -1965,6 +1963,7 @@ const errorsSpaceLimit = (errors, max) => {
|
|
|
1965
1963
|
}),
|
|
1966
1964
|
filtered
|
|
1967
1965
|
];
|
|
1966
|
+
}
|
|
1968
1967
|
let fullLength = errors.length;
|
|
1969
1968
|
let result = errors;
|
|
1970
1969
|
|
|
@@ -2123,12 +2122,13 @@ const ASSETS_GROUPERS = {
|
|
|
2123
2122
|
const keys = [];
|
|
2124
2123
|
if (groupAssetsByPath) {
|
|
2125
2124
|
keys.push(".");
|
|
2126
|
-
if (extension)
|
|
2125
|
+
if (extension) {
|
|
2127
2126
|
keys.push(
|
|
2128
2127
|
path.length
|
|
2129
2128
|
? `${path.join("/")}/*${extension}`
|
|
2130
2129
|
: `*${extension}`
|
|
2131
2130
|
);
|
|
2131
|
+
}
|
|
2132
2132
|
while (path.length > 0) {
|
|
2133
2133
|
keys.push(`${path.join("/")}/`);
|
|
2134
2134
|
path.pop();
|
|
@@ -2147,7 +2147,7 @@ const ASSETS_GROUPERS = {
|
|
|
2147
2147
|
});
|
|
2148
2148
|
}
|
|
2149
2149
|
},
|
|
2150
|
-
groupAssetsByInfo: (groupConfigs,
|
|
2150
|
+
groupAssetsByInfo: (groupConfigs, _context, _options) => {
|
|
2151
2151
|
/**
|
|
2152
2152
|
* @param {string} name name
|
|
2153
2153
|
*/
|
|
@@ -2168,7 +2168,7 @@ const ASSETS_GROUPERS = {
|
|
|
2168
2168
|
groupByAssetInfoFlag("development");
|
|
2169
2169
|
groupByAssetInfoFlag("hotModuleReplacement");
|
|
2170
2170
|
},
|
|
2171
|
-
groupAssetsByChunk: (groupConfigs,
|
|
2171
|
+
groupAssetsByChunk: (groupConfigs, _context, _options) => {
|
|
2172
2172
|
/**
|
|
2173
2173
|
* @param {keyof KnownStatsAsset} name name
|
|
2174
2174
|
*/
|
|
@@ -2319,12 +2319,13 @@ const MODULES_GROUPERS = type => ({
|
|
|
2319
2319
|
const path = pathMatch ? pathMatch[1].split(/[/\\]/) : [];
|
|
2320
2320
|
const keys = [];
|
|
2321
2321
|
if (groupModulesByPath) {
|
|
2322
|
-
if (extension)
|
|
2322
|
+
if (extension) {
|
|
2323
2323
|
keys.push(
|
|
2324
2324
|
path.length
|
|
2325
2325
|
? `${path.join("/")}/*${extension}`
|
|
2326
2326
|
: `*${extension}`
|
|
2327
2327
|
);
|
|
2328
|
+
}
|
|
2328
2329
|
while (path.length > 0) {
|
|
2329
2330
|
keys.push(`${path.join("/")}/`);
|
|
2330
2331
|
path.pop();
|
|
@@ -2511,8 +2512,9 @@ const iterateConfig = (config, options, fn) => {
|
|
|
2511
2512
|
value === false ||
|
|
2512
2513
|
value === undefined ||
|
|
2513
2514
|
(Array.isArray(value) && value.length === 0)
|
|
2514
|
-
)
|
|
2515
|
+
) {
|
|
2515
2516
|
continue;
|
|
2517
|
+
}
|
|
2516
2518
|
}
|
|
2517
2519
|
}
|
|
2518
2520
|
fn(hookFor, subConfig[option]);
|
|
@@ -2684,4 +2686,5 @@ class DefaultStatsFactoryPlugin {
|
|
|
2684
2686
|
});
|
|
2685
2687
|
}
|
|
2686
2688
|
}
|
|
2689
|
+
|
|
2687
2690
|
module.exports = DefaultStatsFactoryPlugin;
|