webpack 5.92.1 → 5.94.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/README.md +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
- package/types.d.ts +682 -347
@@ -18,7 +18,9 @@ const { makePathsRelative } = require("../util/identifier");
|
|
18
18
|
const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
|
19
19
|
|
20
20
|
/** @typedef {import("webpack-sources").Source} Source */
|
21
|
+
/** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorDataUrlOptions} AssetGeneratorDataUrlOptions */
|
21
22
|
/** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorOptions} AssetGeneratorOptions */
|
23
|
+
/** @typedef {import("../../declarations/WebpackOptions").AssetModuleFilename} AssetModuleFilename */
|
22
24
|
/** @typedef {import("../../declarations/WebpackOptions").AssetModuleOutputPath} AssetModuleOutputPath */
|
23
25
|
/** @typedef {import("../../declarations/WebpackOptions").RawPublicPath} RawPublicPath */
|
24
26
|
/** @typedef {import("../Compilation")} Compilation */
|
@@ -26,11 +28,21 @@ const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
|
|
26
28
|
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
27
29
|
/** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
|
28
30
|
/** @typedef {import("../Module")} Module */
|
31
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
29
32
|
/** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
|
30
33
|
/** @typedef {import("../NormalModule")} NormalModule */
|
31
34
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
35
|
+
/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
|
32
36
|
/** @typedef {import("../util/Hash")} Hash */
|
37
|
+
/** @typedef {import("../util/createHash").Algorithm} Algorithm */
|
33
38
|
|
39
|
+
/**
|
40
|
+
* @template T
|
41
|
+
* @template U
|
42
|
+
* @param {Array<T> | Set<T>} a a
|
43
|
+
* @param {Array<U> | Set<U>} b b
|
44
|
+
* @returns {Array<T> & Array<U>} array
|
45
|
+
*/
|
34
46
|
const mergeMaybeArrays = (a, b) => {
|
35
47
|
const set = new Set();
|
36
48
|
if (Array.isArray(a)) for (const item of a) set.add(item);
|
@@ -40,6 +52,13 @@ const mergeMaybeArrays = (a, b) => {
|
|
40
52
|
return Array.from(set);
|
41
53
|
};
|
42
54
|
|
55
|
+
/**
|
56
|
+
* @template {object} T
|
57
|
+
* @template {object} U
|
58
|
+
* @param {TODO} a a
|
59
|
+
* @param {TODO} b b
|
60
|
+
* @returns {T & U} object
|
61
|
+
*/
|
43
62
|
const mergeAssetInfo = (a, b) => {
|
44
63
|
const result = { ...a, ...b };
|
45
64
|
for (const key of Object.keys(a)) {
|
@@ -69,6 +88,13 @@ const mergeAssetInfo = (a, b) => {
|
|
69
88
|
return result;
|
70
89
|
};
|
71
90
|
|
91
|
+
/**
|
92
|
+
* @template {object} T
|
93
|
+
* @template {object} U
|
94
|
+
* @param {TODO} a a
|
95
|
+
* @param {TODO} b b
|
96
|
+
* @returns {T & U} object
|
97
|
+
*/
|
72
98
|
const mergeRelatedInfo = (a, b) => {
|
73
99
|
const result = { ...a, ...b };
|
74
100
|
for (const key of Object.keys(a)) {
|
@@ -80,7 +106,13 @@ const mergeRelatedInfo = (a, b) => {
|
|
80
106
|
return result;
|
81
107
|
};
|
82
108
|
|
109
|
+
/**
|
110
|
+
* @param {"base64" | false} encoding encoding
|
111
|
+
* @param {Source} source source
|
112
|
+
* @returns {string} encoded data
|
113
|
+
*/
|
83
114
|
const encodeDataUri = (encoding, source) => {
|
115
|
+
/** @type {string | undefined} */
|
84
116
|
let encodedContent;
|
85
117
|
|
86
118
|
switch (encoding) {
|
@@ -95,9 +127,13 @@ const encodeDataUri = (encoding, source) => {
|
|
95
127
|
encodedContent = content.toString("utf-8");
|
96
128
|
}
|
97
129
|
|
98
|
-
encodedContent = encodeURIComponent(
|
130
|
+
encodedContent = encodeURIComponent(
|
131
|
+
/** @type {string} */
|
132
|
+
(encodedContent)
|
133
|
+
).replace(
|
99
134
|
/[!'()*]/g,
|
100
|
-
character =>
|
135
|
+
character =>
|
136
|
+
`%${/** @type {number} */ (character.codePointAt(0)).toString(16)}`
|
101
137
|
);
|
102
138
|
break;
|
103
139
|
}
|
@@ -135,7 +171,7 @@ const DEFAULT_ENCODING = "base64";
|
|
135
171
|
class AssetGenerator extends Generator {
|
136
172
|
/**
|
137
173
|
* @param {AssetGeneratorOptions["dataUrl"]=} dataUrlOptions the options for the data url
|
138
|
-
* @param {
|
174
|
+
* @param {AssetModuleFilename=} filename override for output.assetModuleFilename
|
139
175
|
* @param {RawPublicPath=} publicPath override for output.assetModulePublicPath
|
140
176
|
* @param {AssetModuleOutputPath=} outputPath the output path for the emitted file which is not included in the runtime import
|
141
177
|
* @param {boolean=} emit generate output asset
|
@@ -183,9 +219,14 @@ class AssetGenerator extends Generator {
|
|
183
219
|
}
|
184
220
|
|
185
221
|
/** @type {string | boolean | undefined} */
|
186
|
-
let mimeType =
|
222
|
+
let mimeType =
|
223
|
+
/** @type {AssetGeneratorDataUrlOptions} */
|
224
|
+
(this.dataUrlOptions).mimetype;
|
187
225
|
if (mimeType === undefined) {
|
188
|
-
const ext = path.extname(
|
226
|
+
const ext = path.extname(
|
227
|
+
/** @type {string} */
|
228
|
+
(module.nameForCondition())
|
229
|
+
);
|
189
230
|
if (
|
190
231
|
module.resourceResolveData &&
|
191
232
|
module.resourceResolveData.mimetype !== undefined
|
@@ -241,7 +282,10 @@ class AssetGenerator extends Generator {
|
|
241
282
|
default: {
|
242
283
|
let content;
|
243
284
|
const originalSource = /** @type {Source} */ (module.originalSource());
|
244
|
-
if (
|
285
|
+
if (
|
286
|
+
/** @type {BuildInfo} */
|
287
|
+
(module.buildInfo).dataUrl
|
288
|
+
) {
|
245
289
|
let encodedSource;
|
246
290
|
if (typeof this.dataUrlOptions === "function") {
|
247
291
|
encodedSource = this.dataUrlOptions.call(
|
@@ -253,15 +297,16 @@ class AssetGenerator extends Generator {
|
|
253
297
|
}
|
254
298
|
);
|
255
299
|
} else {
|
256
|
-
/** @type {
|
257
|
-
let encoding =
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
300
|
+
/** @type {"base64" | false | undefined} */
|
301
|
+
let encoding =
|
302
|
+
/** @type {AssetGeneratorDataUrlOptions} */
|
303
|
+
(this.dataUrlOptions).encoding;
|
304
|
+
if (
|
305
|
+
encoding === undefined &&
|
306
|
+
module.resourceResolveData &&
|
307
|
+
module.resourceResolveData.encoding !== undefined
|
308
|
+
) {
|
309
|
+
encoding = module.resourceResolveData.encoding;
|
265
310
|
}
|
266
311
|
if (encoding === undefined) {
|
267
312
|
encoding = DEFAULT_ENCODING;
|
@@ -287,13 +332,20 @@ class AssetGenerator extends Generator {
|
|
287
332
|
encoding ? `;${encoding}` : ""
|
288
333
|
},${encodedContent}`;
|
289
334
|
}
|
290
|
-
const data =
|
335
|
+
const data =
|
336
|
+
/** @type {NonNullable<GenerateContext["getData"]>} */
|
337
|
+
(getData)();
|
291
338
|
data.set("url", Buffer.from(encodedSource));
|
292
339
|
content = JSON.stringify(encodedSource);
|
293
340
|
} else {
|
294
341
|
const assetModuleFilename =
|
295
|
-
this.filename ||
|
296
|
-
|
342
|
+
this.filename ||
|
343
|
+
/** @type {AssetModuleFilename} */
|
344
|
+
(runtimeTemplate.outputOptions.assetModuleFilename);
|
345
|
+
const hash = createHash(
|
346
|
+
/** @type {Algorithm} */
|
347
|
+
(runtimeTemplate.outputOptions.hashFunction)
|
348
|
+
);
|
297
349
|
if (runtimeTemplate.outputOptions.hashSalt) {
|
298
350
|
hash.update(runtimeTemplate.outputOptions.hashSalt);
|
299
351
|
}
|
@@ -303,9 +355,11 @@ class AssetGenerator extends Generator {
|
|
303
355
|
);
|
304
356
|
const contentHash = nonNumericOnlyHash(
|
305
357
|
fullHash,
|
306
|
-
|
358
|
+
/** @type {number} */
|
359
|
+
(runtimeTemplate.outputOptions.hashDigestLength)
|
307
360
|
);
|
308
|
-
|
361
|
+
/** @type {BuildInfo} */
|
362
|
+
(module.buildInfo).fullContentHash = fullHash;
|
309
363
|
const sourceFilename = this.getSourceFileName(
|
310
364
|
module,
|
311
365
|
runtimeTemplate
|
@@ -349,7 +403,8 @@ class AssetGenerator extends Generator {
|
|
349
403
|
compilation.outputOptions.publicPath === "auto"
|
350
404
|
? CssUrlDependency.PUBLIC_PATH_AUTO
|
351
405
|
: compilation.getAssetPath(
|
352
|
-
|
406
|
+
/** @type {TemplatePath} */
|
407
|
+
(compilation.outputOptions.publicPath),
|
353
408
|
{
|
354
409
|
hash: compilation.hash
|
355
410
|
}
|
@@ -375,8 +430,10 @@ class AssetGenerator extends Generator {
|
|
375
430
|
assetInfo = mergeAssetInfo(assetInfo, info);
|
376
431
|
filename = path.posix.join(outputPath, filename);
|
377
432
|
}
|
378
|
-
|
379
|
-
module.buildInfo.
|
433
|
+
/** @type {BuildInfo} */
|
434
|
+
(module.buildInfo).filename = filename;
|
435
|
+
/** @type {BuildInfo} */
|
436
|
+
(module.buildInfo).assetInfo = assetInfo;
|
380
437
|
if (getData) {
|
381
438
|
// Due to code generation caching module.buildInfo.XXX can't used to store such information
|
382
439
|
// It need to be stored in the code generation results instead, where it's cached too
|
@@ -399,12 +456,9 @@ class AssetGenerator extends Generator {
|
|
399
456
|
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
400
457
|
} = ${content};`
|
401
458
|
);
|
402
|
-
} else {
|
403
|
-
runtimeRequirements.add(RuntimeGlobals.module);
|
404
|
-
return new RawSource(
|
405
|
-
`${RuntimeGlobals.module}.exports = ${content};`
|
406
|
-
);
|
407
459
|
}
|
460
|
+
runtimeRequirements.add(RuntimeGlobals.module);
|
461
|
+
return new RawSource(`${RuntimeGlobals.module}.exports = ${content};`);
|
408
462
|
}
|
409
463
|
}
|
410
464
|
}
|
@@ -416,9 +470,8 @@ class AssetGenerator extends Generator {
|
|
416
470
|
getTypes(module) {
|
417
471
|
if ((module.buildInfo && module.buildInfo.dataUrl) || this.emit === false) {
|
418
472
|
return JS_TYPES;
|
419
|
-
} else {
|
420
|
-
return JS_AND_ASSET_TYPES;
|
421
473
|
}
|
474
|
+
return JS_AND_ASSET_TYPES;
|
422
475
|
}
|
423
476
|
|
424
477
|
/**
|
@@ -450,11 +503,10 @@ class AssetGenerator extends Generator {
|
|
450
503
|
// 4/3 = base64 encoding
|
451
504
|
// 34 = ~ data url header + footer + rounding
|
452
505
|
return originalSource.size() * 1.34 + 36;
|
453
|
-
} else {
|
454
|
-
// it's only estimated so this number is probably fine
|
455
|
-
// Example: m.exports=r.p+"0123456789012345678901.ext"
|
456
|
-
return 42;
|
457
506
|
}
|
507
|
+
// it's only estimated so this number is probably fine
|
508
|
+
// Example: m.exports=r.p+"0123456789012345678901.ext"
|
509
|
+
return 42;
|
458
510
|
}
|
459
511
|
}
|
460
512
|
|
@@ -462,8 +514,12 @@ class AssetGenerator extends Generator {
|
|
462
514
|
* @param {Hash} hash hash that will be modified
|
463
515
|
* @param {UpdateHashContext} updateHashContext context for updating hash
|
464
516
|
*/
|
465
|
-
updateHash(hash,
|
466
|
-
|
517
|
+
updateHash(hash, updateHashContext) {
|
518
|
+
const { module } = updateHashContext;
|
519
|
+
if (
|
520
|
+
/** @type {BuildInfo} */
|
521
|
+
(module.buildInfo).dataUrl
|
522
|
+
) {
|
467
523
|
hash.update("data-url");
|
468
524
|
// this.dataUrlOptions as function should be pure and only depend on input source and filename
|
469
525
|
// therefore it doesn't need to be hashed
|
@@ -472,19 +528,26 @@ class AssetGenerator extends Generator {
|
|
472
528
|
.ident;
|
473
529
|
if (ident) hash.update(ident);
|
474
530
|
} else {
|
531
|
+
const dataUrlOptions =
|
532
|
+
/** @type {AssetGeneratorDataUrlOptions} */
|
533
|
+
(this.dataUrlOptions);
|
475
534
|
if (
|
476
|
-
|
477
|
-
|
535
|
+
dataUrlOptions.encoding &&
|
536
|
+
dataUrlOptions.encoding !== DEFAULT_ENCODING
|
478
537
|
) {
|
479
|
-
hash.update(
|
538
|
+
hash.update(dataUrlOptions.encoding);
|
480
539
|
}
|
481
|
-
if (
|
482
|
-
hash.update(this.dataUrlOptions.mimetype);
|
540
|
+
if (dataUrlOptions.mimetype) hash.update(dataUrlOptions.mimetype);
|
483
541
|
// computed mimetype depends only on module filename which is already part of the hash
|
484
542
|
}
|
485
543
|
} else {
|
486
544
|
hash.update("resource");
|
487
545
|
|
546
|
+
const { module, chunkGraph, runtime } = updateHashContext;
|
547
|
+
const runtimeTemplate =
|
548
|
+
/** @type {NonNullable<UpdateHashContext["runtimeTemplate"]>} */
|
549
|
+
(updateHashContext.runtimeTemplate);
|
550
|
+
|
488
551
|
const pathData = {
|
489
552
|
module,
|
490
553
|
runtime,
|
@@ -506,7 +569,9 @@ class AssetGenerator extends Generator {
|
|
506
569
|
}
|
507
570
|
|
508
571
|
const assetModuleFilename =
|
509
|
-
this.filename ||
|
572
|
+
this.filename ||
|
573
|
+
/** @type {AssetModuleFilename} */
|
574
|
+
(runtimeTemplate.outputOptions.assetModuleFilename);
|
510
575
|
const { path: filename, info } =
|
511
576
|
runtimeTemplate.compilation.getAssetPathWithInfo(
|
512
577
|
assetModuleFilename,
|
@@ -17,9 +17,12 @@ const createSchemaValidation = require("../util/create-schema-validation");
|
|
17
17
|
const memoize = require("../util/memoize");
|
18
18
|
|
19
19
|
/** @typedef {import("webpack-sources").Source} Source */
|
20
|
+
/** @typedef {import("../../declarations/WebpackOptions").AssetParserOptions} AssetParserOptions */
|
20
21
|
/** @typedef {import("../Chunk")} Chunk */
|
21
22
|
/** @typedef {import("../Compiler")} Compiler */
|
22
23
|
/** @typedef {import("../Module")} Module */
|
24
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
25
|
+
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
23
26
|
|
24
27
|
/**
|
25
28
|
* @param {string} name name of definitions
|
@@ -89,7 +92,8 @@ class AssetModulesPlugin {
|
|
89
92
|
.tap(plugin, parserOptions => {
|
90
93
|
validateParserOptions(parserOptions);
|
91
94
|
parserOptions = cleverMerge(
|
92
|
-
|
95
|
+
/** @type {AssetParserOptions} */
|
96
|
+
(compiler.options.module.parser.asset),
|
93
97
|
parserOptions
|
94
98
|
);
|
95
99
|
|
@@ -107,21 +111,21 @@ class AssetModulesPlugin {
|
|
107
111
|
});
|
108
112
|
normalModuleFactory.hooks.createParser
|
109
113
|
.for(ASSET_MODULE_TYPE_INLINE)
|
110
|
-
.tap(plugin,
|
114
|
+
.tap(plugin, _parserOptions => {
|
111
115
|
const AssetParser = getAssetParser();
|
112
116
|
|
113
117
|
return new AssetParser(true);
|
114
118
|
});
|
115
119
|
normalModuleFactory.hooks.createParser
|
116
120
|
.for(ASSET_MODULE_TYPE_RESOURCE)
|
117
|
-
.tap(plugin,
|
121
|
+
.tap(plugin, _parserOptions => {
|
118
122
|
const AssetParser = getAssetParser();
|
119
123
|
|
120
124
|
return new AssetParser(false);
|
121
125
|
});
|
122
126
|
normalModuleFactory.hooks.createParser
|
123
127
|
.for(ASSET_MODULE_TYPE_SOURCE)
|
124
|
-
.tap(plugin,
|
128
|
+
.tap(plugin, _parserOptions => {
|
125
129
|
const AssetSourceParser = getAssetSourceParser();
|
126
130
|
|
127
131
|
return new AssetSourceParser();
|
@@ -137,7 +141,7 @@ class AssetModulesPlugin {
|
|
137
141
|
.tap(plugin, generatorOptions => {
|
138
142
|
validateGeneratorOptions[type](generatorOptions);
|
139
143
|
|
140
|
-
let dataUrl
|
144
|
+
let dataUrl;
|
141
145
|
if (type !== ASSET_MODULE_TYPE_RESOURCE) {
|
142
146
|
dataUrl = generatorOptions.dataUrl;
|
143
147
|
if (!dataUrl || typeof dataUrl === "object") {
|
@@ -149,9 +153,9 @@ class AssetModulesPlugin {
|
|
149
153
|
}
|
150
154
|
}
|
151
155
|
|
152
|
-
let filename
|
153
|
-
let publicPath
|
154
|
-
let outputPath
|
156
|
+
let filename;
|
157
|
+
let publicPath;
|
158
|
+
let outputPath;
|
155
159
|
if (type !== ASSET_MODULE_TYPE_INLINE) {
|
156
160
|
filename = generatorOptions.filename;
|
157
161
|
publicPath = generatorOptions.publicPath;
|
@@ -193,24 +197,23 @@ class AssetModulesPlugin {
|
|
193
197
|
module,
|
194
198
|
chunk.runtime
|
195
199
|
);
|
200
|
+
const buildInfo = /** @type {BuildInfo} */ (module.buildInfo);
|
201
|
+
const data =
|
202
|
+
/** @type {NonNullable<CodeGenerationResult["data"]>} */
|
203
|
+
(codeGenResult.data);
|
196
204
|
result.push({
|
197
|
-
render: () =>
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
info:
|
202
|
-
module.buildInfo.assetInfo ||
|
203
|
-
codeGenResult.data.get("assetInfo"),
|
205
|
+
render: () =>
|
206
|
+
/** @type {Source} */ (codeGenResult.sources.get(type)),
|
207
|
+
filename: buildInfo.filename || data.get("filename"),
|
208
|
+
info: buildInfo.assetInfo || data.get("assetInfo"),
|
204
209
|
auxiliary: true,
|
205
210
|
identifier: `assetModule${chunkGraph.getModuleId(module)}`,
|
206
|
-
hash:
|
207
|
-
module.buildInfo.fullContentHash ||
|
208
|
-
codeGenResult.data.get("fullContentHash")
|
211
|
+
hash: buildInfo.fullContentHash || data.get("fullContentHash")
|
209
212
|
});
|
210
|
-
} catch (
|
211
|
-
/** @type {Error} */ (
|
213
|
+
} catch (err) {
|
214
|
+
/** @type {Error} */ (err).message +=
|
212
215
|
`\nduring rendering of asset ${module.identifier()}`;
|
213
|
-
throw
|
216
|
+
throw err;
|
214
217
|
}
|
215
218
|
}
|
216
219
|
}
|
@@ -224,9 +227,12 @@ class AssetModulesPlugin {
|
|
224
227
|
const { codeGenerationResult } = options;
|
225
228
|
const source = codeGenerationResult.sources.get(ASSET_MODULE_TYPE);
|
226
229
|
if (source === undefined) return;
|
227
|
-
|
230
|
+
const data =
|
231
|
+
/** @type {NonNullable<CodeGenerationResult["data"]>} */
|
232
|
+
(codeGenerationResult.data);
|
233
|
+
context.assets.set(data.get("filename"), {
|
228
234
|
source,
|
229
|
-
info:
|
235
|
+
info: data.get("assetInfo")
|
230
236
|
});
|
231
237
|
}
|
232
238
|
);
|
@@ -34,13 +34,8 @@ class AssetSourceGenerator extends Generator {
|
|
34
34
|
}
|
35
35
|
|
36
36
|
const content = originalSource.source();
|
37
|
-
|
38
|
-
|
39
|
-
if (typeof content === "string") {
|
40
|
-
encodedSource = content;
|
41
|
-
} else {
|
42
|
-
encodedSource = content.toString("utf-8");
|
43
|
-
}
|
37
|
+
const encodedSource =
|
38
|
+
typeof content === "string" ? content : content.toString("utf-8");
|
44
39
|
|
45
40
|
let sourceContent;
|
46
41
|
if (concatenationScope) {
|
@@ -52,13 +52,12 @@ class AwaitDependenciesInitFragment extends InitFragment {
|
|
52
52
|
return "";
|
53
53
|
}
|
54
54
|
if (promises.size === 1) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
}
|
55
|
+
const [p] = promises;
|
56
|
+
return Template.asString([
|
57
|
+
`var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([${p}]);`,
|
58
|
+
`${p} = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];`,
|
59
|
+
""
|
60
|
+
]);
|
62
61
|
}
|
63
62
|
const sepPromises = Array.from(promises).join(", ");
|
64
63
|
// TODO check if destructuring is supported
|
package/lib/buildChunkGraph.js
CHANGED
@@ -209,7 +209,7 @@ const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => {
|
|
209
209
|
const merged = /** @type {ConnectionState} */ (modules[idx]);
|
210
210
|
/** @type {ModuleGraphConnection[]} */
|
211
211
|
(/** @type {unknown} */ (modules[idx + 1])).push(connection);
|
212
|
-
if (merged === true) continue
|
212
|
+
if (merged === true) continue;
|
213
213
|
modules[idx] = ModuleGraphConnection.addConnectionStates(
|
214
214
|
merged,
|
215
215
|
state
|
@@ -234,7 +234,6 @@ const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => {
|
|
234
234
|
};
|
235
235
|
|
236
236
|
/**
|
237
|
-
*
|
238
237
|
* @param {Logger} logger a logger
|
239
238
|
* @param {Compilation} compilation the compilation
|
240
239
|
* @param {InputEntrypointsAndModules} inputEntrypointsAndModules chunk groups which are processed with the modules
|
@@ -286,7 +285,6 @@ const visitModules = (
|
|
286
285
|
}
|
287
286
|
|
288
287
|
/**
|
289
|
-
*
|
290
288
|
* @param {DependenciesBlock} block block
|
291
289
|
* @param {RuntimeSpec} runtime runtime
|
292
290
|
* @returns {BlockModulesInFlattenTuples} block modules in flatten tuples
|
@@ -316,15 +314,14 @@ const visitModules = (
|
|
316
314
|
for (const [block, blockModules] of map)
|
317
315
|
blockModulesMap.set(block, blockModules);
|
318
316
|
return map.get(block);
|
319
|
-
} else {
|
320
|
-
logger.time("visitModules: prepare");
|
321
|
-
extractBlockModules(module, moduleGraph, runtime, blockModulesMap);
|
322
|
-
blockModules =
|
323
|
-
/** @type {BlockModulesInFlattenTuples} */
|
324
|
-
(blockModulesMap.get(block));
|
325
|
-
logger.timeAggregate("visitModules: prepare");
|
326
|
-
return blockModules;
|
327
317
|
}
|
318
|
+
logger.time("visitModules: prepare");
|
319
|
+
extractBlockModules(module, moduleGraph, runtime, blockModulesMap);
|
320
|
+
blockModules =
|
321
|
+
/** @type {BlockModulesInFlattenTuples} */
|
322
|
+
(blockModulesMap.get(block));
|
323
|
+
logger.timeAggregate("visitModules: prepare");
|
324
|
+
return blockModules;
|
328
325
|
};
|
329
326
|
|
330
327
|
let statProcessedQueueItems = 0;
|
@@ -332,12 +329,12 @@ const visitModules = (
|
|
332
329
|
let statConnectedChunkGroups = 0;
|
333
330
|
let statProcessedChunkGroupsForMerging = 0;
|
334
331
|
let statMergedAvailableModuleSets = 0;
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
332
|
+
const statForkedAvailableModules = 0;
|
333
|
+
const statForkedAvailableModulesCount = 0;
|
334
|
+
const statForkedAvailableModulesCountPlus = 0;
|
335
|
+
const statForkedMergedModulesCount = 0;
|
336
|
+
const statForkedMergedModulesCountPlus = 0;
|
337
|
+
const statForkedResultModulesCount = 0;
|
341
338
|
let statChunkGroupInfoUpdated = 0;
|
342
339
|
let statChildChunkGroupsReconnected = 0;
|
343
340
|
|
@@ -1179,7 +1176,6 @@ const visitModules = (
|
|
1179
1176
|
};
|
1180
1177
|
|
1181
1178
|
/**
|
1182
|
-
*
|
1183
1179
|
* @param {Compilation} compilation the compilation
|
1184
1180
|
* @param {BlocksWithNestedBlocks} blocksWithNestedBlocks flag for blocks that have nested blocks
|
1185
1181
|
* @param {BlockConnections} blockConnections connection for blocks
|
@@ -1195,7 +1191,6 @@ const connectChunkGroups = (
|
|
1195
1191
|
|
1196
1192
|
/**
|
1197
1193
|
* Helper function to check if all modules of a chunk are available
|
1198
|
-
*
|
1199
1194
|
* @param {ChunkGroup} chunkGroup the chunkGroup to scan
|
1200
1195
|
* @param {bigint} availableModules the comparator set
|
1201
1196
|
* @returns {boolean} return true if all modules of a chunk are available
|
@@ -11,7 +11,7 @@ const ProgressPlugin = require("../ProgressPlugin");
|
|
11
11
|
/** @typedef {import("../Compiler")} Compiler */
|
12
12
|
/** @typedef {import("./PackFileCacheStrategy")} PackFileCacheStrategy */
|
13
13
|
|
14
|
-
const BUILD_DEPENDENCIES_KEY = Symbol();
|
14
|
+
const BUILD_DEPENDENCIES_KEY = Symbol("build dependencies key");
|
15
15
|
|
16
16
|
class IdleFileCachePlugin {
|
17
17
|
/**
|
@@ -38,7 +38,7 @@ class IdleFileCachePlugin {
|
|
38
38
|
* @returns {void}
|
39
39
|
*/
|
40
40
|
apply(compiler) {
|
41
|
-
|
41
|
+
const strategy = this.strategy;
|
42
42
|
const idleTimeout = this.idleTimeout;
|
43
43
|
const idleTimeoutForInitialStore = Math.min(
|
44
44
|
idleTimeout,
|
@@ -119,7 +119,7 @@ class IdleFileCachePlugin {
|
|
119
119
|
currentIdlePromise = promise.then(() => strategy.afterAllStored());
|
120
120
|
if (reportProgress) {
|
121
121
|
currentIdlePromise = currentIdlePromise.then(() => {
|
122
|
-
reportProgress(1,
|
122
|
+
reportProgress(1, "stored");
|
123
123
|
});
|
124
124
|
}
|
125
125
|
return currentIdlePromise.then(() => {
|
@@ -175,7 +175,7 @@ class IdleFileCachePlugin {
|
|
175
175
|
}
|
176
176
|
};
|
177
177
|
/** @type {ReturnType<typeof setTimeout> | undefined} */
|
178
|
-
let idleTimer
|
178
|
+
let idleTimer;
|
179
179
|
compiler.cache.hooks.beginIdle.tap(
|
180
180
|
{ name: "IdleFileCachePlugin", stage: Cache.STAGE_DISK },
|
181
181
|
() => {
|
@@ -20,6 +20,7 @@ class MemoryWithGcCachePlugin {
|
|
20
20
|
constructor({ maxGenerations }) {
|
21
21
|
this._maxGenerations = maxGenerations;
|
22
22
|
}
|
23
|
+
|
23
24
|
/**
|
24
25
|
* Apply the plugin
|
25
26
|
* @param {Compiler} compiler the compiler instance
|
@@ -106,12 +107,11 @@ class MemoryWithGcCachePlugin {
|
|
106
107
|
oldCache.delete(identifier);
|
107
108
|
cache.set(identifier, cacheEntry);
|
108
109
|
return null;
|
109
|
-
} else {
|
110
|
-
if (cacheEntry.etag !== etag) return null;
|
111
|
-
oldCache.delete(identifier);
|
112
|
-
cache.set(identifier, cacheEntry);
|
113
|
-
return cacheEntry.data;
|
114
110
|
}
|
111
|
+
if (cacheEntry.etag !== etag) return null;
|
112
|
+
oldCache.delete(identifier);
|
113
|
+
cache.set(identifier, cacheEntry);
|
114
|
+
return cacheEntry.data;
|
115
115
|
}
|
116
116
|
gotHandlers.push((result, callback) => {
|
117
117
|
if (result === undefined) {
|