webpack 5.106.1 → 5.106.2
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/lib/APIPlugin.js +3 -1
- package/lib/AbstractMethodError.js +10 -1
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AsyncDependencyToInitialChunkError.js +6 -1
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +26 -1
- package/lib/CacheFacade.js +26 -0
- package/lib/CaseSensitiveModulesWarning.js +9 -1
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CommentCompilationWarning.js +6 -0
- package/lib/CompatibilityPlugin.js +15 -1
- package/lib/Compilation.js +127 -1
- package/lib/Compiler.js +37 -4
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +12 -0
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/CssModule.js +6 -0
- package/lib/DefinePlugin.js +20 -7
- package/lib/DelegatedModule.js +13 -0
- package/lib/DelegatedModuleFactoryPlugin.js +3 -0
- package/lib/DelegatedPlugin.js +2 -1
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +26 -3
- package/lib/DependencyTemplate.js +5 -0
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DllEntryPlugin.js +2 -1
- package/lib/DllModule.js +11 -0
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +2 -1
- package/lib/DllReferencePlugin.js +11 -6
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +2 -1
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +3 -1
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +38 -0
- package/lib/ExternalModuleFactoryPlugin.js +10 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +105 -0
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +13 -0
- package/lib/GraphHelpers.js +3 -0
- package/lib/HookWebpackError.js +6 -0
- package/lib/HotModuleReplacementPlugin.js +9 -1
- package/lib/IgnoreErrorModuleFactory.js +2 -0
- package/lib/IgnorePlugin.js +2 -1
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/InvalidDependenciesModuleWarning.js +1 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibManifestPlugin.js +4 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +82 -1
- package/lib/ModuleBuildError.js +3 -0
- package/lib/ModuleDependencyWarning.js +1 -0
- package/lib/ModuleError.js +2 -0
- package/lib/ModuleFactory.js +5 -0
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +1 -0
- package/lib/ModuleParseError.js +3 -0
- package/lib/ModuleRestoreError.js +1 -0
- package/lib/ModuleSourceTypeConstants.js +1 -0
- package/lib/ModuleStoreError.js +1 -0
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleWarning.js +3 -0
- package/lib/MultiCompiler.js +28 -0
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffInWebError.js +1 -0
- package/lib/NodeStuffPlugin.js +10 -1
- package/lib/NormalModule.js +30 -2
- package/lib/NormalModuleFactory.js +25 -0
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +2 -0
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +29 -12
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/RequireJsStuffPlugin.js +2 -1
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +1 -0
- package/lib/RuntimeModule.js +13 -0
- package/lib/RuntimePlugin.js +2 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SizeFormatHelpers.js +1 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UnhandledSchemeError.js +6 -0
- package/lib/UnsupportedFeatureWarning.js +1 -0
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +14 -0
- package/lib/WebpackError.js +3 -0
- package/lib/WebpackIsIncludedPlugin.js +2 -0
- package/lib/WebpackOptionsApply.js +1 -0
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +6 -0
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +20 -2
- package/lib/asset/AssetModulesPlugin.js +4 -1
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +6 -0
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +15 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +29 -0
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +30 -0
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +35 -2
- package/lib/config/normalization.js +12 -0
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +35 -14
- package/lib/css/CssInjectStyleRuntimeModule.js +1 -0
- package/lib/css/CssLoadingRuntimeModule.js +1 -0
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +1 -0
- package/lib/css/CssModulesPlugin.js +69 -3
- package/lib/css/CssParser.js +59 -1
- package/lib/css/walkCssTokens.js +31 -0
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -0
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +8 -0
- package/lib/dependencies/CommonJsFullRequireDependency.js +4 -0
- package/lib/dependencies/CommonJsImportsParserPlugin.js +20 -0
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +3 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +8 -1
- package/lib/dependencies/ContextDependencyHelpers.js +3 -0
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +6 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +10 -2
- package/lib/dependencies/CssIcssImportDependency.js +4 -1
- package/lib/dependencies/CssIcssSymbolDependency.js +5 -1
- package/lib/dependencies/CssImportDependency.js +4 -0
- package/lib/dependencies/CssUrlDependency.js +7 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -0
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +5 -0
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +33 -2
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +11 -0
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +9 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +17 -2
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +3 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +7 -0
- package/lib/dependencies/ImportPhase.js +6 -2
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +4 -1
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +4 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +9 -1
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/formatLocation.js +2 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +20 -0
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +5 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +23 -1
- package/lib/javascript/JavascriptParser.js +163 -0
- package/lib/javascript/JavascriptParserHelpers.js +6 -0
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +8 -10
- package/lib/library/AbstractLibraryPlugin.js +16 -1
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +7 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +3 -1
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +3 -0
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +11 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +15 -0
- package/lib/optimize/InnerGraphPlugin.js +3 -1
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +1 -0
- package/lib/optimize/ModuleConcatenationPlugin.js +21 -1
- package/lib/optimize/RealContentHashPlugin.js +16 -1
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +7 -1
- package/lib/optimize/SplitChunksPlugin.js +49 -1
- package/lib/performance/AssetsOverSizeLimitWarning.js +1 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -0
- package/lib/performance/SizeLimitsPlugin.js +7 -1
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +18 -0
- package/lib/rules/UseEffectRulePlugin.js +6 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +2 -0
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +6 -1
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +12 -0
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +6 -1
- package/lib/sharing/ConsumeSharedRuntimeModule.js +1 -0
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +11 -0
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +4 -1
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +3 -0
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +56 -1
- package/lib/stats/DefaultStatsPresetPlugin.js +11 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +37 -1
- package/lib/stats/StatsFactory.js +12 -0
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/url/URLParserPlugin.js +6 -0
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +20 -0
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +6 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +17 -0
- package/lib/util/comparators.js +31 -0
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +6 -0
- package/lib/util/conventions.js +4 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/util/fs.js +63 -0
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/identifier.js +19 -0
- package/lib/util/magicComment.js +1 -0
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +112 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +2 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -0
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +10 -0
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +12 -14
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +44 -55
- package/types.d.ts +4594 -331
package/lib/ChunkGroup.js
CHANGED
|
@@ -24,6 +24,9 @@ const {
|
|
|
24
24
|
/** @typedef {{ module: Module | null, loc: DependencyLocation, request: string }} OriginRecord */
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
+
* Describes the scheduling hints that can be attached to a chunk group.
|
|
28
|
+
* These values influence how child groups are ordered for preload/prefetch
|
|
29
|
+
* and how their fetch priority is exposed to runtime code.
|
|
27
30
|
* @typedef {object} RawChunkGroupOptions
|
|
28
31
|
* @property {number=} preloadOrder
|
|
29
32
|
* @property {number=} prefetchOrder
|
|
@@ -35,6 +38,8 @@ const {
|
|
|
35
38
|
let debugId = 5000;
|
|
36
39
|
|
|
37
40
|
/**
|
|
41
|
+
* Materializes a sortable set as an array without changing its current order.
|
|
42
|
+
* Used with `SortableSet` caches that expect a stable array result.
|
|
38
43
|
* @template T
|
|
39
44
|
* @param {SortableSet<T>} set set to convert to array.
|
|
40
45
|
* @returns {T[]} the array format of existing set
|
|
@@ -54,6 +59,8 @@ const sortById = (a, b) => {
|
|
|
54
59
|
};
|
|
55
60
|
|
|
56
61
|
/**
|
|
62
|
+
* Orders origin records by referencing module and then by source location.
|
|
63
|
+
* This keeps origin metadata deterministic for hashing and diagnostics.
|
|
57
64
|
* @param {OriginRecord} a the first comparator in sort
|
|
58
65
|
* @param {OriginRecord} b the second comparator in sort
|
|
59
66
|
* @returns {1 | -1 | 0} returns sorting order as index
|
|
@@ -66,9 +73,14 @@ const sortOrigin = (a, b) => {
|
|
|
66
73
|
return compareLocations(a.loc, b.loc);
|
|
67
74
|
};
|
|
68
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Represents a connected group of chunks along with the parent/child
|
|
78
|
+
* relationships, async blocks, and traversal metadata webpack tracks for it.
|
|
79
|
+
*/
|
|
69
80
|
class ChunkGroup {
|
|
70
81
|
/**
|
|
71
|
-
* Creates
|
|
82
|
+
* Creates a chunk group and initializes the relationship sets and ordering
|
|
83
|
+
* metadata used while building and optimizing the chunk graph.
|
|
72
84
|
* @param {string | ChunkGroupOptions=} options chunk group options passed to chunkGroup
|
|
73
85
|
*/
|
|
74
86
|
constructor(options) {
|
|
@@ -113,7 +125,9 @@ class ChunkGroup {
|
|
|
113
125
|
}
|
|
114
126
|
|
|
115
127
|
/**
|
|
116
|
-
*
|
|
128
|
+
* Merges additional options into the chunk group.
|
|
129
|
+
* Order-based options are combined by taking the higher priority, while
|
|
130
|
+
* unsupported conflicts surface as an explicit error.
|
|
117
131
|
* @param {ChunkGroupOptions} options the chunkGroup options passed to addOptions
|
|
118
132
|
* @returns {void}
|
|
119
133
|
*/
|
|
@@ -146,7 +160,7 @@ class ChunkGroup {
|
|
|
146
160
|
}
|
|
147
161
|
|
|
148
162
|
/**
|
|
149
|
-
*
|
|
163
|
+
* Returns the configured name of the chunk group, if one was assigned.
|
|
150
164
|
* @returns {ChunkGroupOptions["name"]} returns the ChunkGroup name
|
|
151
165
|
*/
|
|
152
166
|
get name() {
|
|
@@ -154,7 +168,7 @@ class ChunkGroup {
|
|
|
154
168
|
}
|
|
155
169
|
|
|
156
170
|
/**
|
|
157
|
-
*
|
|
171
|
+
* Updates the configured name of the chunk group.
|
|
158
172
|
* @param {string | undefined} value the new name for ChunkGroup
|
|
159
173
|
* @returns {void}
|
|
160
174
|
*/
|
|
@@ -164,7 +178,8 @@ class ChunkGroup {
|
|
|
164
178
|
|
|
165
179
|
/* istanbul ignore next */
|
|
166
180
|
/**
|
|
167
|
-
*
|
|
181
|
+
* Returns a debug-only identifier derived from the group's member chunk
|
|
182
|
+
* debug ids. This is primarily useful in diagnostics and assertions.
|
|
168
183
|
* @returns {string} a unique concatenation of chunk debugId's
|
|
169
184
|
*/
|
|
170
185
|
get debugId() {
|
|
@@ -172,7 +187,8 @@ class ChunkGroup {
|
|
|
172
187
|
}
|
|
173
188
|
|
|
174
189
|
/**
|
|
175
|
-
*
|
|
190
|
+
* Returns an identifier derived from the ids of the chunks currently in
|
|
191
|
+
* the group.
|
|
176
192
|
* @returns {string} a unique concatenation of chunk ids
|
|
177
193
|
*/
|
|
178
194
|
get id() {
|
|
@@ -180,7 +196,8 @@ class ChunkGroup {
|
|
|
180
196
|
}
|
|
181
197
|
|
|
182
198
|
/**
|
|
183
|
-
*
|
|
199
|
+
* Moves a chunk to the front of the group or inserts it when it is not
|
|
200
|
+
* already present.
|
|
184
201
|
* @param {Chunk} chunk chunk being unshifted
|
|
185
202
|
* @returns {boolean} returns true if attempted chunk shift is accepted
|
|
186
203
|
*/
|
|
@@ -197,7 +214,8 @@ class ChunkGroup {
|
|
|
197
214
|
}
|
|
198
215
|
|
|
199
216
|
/**
|
|
200
|
-
*
|
|
217
|
+
* Inserts a chunk directly before another chunk that already belongs to the
|
|
218
|
+
* group, preserving the rest of the ordering.
|
|
201
219
|
* @param {Chunk} chunk Chunk being inserted
|
|
202
220
|
* @param {Chunk} before Placeholder/target chunk marking new chunk insertion point
|
|
203
221
|
* @returns {boolean} return true if insertion was successful
|
|
@@ -219,7 +237,7 @@ class ChunkGroup {
|
|
|
219
237
|
}
|
|
220
238
|
|
|
221
239
|
/**
|
|
222
|
-
*
|
|
240
|
+
* Appends a chunk to the group when it is not already a member.
|
|
223
241
|
* @param {Chunk} chunk chunk being pushed into ChunkGroupS
|
|
224
242
|
* @returns {boolean} returns true if chunk addition was successful.
|
|
225
243
|
*/
|
|
@@ -233,6 +251,8 @@ class ChunkGroup {
|
|
|
233
251
|
}
|
|
234
252
|
|
|
235
253
|
/**
|
|
254
|
+
* Replaces one member chunk with another while preserving the group's
|
|
255
|
+
* ordering and avoiding duplicates.
|
|
236
256
|
* @param {Chunk} oldChunk chunk to be replaced
|
|
237
257
|
* @param {Chunk} newChunk New chunk that will be replaced with
|
|
238
258
|
* @returns {boolean | undefined} returns true if the replacement was successful
|
|
@@ -256,6 +276,7 @@ class ChunkGroup {
|
|
|
256
276
|
}
|
|
257
277
|
|
|
258
278
|
/**
|
|
279
|
+
* Removes a chunk from this group.
|
|
259
280
|
* @param {Chunk} chunk chunk to remove
|
|
260
281
|
* @returns {boolean} returns true if chunk was removed
|
|
261
282
|
*/
|
|
@@ -269,6 +290,8 @@ class ChunkGroup {
|
|
|
269
290
|
}
|
|
270
291
|
|
|
271
292
|
/**
|
|
293
|
+
* Indicates whether this chunk group is loaded as part of the initial page
|
|
294
|
+
* load instead of being created lazily.
|
|
272
295
|
* @returns {boolean} true, when this chunk group will be loaded on initial page load
|
|
273
296
|
*/
|
|
274
297
|
isInitial() {
|
|
@@ -276,6 +299,7 @@ class ChunkGroup {
|
|
|
276
299
|
}
|
|
277
300
|
|
|
278
301
|
/**
|
|
302
|
+
* Adds a child chunk group to the current group.
|
|
279
303
|
* @param {ChunkGroup} group chunk group to add
|
|
280
304
|
* @returns {boolean} returns true if chunk group was added
|
|
281
305
|
*/
|
|
@@ -286,6 +310,7 @@ class ChunkGroup {
|
|
|
286
310
|
}
|
|
287
311
|
|
|
288
312
|
/**
|
|
313
|
+
* Returns the child chunk groups reachable from this group.
|
|
289
314
|
* @returns {ChunkGroup[]} returns the children of this group
|
|
290
315
|
*/
|
|
291
316
|
getChildren() {
|
|
@@ -301,6 +326,8 @@ class ChunkGroup {
|
|
|
301
326
|
}
|
|
302
327
|
|
|
303
328
|
/**
|
|
329
|
+
* Removes a child chunk group and clears the corresponding parent link on
|
|
330
|
+
* the removed child.
|
|
304
331
|
* @param {ChunkGroup} group the chunk group to remove
|
|
305
332
|
* @returns {boolean} returns true if the chunk group was removed
|
|
306
333
|
*/
|
|
@@ -315,6 +342,7 @@ class ChunkGroup {
|
|
|
315
342
|
}
|
|
316
343
|
|
|
317
344
|
/**
|
|
345
|
+
* Records a parent chunk group relationship.
|
|
318
346
|
* @param {ChunkGroup} parentChunk the parent group to be added into
|
|
319
347
|
* @returns {boolean} returns true if this chunk group was added to the parent group
|
|
320
348
|
*/
|
|
@@ -327,6 +355,7 @@ class ChunkGroup {
|
|
|
327
355
|
}
|
|
328
356
|
|
|
329
357
|
/**
|
|
358
|
+
* Returns the parent chunk groups that can lead to this group.
|
|
330
359
|
* @returns {ChunkGroup[]} returns the parents of this group
|
|
331
360
|
*/
|
|
332
361
|
getParents() {
|
|
@@ -338,6 +367,7 @@ class ChunkGroup {
|
|
|
338
367
|
}
|
|
339
368
|
|
|
340
369
|
/**
|
|
370
|
+
* Checks whether the provided group is registered as a parent.
|
|
341
371
|
* @param {ChunkGroup} parent the parent group
|
|
342
372
|
* @returns {boolean} returns true if the parent group contains this group
|
|
343
373
|
*/
|
|
@@ -350,6 +380,7 @@ class ChunkGroup {
|
|
|
350
380
|
}
|
|
351
381
|
|
|
352
382
|
/**
|
|
383
|
+
* Removes a parent chunk group and clears the reverse child relationship.
|
|
353
384
|
* @param {ChunkGroup} chunkGroup the parent group
|
|
354
385
|
* @returns {boolean} returns true if this group has been removed from the parent
|
|
355
386
|
*/
|
|
@@ -362,6 +393,7 @@ class ChunkGroup {
|
|
|
362
393
|
}
|
|
363
394
|
|
|
364
395
|
/**
|
|
396
|
+
* Registers an async entrypoint that is rooted in this chunk group.
|
|
365
397
|
* @param {Entrypoint} entrypoint entrypoint to add
|
|
366
398
|
* @returns {boolean} returns true if entrypoint was added
|
|
367
399
|
*/
|
|
@@ -376,6 +408,7 @@ class ChunkGroup {
|
|
|
376
408
|
}
|
|
377
409
|
|
|
378
410
|
/**
|
|
411
|
+
* Returns the async dependency blocks that create or reference this group.
|
|
379
412
|
* @returns {AsyncDependenciesBlock[]} an array containing the blocks
|
|
380
413
|
*/
|
|
381
414
|
getBlocks() {
|
|
@@ -387,6 +420,7 @@ class ChunkGroup {
|
|
|
387
420
|
}
|
|
388
421
|
|
|
389
422
|
/**
|
|
423
|
+
* Checks whether an async dependency block is associated with this group.
|
|
390
424
|
* @param {AsyncDependenciesBlock} block block
|
|
391
425
|
* @returns {boolean} true, if block exists
|
|
392
426
|
*/
|
|
@@ -395,6 +429,7 @@ class ChunkGroup {
|
|
|
395
429
|
}
|
|
396
430
|
|
|
397
431
|
/**
|
|
432
|
+
* Exposes the group's async dependency blocks as an iterable.
|
|
398
433
|
* @returns {Iterable<AsyncDependenciesBlock>} blocks
|
|
399
434
|
*/
|
|
400
435
|
get blocksIterable() {
|
|
@@ -402,6 +437,7 @@ class ChunkGroup {
|
|
|
402
437
|
}
|
|
403
438
|
|
|
404
439
|
/**
|
|
440
|
+
* Associates an async dependency block with this chunk group.
|
|
405
441
|
* @param {AsyncDependenciesBlock} block a block
|
|
406
442
|
* @returns {boolean} false, if block was already added
|
|
407
443
|
*/
|
|
@@ -414,6 +450,8 @@ class ChunkGroup {
|
|
|
414
450
|
}
|
|
415
451
|
|
|
416
452
|
/**
|
|
453
|
+
* Records where this chunk group originated from in user code.
|
|
454
|
+
* The origin is used for diagnostics, ordering, and reporting.
|
|
417
455
|
* @param {Module | null} module origin module
|
|
418
456
|
* @param {DependencyLocation} loc location of the reference in the origin module
|
|
419
457
|
* @param {string} request request name of the reference
|
|
@@ -428,6 +466,7 @@ class ChunkGroup {
|
|
|
428
466
|
}
|
|
429
467
|
|
|
430
468
|
/**
|
|
469
|
+
* Collects the emitted files produced by every chunk in the group.
|
|
431
470
|
* @returns {string[]} the files contained this chunk group
|
|
432
471
|
*/
|
|
433
472
|
getFiles() {
|
|
@@ -444,6 +483,9 @@ class ChunkGroup {
|
|
|
444
483
|
}
|
|
445
484
|
|
|
446
485
|
/**
|
|
486
|
+
* Disconnects this group from its parents, children, and chunks.
|
|
487
|
+
* Child groups are reconnected to this group's parents so the surrounding
|
|
488
|
+
* graph remains intact after removal.
|
|
447
489
|
* @returns {void}
|
|
448
490
|
*/
|
|
449
491
|
remove() {
|
|
@@ -503,6 +545,8 @@ class ChunkGroup {
|
|
|
503
545
|
}
|
|
504
546
|
|
|
505
547
|
/**
|
|
548
|
+
* Groups child chunk groups by their `*Order` options and sorts each group
|
|
549
|
+
* by descending order and deterministic chunk-group comparison.
|
|
506
550
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
507
551
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
508
552
|
* @returns {Record<string, ChunkGroup[]>} mapping from children type to ordered list of ChunkGroups
|
|
@@ -543,7 +587,7 @@ class ChunkGroup {
|
|
|
543
587
|
}
|
|
544
588
|
|
|
545
589
|
/**
|
|
546
|
-
*
|
|
590
|
+
* Stores the module's top-down traversal index within this group.
|
|
547
591
|
* @param {Module} module module for which the index should be set
|
|
548
592
|
* @param {number} index the index of the module
|
|
549
593
|
* @returns {void}
|
|
@@ -553,7 +597,7 @@ class ChunkGroup {
|
|
|
553
597
|
}
|
|
554
598
|
|
|
555
599
|
/**
|
|
556
|
-
*
|
|
600
|
+
* Returns the module's top-down traversal index within this group.
|
|
557
601
|
* @param {Module} module the module
|
|
558
602
|
* @returns {number | undefined} index
|
|
559
603
|
*/
|
|
@@ -562,7 +606,7 @@ class ChunkGroup {
|
|
|
562
606
|
}
|
|
563
607
|
|
|
564
608
|
/**
|
|
565
|
-
*
|
|
609
|
+
* Stores the module's bottom-up traversal index within this group.
|
|
566
610
|
* @param {Module} module module for which the index should be set
|
|
567
611
|
* @param {number} index the index of the module
|
|
568
612
|
* @returns {void}
|
|
@@ -572,7 +616,7 @@ class ChunkGroup {
|
|
|
572
616
|
}
|
|
573
617
|
|
|
574
618
|
/**
|
|
575
|
-
*
|
|
619
|
+
* Returns the module's bottom-up traversal index within this group.
|
|
576
620
|
* @param {Module} module the module
|
|
577
621
|
* @returns {number | undefined} index
|
|
578
622
|
*/
|
package/lib/ChunkTemplate.js
CHANGED
|
@@ -20,6 +20,7 @@ const memoize = require("./util/memoize");
|
|
|
20
20
|
/** @typedef {import("./ModuleTemplate")} ModuleTemplate */
|
|
21
21
|
/** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
|
|
22
22
|
/**
|
|
23
|
+
* Defines the if set type used by this module.
|
|
23
24
|
* @template T
|
|
24
25
|
* @typedef {import("tapable").IfSet<T>} IfSet
|
|
25
26
|
*/
|
|
@@ -31,6 +32,7 @@ const getJavascriptModulesPlugin = memoize(() =>
|
|
|
31
32
|
// TODO webpack 6 remove this class
|
|
32
33
|
class ChunkTemplate {
|
|
33
34
|
/**
|
|
35
|
+
* Creates an instance of ChunkTemplate.
|
|
34
36
|
* @param {OutputOptions} outputOptions output options
|
|
35
37
|
* @param {Compilation} compilation the compilation
|
|
36
38
|
*/
|
|
@@ -40,6 +42,7 @@ class ChunkTemplate {
|
|
|
40
42
|
renderManifest: {
|
|
41
43
|
tap: util.deprecate(
|
|
42
44
|
/**
|
|
45
|
+
* Handles the callback logic for this hook.
|
|
43
46
|
* @template AdditionalOptions
|
|
44
47
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
45
48
|
* @param {(renderManifestEntries: RenderManifestEntry[], renderManifestOptions: RenderManifestOptions) => RenderManifestEntry[]} fn function
|
|
@@ -60,6 +63,7 @@ class ChunkTemplate {
|
|
|
60
63
|
modules: {
|
|
61
64
|
tap: util.deprecate(
|
|
62
65
|
/**
|
|
66
|
+
* Handles the callback logic for this hook.
|
|
63
67
|
* @template AdditionalOptions
|
|
64
68
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
65
69
|
* @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
|
|
@@ -82,6 +86,7 @@ class ChunkTemplate {
|
|
|
82
86
|
render: {
|
|
83
87
|
tap: util.deprecate(
|
|
84
88
|
/**
|
|
89
|
+
* Handles the callback logic for this hook.
|
|
85
90
|
* @template AdditionalOptions
|
|
86
91
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
87
92
|
* @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
|
|
@@ -104,6 +109,7 @@ class ChunkTemplate {
|
|
|
104
109
|
renderWithEntry: {
|
|
105
110
|
tap: util.deprecate(
|
|
106
111
|
/**
|
|
112
|
+
* Handles the callback logic for this hook.
|
|
107
113
|
* @template AdditionalOptions
|
|
108
114
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
109
115
|
* @param {(source: Source, chunk: Chunk) => Source} fn function
|
|
@@ -130,6 +136,7 @@ class ChunkTemplate {
|
|
|
130
136
|
hash: {
|
|
131
137
|
tap: util.deprecate(
|
|
132
138
|
/**
|
|
139
|
+
* Handles the callback logic for this hook.
|
|
133
140
|
* @template AdditionalOptions
|
|
134
141
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
135
142
|
* @param {(hash: Hash) => void} fn function
|
|
@@ -144,6 +151,7 @@ class ChunkTemplate {
|
|
|
144
151
|
hashForChunk: {
|
|
145
152
|
tap: util.deprecate(
|
|
146
153
|
/**
|
|
154
|
+
* Handles the callback logic for this hook.
|
|
147
155
|
* @template AdditionalOptions
|
|
148
156
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
149
157
|
* @param {(hash: Hash, chunk: Chunk, chunkHashContext: ChunkHashContext) => void} fn function
|
|
@@ -167,6 +175,7 @@ class ChunkTemplate {
|
|
|
167
175
|
Object.defineProperty(ChunkTemplate.prototype, "outputOptions", {
|
|
168
176
|
get: util.deprecate(
|
|
169
177
|
/**
|
|
178
|
+
* Returns output options.
|
|
170
179
|
* @this {ChunkTemplate}
|
|
171
180
|
* @returns {OutputOptions} output options
|
|
172
181
|
*/
|
package/lib/CleanPlugin.js
CHANGED
|
@@ -22,11 +22,13 @@ const processAsyncTree = require("./util/processAsyncTree");
|
|
|
22
22
|
/** @typedef {Map<string, number>} Assets */
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
+
* Defines the clean plugin compilation hooks type used by this module.
|
|
25
26
|
* @typedef {object} CleanPluginCompilationHooks
|
|
26
27
|
* @property {SyncBailHook<[string], boolean | void>} keep when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config
|
|
27
28
|
*/
|
|
28
29
|
|
|
29
30
|
/**
|
|
31
|
+
* Defines the keep fn callback.
|
|
30
32
|
* @callback KeepFn
|
|
31
33
|
* @param {string} path path
|
|
32
34
|
* @returns {boolean | undefined} true, if the path should be kept
|
|
@@ -50,6 +52,7 @@ const mergeAssets = (as1, as2) => {
|
|
|
50
52
|
/** @typedef {Map<string, number>} CurrentAssets */
|
|
51
53
|
|
|
52
54
|
/**
|
|
55
|
+
* Returns set of directory paths.
|
|
53
56
|
* @param {CurrentAssets} assets current assets
|
|
54
57
|
* @returns {Set<string>} Set of directory paths
|
|
55
58
|
*/
|
|
@@ -57,6 +60,7 @@ function getDirectories(assets) {
|
|
|
57
60
|
/** @type {Set<string>} */
|
|
58
61
|
const directories = new Set();
|
|
59
62
|
/**
|
|
63
|
+
* Adds the provided filename to this object.
|
|
60
64
|
* @param {string} filename asset filename
|
|
61
65
|
*/
|
|
62
66
|
const addDirectory = (filename) => {
|
|
@@ -77,6 +81,7 @@ function getDirectories(assets) {
|
|
|
77
81
|
/** @typedef {Set<string>} Diff */
|
|
78
82
|
|
|
79
83
|
/**
|
|
84
|
+
* Returns diff to fs.
|
|
80
85
|
* @param {OutputFileSystem} fs filesystem
|
|
81
86
|
* @param {string} outputPath output path
|
|
82
87
|
* @param {CurrentAssets} currentAssets filename of the current assets (must not start with .. or ., must only use / as path separator)
|
|
@@ -123,6 +128,7 @@ const getDiffToFs = (fs, outputPath, currentAssets, callback) => {
|
|
|
123
128
|
};
|
|
124
129
|
|
|
125
130
|
/**
|
|
131
|
+
* Gets diff to old assets.
|
|
126
132
|
* @param {Assets} currentAssets assets list
|
|
127
133
|
* @param {Assets} oldAssets old assets list
|
|
128
134
|
* @returns {Diff} diff
|
|
@@ -139,6 +145,7 @@ const getDiffToOldAssets = (currentAssets, oldAssets) => {
|
|
|
139
145
|
};
|
|
140
146
|
|
|
141
147
|
/**
|
|
148
|
+
* Processes the provided f.
|
|
142
149
|
* @param {OutputFileSystem} fs filesystem
|
|
143
150
|
* @param {string} filename path to file
|
|
144
151
|
* @param {StatsCallback} callback callback for provided filename
|
|
@@ -154,6 +161,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
154
161
|
};
|
|
155
162
|
|
|
156
163
|
/**
|
|
164
|
+
* Processes the provided f.
|
|
157
165
|
* @param {OutputFileSystem} fs filesystem
|
|
158
166
|
* @param {string} outputPath output path
|
|
159
167
|
* @param {boolean} dry only log instead of fs modification
|
|
@@ -165,6 +173,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
165
173
|
*/
|
|
166
174
|
const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
167
175
|
/**
|
|
176
|
+
* Processes the provided msg.
|
|
168
177
|
* @param {string} msg message
|
|
169
178
|
*/
|
|
170
179
|
const log = (msg) => {
|
|
@@ -189,6 +198,7 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
|
189
198
|
({ type, filename, parent }, push, callback) => {
|
|
190
199
|
const path = join(fs, outputPath, filename);
|
|
191
200
|
/**
|
|
201
|
+
* Describes how this handle error operation behaves.
|
|
192
202
|
* @param {Error & { code?: string }} err error
|
|
193
203
|
* @returns {void}
|
|
194
204
|
*/
|
|
@@ -331,6 +341,7 @@ const PLUGIN_NAME = "CleanPlugin";
|
|
|
331
341
|
|
|
332
342
|
class CleanPlugin {
|
|
333
343
|
/**
|
|
344
|
+
* Returns the attached hooks.
|
|
334
345
|
* @param {Compilation} compilation the compilation
|
|
335
346
|
* @returns {CleanPluginCompilationHooks} the attached hooks
|
|
336
347
|
*/
|
|
@@ -357,7 +368,7 @@ class CleanPlugin {
|
|
|
357
368
|
}
|
|
358
369
|
|
|
359
370
|
/**
|
|
360
|
-
*
|
|
371
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
361
372
|
* @param {Compiler} compiler the compiler instance
|
|
362
373
|
* @returns {void}
|
|
363
374
|
*/
|
|
@@ -445,6 +456,7 @@ class CleanPlugin {
|
|
|
445
456
|
const outputPath = compilation.getPath(compiler.outputPath, {});
|
|
446
457
|
|
|
447
458
|
/**
|
|
459
|
+
* Checks whether this clean plugin is kept.
|
|
448
460
|
* @param {string} path path
|
|
449
461
|
* @returns {boolean | undefined} true, if needs to be kept
|
|
450
462
|
*/
|
|
@@ -455,6 +467,7 @@ class CleanPlugin {
|
|
|
455
467
|
};
|
|
456
468
|
|
|
457
469
|
/**
|
|
470
|
+
* Processes the provided err.
|
|
458
471
|
* @param {(Error | null)=} err err
|
|
459
472
|
* @param {Diff=} diff diff
|
|
460
473
|
*/
|
|
@@ -20,8 +20,14 @@ const { RuntimeSpecMap, runtimeToString } = require("./util/runtime");
|
|
|
20
20
|
/** @typedef {import("./util/Hash").HashFunction} HashFunction */
|
|
21
21
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Stores code generation results keyed by module and runtime so later stages
|
|
25
|
+
* can retrieve emitted sources, metadata, and derived hashes.
|
|
26
|
+
*/
|
|
23
27
|
class CodeGenerationResults {
|
|
24
28
|
/**
|
|
29
|
+
* Initializes an empty result store and remembers which hash function should
|
|
30
|
+
* be used when a result hash needs to be derived lazily.
|
|
25
31
|
* @param {HashFunction} hashFunction the hash function to use
|
|
26
32
|
*/
|
|
27
33
|
constructor(hashFunction = DEFAULTS.HASH_FUNCTION) {
|
|
@@ -32,6 +38,8 @@ class CodeGenerationResults {
|
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
/**
|
|
41
|
+
* Returns the code generation result for a module/runtime pair, rejecting
|
|
42
|
+
* ambiguous lookups where no unique runtime-independent result exists.
|
|
35
43
|
* @param {Module} module the module
|
|
36
44
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
37
45
|
* @returns {CodeGenerationResult} the CodeGenerationResult
|
|
@@ -77,6 +85,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
/**
|
|
88
|
+
* Reports whether a module has a stored result for the requested runtime, or
|
|
89
|
+
* a single unambiguous result when no runtime is specified.
|
|
80
90
|
* @param {Module} module the module
|
|
81
91
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
82
92
|
* @returns {boolean} true, when we have data for this
|
|
@@ -96,6 +106,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
96
106
|
}
|
|
97
107
|
|
|
98
108
|
/**
|
|
109
|
+
* Returns a generated source of the requested source type from a stored code
|
|
110
|
+
* generation result.
|
|
99
111
|
* @param {Module} module the module
|
|
100
112
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
101
113
|
* @param {SourceType} sourceType the source type
|
|
@@ -108,6 +120,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
108
120
|
}
|
|
109
121
|
|
|
110
122
|
/**
|
|
123
|
+
* Returns the runtime requirements captured during code generation for the
|
|
124
|
+
* requested module/runtime pair.
|
|
111
125
|
* @param {Module} module the module
|
|
112
126
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
113
127
|
* @returns {ReadOnlyRuntimeRequirements | null} runtime requirements
|
|
@@ -117,6 +131,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
117
131
|
}
|
|
118
132
|
|
|
119
133
|
/**
|
|
134
|
+
* Returns an arbitrary metadata entry recorded during code generation.
|
|
120
135
|
* @param {Module} module the module
|
|
121
136
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
122
137
|
* @param {string} key data key
|
|
@@ -128,6 +143,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
128
143
|
}
|
|
129
144
|
|
|
130
145
|
/**
|
|
146
|
+
* Returns a stable hash for the generated sources and runtime requirements,
|
|
147
|
+
* computing and caching it on first access.
|
|
131
148
|
* @param {Module} module the module
|
|
132
149
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
133
150
|
* @returns {string} hash of the code generation
|
|
@@ -147,6 +164,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
147
164
|
}
|
|
148
165
|
|
|
149
166
|
/**
|
|
167
|
+
* Stores a code generation result for a module/runtime pair, creating the
|
|
168
|
+
* per-module runtime map when needed.
|
|
150
169
|
* @param {Module} module the module
|
|
151
170
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
152
171
|
* @param {CodeGenerationResult} result result from module
|
|
@@ -10,8 +10,14 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Warning used for comment-related compilation issues, such as malformed magic
|
|
15
|
+
* comments that webpack can parse but wants to report.
|
|
16
|
+
*/
|
|
13
17
|
class CommentCompilationWarning extends WebpackError {
|
|
14
18
|
/**
|
|
19
|
+
* Captures a warning message together with the dependency location that
|
|
20
|
+
* triggered it.
|
|
15
21
|
* @param {string} message warning message
|
|
16
22
|
* @param {DependencyLocation} loc affected lines of code
|
|
17
23
|
*/
|
|
@@ -21,6 +21,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
21
21
|
/** @typedef {import("./javascript/JavascriptParser").Range} Range */
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
+
* Captures the source range of a renamed compatibility binding so it can be
|
|
25
|
+
* rewritten exactly once.
|
|
24
26
|
* @typedef {object} CompatibilitySettingsDeclaration
|
|
25
27
|
* @property {boolean} updated
|
|
26
28
|
* @property {DependencyLocation} loc
|
|
@@ -28,6 +30,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
28
30
|
*/
|
|
29
31
|
|
|
30
32
|
/**
|
|
33
|
+
* Stores the replacement variable name and the declaration metadata tracked
|
|
34
|
+
* for a compatibility rewrite.
|
|
31
35
|
* @typedef {object} CompatibilitySettings
|
|
32
36
|
* @property {string} name
|
|
33
37
|
* @property {CompatibilitySettingsDeclaration} declaration
|
|
@@ -36,9 +40,14 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
36
40
|
const nestedWebpackIdentifierTag = Symbol("nested webpack identifier");
|
|
37
41
|
const PLUGIN_NAME = "CompatibilityPlugin";
|
|
38
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Adds parser-time compatibility rewrites for legacy runtime patterns that
|
|
45
|
+
* webpack still needs to recognize in user and generated code.
|
|
46
|
+
*/
|
|
39
47
|
class CompatibilityPlugin {
|
|
40
48
|
/**
|
|
41
|
-
*
|
|
49
|
+
* Installs parser hooks that preserve compatibility with legacy patterns
|
|
50
|
+
* such as nested `__webpack_require__` bindings and hashbang handling.
|
|
42
51
|
* @param {Compiler} compiler the compiler instance
|
|
43
52
|
* @returns {void}
|
|
44
53
|
*/
|
|
@@ -64,6 +73,9 @@ class CompatibilityPlugin {
|
|
|
64
73
|
parser.hooks.call.for("require").tap(
|
|
65
74
|
PLUGIN_NAME,
|
|
66
75
|
/**
|
|
76
|
+
* Rewrites browserify-style delegated `require` calls into a
|
|
77
|
+
* plain webpack require reference and removes the synthetic
|
|
78
|
+
* context dependency created for the delegator pattern.
|
|
67
79
|
* @param {CallExpression} expr call expression
|
|
68
80
|
* @returns {boolean | void} true when need to handle
|
|
69
81
|
*/
|
|
@@ -103,6 +115,8 @@ class CompatibilityPlugin {
|
|
|
103
115
|
});
|
|
104
116
|
|
|
105
117
|
/**
|
|
118
|
+
* Attaches the compatibility rewrites for a JavaScript parser
|
|
119
|
+
* instance.
|
|
106
120
|
* @param {JavascriptParser} parser the parser
|
|
107
121
|
* @returns {void}
|
|
108
122
|
*/
|