webpack 5.106.1 → 5.107.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 +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- 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/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- 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 +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- 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 +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- 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 +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -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 +101 -19
- package/lib/ModuleFactory.js +6 -1
- 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/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +158 -68
- 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/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -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/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- 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 +19 -6
- 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 +33 -4
- 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 +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- 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 +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- 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 +14 -1
- 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 +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- 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 +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -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 +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- 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 +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -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 +4 -1
- 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 +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- 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 +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- 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 +5 -2
- 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 +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- 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/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/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -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 +22 -1
- 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 +39 -15
- 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 +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- 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 +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -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 +7 -3
- 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 +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- 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 +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- 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 +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- 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 +5 -1
- 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 +10 -3
- 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 +121 -13
- 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/SetAnonymousDefaultNameRuntimeModule.js +35 -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 +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- 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 +14 -2
- 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 +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- 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 +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -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 +7 -1
- 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 +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -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/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- 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/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- 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 +41 -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 +23 -0
- package/lib/util/topologicalSort.js +69 -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 +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- 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 +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -14,6 +14,7 @@ const {
|
|
|
14
14
|
ReplaceSource
|
|
15
15
|
} = require("webpack-sources");
|
|
16
16
|
const ConcatenationScope = require("../ConcatenationScope");
|
|
17
|
+
const Dependency = require("../Dependency");
|
|
17
18
|
const { UsageState } = require("../ExportsInfo");
|
|
18
19
|
const Module = require("../Module");
|
|
19
20
|
const {
|
|
@@ -24,7 +25,6 @@ const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants");
|
|
|
24
25
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
25
26
|
const Template = require("../Template");
|
|
26
27
|
const { DEFAULTS } = require("../config/defaults");
|
|
27
|
-
const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
|
|
28
28
|
const { ImportPhaseUtils } = require("../dependencies/ImportPhase");
|
|
29
29
|
const JavascriptParser = require("../javascript/JavascriptParser");
|
|
30
30
|
const {
|
|
@@ -55,15 +55,14 @@ const {
|
|
|
55
55
|
subtractRuntimeCondition
|
|
56
56
|
} = require("../util/runtime");
|
|
57
57
|
|
|
58
|
-
/** @typedef {import("eslint-scope").Reference} Reference */
|
|
59
|
-
/** @typedef {import("eslint-scope").Scope} Scope */
|
|
60
|
-
/** @typedef {import("eslint-scope").Variable} Variable */
|
|
61
58
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
62
59
|
/** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
|
|
63
60
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
64
61
|
/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
|
|
65
62
|
/** @typedef {import("../Compilation")} Compilation */
|
|
66
63
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
64
|
+
/** @typedef {import("../dependencies/ModuleDependency")} ModuleDependency */
|
|
65
|
+
/** @typedef {import("../dependencies/HarmonyImportDependency")} HarmonyImportDependency */
|
|
67
66
|
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
|
|
68
67
|
/** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */
|
|
69
68
|
/** @typedef {import("../Module").BuildCallback} BuildCallback */
|
|
@@ -86,6 +85,9 @@ const {
|
|
|
86
85
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
87
86
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
|
88
87
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
|
88
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Scope} Scope */
|
|
89
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Reference} Reference */
|
|
90
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Variable} Variable */
|
|
89
91
|
/** @typedef {import("../javascript/JavascriptParser").Program} Program */
|
|
90
92
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
91
93
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
@@ -362,6 +364,20 @@ const getFinalBinding = (
|
|
|
362
364
|
switch (exportName[0]) {
|
|
363
365
|
case "default":
|
|
364
366
|
exportName = exportName.slice(1);
|
|
367
|
+
if (deferred) {
|
|
368
|
+
// `ns.default` for a deferred default-with-named external
|
|
369
|
+
// module must read through the optimized `.a` getter
|
|
370
|
+
// (which lazily evaluates the module and returns its
|
|
371
|
+
// exports), not the proxy namespace itself — otherwise
|
|
372
|
+
// `typeof ns.default` / `ns.default instanceof X`
|
|
373
|
+
// observe the proxy instead of the actual default.
|
|
374
|
+
return {
|
|
375
|
+
info,
|
|
376
|
+
rawName: `${info.deferredName}.a`,
|
|
377
|
+
ids: exportName,
|
|
378
|
+
exportName
|
|
379
|
+
};
|
|
380
|
+
}
|
|
365
381
|
break;
|
|
366
382
|
case "__esModule":
|
|
367
383
|
return {
|
|
@@ -392,6 +408,18 @@ const getFinalBinding = (
|
|
|
392
408
|
exportName
|
|
393
409
|
};
|
|
394
410
|
}
|
|
411
|
+
if (deferred) {
|
|
412
|
+
// As with default-with-named above, `ns.default` for a
|
|
413
|
+
// deferred default-only external must read through the
|
|
414
|
+
// optimized `.a` getter so that `typeof` / `instanceof`
|
|
415
|
+
// observe the actual default value rather than the proxy.
|
|
416
|
+
return {
|
|
417
|
+
info,
|
|
418
|
+
rawName: `${info.deferredName}.a`,
|
|
419
|
+
ids: exportName,
|
|
420
|
+
exportName
|
|
421
|
+
};
|
|
422
|
+
}
|
|
395
423
|
break;
|
|
396
424
|
}
|
|
397
425
|
case "dynamic":
|
|
@@ -795,6 +823,7 @@ class ConcatenatedModule extends Module {
|
|
|
795
823
|
}
|
|
796
824
|
|
|
797
825
|
/**
|
|
826
|
+
* Returns the source types this module can generate.
|
|
798
827
|
* @returns {SourceTypes} types available (do not mutate)
|
|
799
828
|
*/
|
|
800
829
|
getSourceTypes() {
|
|
@@ -806,6 +835,7 @@ class ConcatenatedModule extends Module {
|
|
|
806
835
|
}
|
|
807
836
|
|
|
808
837
|
/**
|
|
838
|
+
* Returns the unique identifier used to reference this module.
|
|
809
839
|
* @returns {string} a unique identifier of the module
|
|
810
840
|
*/
|
|
811
841
|
identifier() {
|
|
@@ -813,6 +843,7 @@ class ConcatenatedModule extends Module {
|
|
|
813
843
|
}
|
|
814
844
|
|
|
815
845
|
/**
|
|
846
|
+
* Returns a human-readable identifier for this module.
|
|
816
847
|
* @param {RequestShortener} requestShortener the request shortener
|
|
817
848
|
* @returns {string} a user readable identifier of the module
|
|
818
849
|
*/
|
|
@@ -823,6 +854,7 @@ class ConcatenatedModule extends Module {
|
|
|
823
854
|
}
|
|
824
855
|
|
|
825
856
|
/**
|
|
857
|
+
* Gets the library identifier.
|
|
826
858
|
* @param {LibIdentOptions} options options
|
|
827
859
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
828
860
|
*/
|
|
@@ -831,6 +863,7 @@ class ConcatenatedModule extends Module {
|
|
|
831
863
|
}
|
|
832
864
|
|
|
833
865
|
/**
|
|
866
|
+
* Returns the path used when matching this module against rule conditions.
|
|
834
867
|
* @returns {NameForCondition | null} absolute path which should be used for condition matching (usually the resource path)
|
|
835
868
|
*/
|
|
836
869
|
nameForCondition() {
|
|
@@ -838,6 +871,7 @@ class ConcatenatedModule extends Module {
|
|
|
838
871
|
}
|
|
839
872
|
|
|
840
873
|
/**
|
|
874
|
+
* Gets side effects connection state.
|
|
841
875
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
842
876
|
* @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
|
|
843
877
|
*/
|
|
@@ -846,6 +880,7 @@ class ConcatenatedModule extends Module {
|
|
|
846
880
|
}
|
|
847
881
|
|
|
848
882
|
/**
|
|
883
|
+
* Builds the module using the provided compilation context.
|
|
849
884
|
* @param {WebpackOptions} options webpack options
|
|
850
885
|
* @param {Compilation} compilation the compilation
|
|
851
886
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -883,7 +918,7 @@ class ConcatenatedModule extends Module {
|
|
|
883
918
|
// populate dependencies
|
|
884
919
|
for (const d of m.dependencies.filter(
|
|
885
920
|
(dep) =>
|
|
886
|
-
!(dep
|
|
921
|
+
!Dependency.canConcatenate(dep) ||
|
|
887
922
|
!this._modules.has(
|
|
888
923
|
/** @type {Module} */
|
|
889
924
|
(compilation.moduleGraph.getModule(dep))
|
|
@@ -891,6 +926,20 @@ class ConcatenatedModule extends Module {
|
|
|
891
926
|
)) {
|
|
892
927
|
this.dependencies.push(d);
|
|
893
928
|
}
|
|
929
|
+
// populate codeGenerationDependencies — the inner modules'
|
|
930
|
+
// templates are applied during ConcatenatedModule.codeGeneration,
|
|
931
|
+
// so the referenced modules must have been code-generated by then.
|
|
932
|
+
// Skip references that point back into the concat set itself.
|
|
933
|
+
if (m.codeGenerationDependencies !== undefined) {
|
|
934
|
+
for (const d of m.codeGenerationDependencies) {
|
|
935
|
+
const referenced =
|
|
936
|
+
/** @type {Module} */
|
|
937
|
+
(compilation.moduleGraph.getModule(d));
|
|
938
|
+
if (!this._modules.has(referenced)) {
|
|
939
|
+
this.addCodeGenerationDependency(d);
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
}
|
|
894
943
|
// populate blocks
|
|
895
944
|
for (const d of m.blocks) {
|
|
896
945
|
this.blocks.push(d);
|
|
@@ -958,6 +1007,7 @@ class ConcatenatedModule extends Module {
|
|
|
958
1007
|
}
|
|
959
1008
|
|
|
960
1009
|
/**
|
|
1010
|
+
* Returns the estimated size for the requested source type.
|
|
961
1011
|
* @param {string=} type the source type for which the size should be estimated
|
|
962
1012
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
963
1013
|
*/
|
|
@@ -1000,7 +1050,10 @@ class ConcatenatedModule extends Module {
|
|
|
1000
1050
|
*/
|
|
1001
1051
|
const references = connections
|
|
1002
1052
|
.filter((connection) => {
|
|
1003
|
-
if (
|
|
1053
|
+
if (
|
|
1054
|
+
!connection.dependency ||
|
|
1055
|
+
!Dependency.canConcatenate(connection.dependency)
|
|
1056
|
+
) {
|
|
1004
1057
|
return false;
|
|
1005
1058
|
}
|
|
1006
1059
|
if (
|
|
@@ -1243,6 +1296,7 @@ class ConcatenatedModule extends Module {
|
|
|
1243
1296
|
}
|
|
1244
1297
|
|
|
1245
1298
|
/**
|
|
1299
|
+
* Adds the provided file dependencies to the module.
|
|
1246
1300
|
* @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
|
|
1247
1301
|
* @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
|
|
1248
1302
|
* @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
|
|
@@ -1265,6 +1319,7 @@ class ConcatenatedModule extends Module {
|
|
|
1265
1319
|
}
|
|
1266
1320
|
|
|
1267
1321
|
/**
|
|
1322
|
+
* Generates code and runtime requirements for this module.
|
|
1268
1323
|
* @param {CodeGenerationContext} context context for code generation
|
|
1269
1324
|
* @returns {CodeGenerationResult} result
|
|
1270
1325
|
*/
|
|
@@ -2244,6 +2299,7 @@ ${defineGetters}`
|
|
|
2244
2299
|
}
|
|
2245
2300
|
|
|
2246
2301
|
/**
|
|
2302
|
+
* Updates the hash with the data contributed by this instance.
|
|
2247
2303
|
* @param {Hash} hash the hash used to track dependencies
|
|
2248
2304
|
* @param {UpdateHashContext} context context
|
|
2249
2305
|
* @returns {void}
|
|
@@ -15,13 +15,14 @@ const PLUGIN_NAME = "EnsureChunkConditionsPlugin";
|
|
|
15
15
|
|
|
16
16
|
class EnsureChunkConditionsPlugin {
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
19
19
|
* @param {Compiler} compiler the compiler instance
|
|
20
20
|
* @returns {void}
|
|
21
21
|
*/
|
|
22
22
|
apply(compiler) {
|
|
23
23
|
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
|
|
24
24
|
/**
|
|
25
|
+
* Handles the hook callback for this code path.
|
|
25
26
|
* @param {Iterable<Chunk>} chunks the chunks
|
|
26
27
|
*/
|
|
27
28
|
const handler = (chunks) => {
|
|
@@ -16,7 +16,7 @@ const PLUGIN_NAME = "FlagIncludedChunksPlugin";
|
|
|
16
16
|
|
|
17
17
|
class FlagIncludedChunksPlugin {
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
20
20
|
* @param {Compiler} compiler the compiler instance
|
|
21
21
|
* @returns {void}
|
|
22
22
|
*/
|
|
@@ -46,6 +46,7 @@ class FlagIncludedChunksPlugin {
|
|
|
46
46
|
const modulos = Array.from(
|
|
47
47
|
{ length: 31 },
|
|
48
48
|
/**
|
|
49
|
+
* Handles the callback logic for this hook.
|
|
49
50
|
* @param {number} x x
|
|
50
51
|
* @param {number} i i
|
|
51
52
|
* @returns {number} result
|
|
@@ -22,6 +22,7 @@ const JavascriptParser = require("../javascript/JavascriptParser");
|
|
|
22
22
|
/** @typedef {(value: boolean | Set<string> | undefined) => void} UsageCallback */
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
+
* Defines the state object type used by this module.
|
|
25
26
|
* @typedef {object} StateObject
|
|
26
27
|
* @property {InnerGraph} innerGraph
|
|
27
28
|
* @property {TopLevelSymbol=} currentTopLevelSymbol
|
|
@@ -32,6 +33,7 @@ const JavascriptParser = require("../javascript/JavascriptParser");
|
|
|
32
33
|
|
|
33
34
|
class TopLevelSymbol {
|
|
34
35
|
/**
|
|
36
|
+
* Creates an instance of TopLevelSymbol.
|
|
35
37
|
* @param {string} name name of the variable
|
|
36
38
|
*/
|
|
37
39
|
constructor(name) {
|
|
@@ -47,6 +49,7 @@ const parserStateMap = new WeakMap();
|
|
|
47
49
|
const topLevelSymbolTag = Symbol("top level symbol");
|
|
48
50
|
|
|
49
51
|
/**
|
|
52
|
+
* Returns state.
|
|
50
53
|
* @param {ParserState} parserState parser state
|
|
51
54
|
* @returns {State | undefined} state
|
|
52
55
|
*/
|
|
@@ -55,6 +58,7 @@ function getState(parserState) {
|
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
/**
|
|
61
|
+
* Processes the provided state.
|
|
58
62
|
* @param {ParserState} state parser state
|
|
59
63
|
* @param {TopLevelSymbol | null} symbol the symbol, or null for all symbols
|
|
60
64
|
* @param {Usage} usage usage data
|
|
@@ -79,6 +83,7 @@ module.exports.addUsage = (state, symbol, usage) => {
|
|
|
79
83
|
/** @typedef {string | TopLevelSymbol | true} Usage */
|
|
80
84
|
|
|
81
85
|
/**
|
|
86
|
+
* Processes the provided parser.
|
|
82
87
|
* @param {JavascriptParser} parser the parser
|
|
83
88
|
* @param {string} name name of variable
|
|
84
89
|
* @param {Usage} usage usage data
|
|
@@ -95,6 +100,7 @@ module.exports.addVariableUsage = (parser, name, usage) => {
|
|
|
95
100
|
};
|
|
96
101
|
|
|
97
102
|
/**
|
|
103
|
+
* Processes the provided parser state.
|
|
98
104
|
* @param {ParserState} parserState parser state
|
|
99
105
|
* @returns {void}
|
|
100
106
|
*/
|
|
@@ -103,6 +109,7 @@ module.exports.bailout = (parserState) => {
|
|
|
103
109
|
};
|
|
104
110
|
|
|
105
111
|
/**
|
|
112
|
+
* Processes the provided parser state.
|
|
106
113
|
* @param {ParserState} parserState parser state
|
|
107
114
|
* @returns {void}
|
|
108
115
|
*/
|
|
@@ -121,6 +128,7 @@ module.exports.enable = (parserState) => {
|
|
|
121
128
|
/** @typedef {Set<string> | boolean} UsedByExports */
|
|
122
129
|
|
|
123
130
|
/**
|
|
131
|
+
* Usage callback map.
|
|
124
132
|
* @param {Dependency} dependency the dependency
|
|
125
133
|
* @param {UsedByExports | undefined} usedByExports usedByExports info
|
|
126
134
|
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
@@ -137,7 +145,7 @@ module.exports.getDependencyUsedByExportsCondition = (
|
|
|
137
145
|
/** @type {Module} */
|
|
138
146
|
(moduleGraph.getParentModule(dependency));
|
|
139
147
|
const exportsInfo = moduleGraph.getExportsInfo(selfModule);
|
|
140
|
-
return (
|
|
148
|
+
return (_connections, runtime) => {
|
|
141
149
|
for (const exportName of usedByExports) {
|
|
142
150
|
if (exportsInfo.getUsed(exportName, runtime) !== UsageState.Unused) {
|
|
143
151
|
return true;
|
|
@@ -150,6 +158,7 @@ module.exports.getDependencyUsedByExportsCondition = (
|
|
|
150
158
|
};
|
|
151
159
|
|
|
152
160
|
/**
|
|
161
|
+
* Returns usage data.
|
|
153
162
|
* @param {ParserState} state parser state
|
|
154
163
|
* @returns {TopLevelSymbol | void} usage data
|
|
155
164
|
*/
|
|
@@ -162,6 +171,7 @@ module.exports.getTopLevelSymbol = (state) => {
|
|
|
162
171
|
};
|
|
163
172
|
|
|
164
173
|
/**
|
|
174
|
+
* Processes the provided state.
|
|
165
175
|
* @param {ParserState} state parser state
|
|
166
176
|
* @returns {void}
|
|
167
177
|
*/
|
|
@@ -260,6 +270,7 @@ module.exports.inferDependencyUsage = (state) => {
|
|
|
260
270
|
};
|
|
261
271
|
|
|
262
272
|
/**
|
|
273
|
+
* Returns false, when unused. Otherwise true.
|
|
263
274
|
* @param {Dependency} dependency the dependency
|
|
264
275
|
* @param {UsedByExports | undefined} usedByExports usedByExports info
|
|
265
276
|
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
@@ -290,6 +301,7 @@ module.exports.isDependencyUsedByExports = (
|
|
|
290
301
|
};
|
|
291
302
|
|
|
292
303
|
/**
|
|
304
|
+
* Returns true, when enabled.
|
|
293
305
|
* @param {ParserState} parserState parser state
|
|
294
306
|
* @returns {boolean} true, when enabled
|
|
295
307
|
*/
|
|
@@ -299,6 +311,7 @@ module.exports.isEnabled = (parserState) => {
|
|
|
299
311
|
};
|
|
300
312
|
|
|
301
313
|
/**
|
|
314
|
+
* Processes the provided state.
|
|
302
315
|
* @param {ParserState} state parser state
|
|
303
316
|
* @param {UsageCallback} onUsageCallback on usage callback
|
|
304
317
|
*/
|
|
@@ -326,6 +339,7 @@ module.exports.onUsage = (state, onUsageCallback) => {
|
|
|
326
339
|
};
|
|
327
340
|
|
|
328
341
|
/**
|
|
342
|
+
* Processes the provided state.
|
|
329
343
|
* @param {ParserState} state parser state
|
|
330
344
|
* @param {TopLevelSymbol | undefined} symbol the symbol
|
|
331
345
|
*/
|
|
@@ -338,6 +352,7 @@ module.exports.setTopLevelSymbol = (state, symbol) => {
|
|
|
338
352
|
};
|
|
339
353
|
|
|
340
354
|
/**
|
|
355
|
+
* Returns symbol.
|
|
341
356
|
* @param {JavascriptParser} parser parser
|
|
342
357
|
* @param {string} name name of variable
|
|
343
358
|
* @returns {TopLevelSymbol | undefined} symbol
|
|
@@ -9,6 +9,7 @@ const {
|
|
|
9
9
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
10
10
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
11
11
|
} = require("../ModuleTypeConstants");
|
|
12
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
12
13
|
const PureExpressionDependency = require("../dependencies/PureExpressionDependency");
|
|
13
14
|
const InnerGraph = require("./InnerGraph");
|
|
14
15
|
|
|
@@ -29,10 +30,11 @@ const InnerGraph = require("./InnerGraph");
|
|
|
29
30
|
const { topLevelSymbolTag } = InnerGraph;
|
|
30
31
|
|
|
31
32
|
const PLUGIN_NAME = "InnerGraphPlugin";
|
|
33
|
+
const impureVariableDeclarationKinds = new Set(["using", "await using"]);
|
|
32
34
|
|
|
33
35
|
class InnerGraphPlugin {
|
|
34
36
|
/**
|
|
35
|
-
*
|
|
37
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
36
38
|
* @param {Compiler} compiler the compiler instance
|
|
37
39
|
* @returns {void}
|
|
38
40
|
*/
|
|
@@ -48,12 +50,14 @@ class InnerGraphPlugin {
|
|
|
48
50
|
);
|
|
49
51
|
|
|
50
52
|
/**
|
|
53
|
+
* Handles the hook callback for this code path.
|
|
51
54
|
* @param {JavascriptParser} parser the parser
|
|
52
55
|
* @param {JavascriptParserOptions} parserOptions options
|
|
53
56
|
* @returns {void}
|
|
54
57
|
*/
|
|
55
58
|
const handler = (parser, parserOptions) => {
|
|
56
59
|
/**
|
|
60
|
+
* Processes the provided sup.
|
|
57
61
|
* @param {Expression} sup sup
|
|
58
62
|
*/
|
|
59
63
|
const onUsageSuper = (sup) => {
|
|
@@ -198,14 +202,22 @@ class InnerGraphPlugin {
|
|
|
198
202
|
}
|
|
199
203
|
});
|
|
200
204
|
|
|
201
|
-
parser.hooks.preDeclarator.tap(PLUGIN_NAME, (decl,
|
|
205
|
+
parser.hooks.preDeclarator.tap(PLUGIN_NAME, (decl, statement) => {
|
|
202
206
|
if (!InnerGraph.isEnabled(parser.state)) return;
|
|
207
|
+
if (impureVariableDeclarationKinds.has(statement.kind)) return;
|
|
203
208
|
if (
|
|
204
209
|
parser.scope.topLevelScope === true &&
|
|
205
210
|
decl.init &&
|
|
206
211
|
decl.id.type === "Identifier"
|
|
207
212
|
) {
|
|
208
213
|
const name = decl.id.name;
|
|
214
|
+
// Skip webpack runtime variables handled by CompatibilityPlugin
|
|
215
|
+
if (
|
|
216
|
+
name === RuntimeGlobals.require ||
|
|
217
|
+
name === RuntimeGlobals.exports
|
|
218
|
+
) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
209
221
|
if (
|
|
210
222
|
decl.init.type === "ClassExpression" &&
|
|
211
223
|
parser.isPure(
|
|
@@ -14,6 +14,7 @@ const { compareChunks } = require("../util/comparators");
|
|
|
14
14
|
/** @typedef {import("../Compiler")} Compiler */
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
+
* Defines the chunk combination type used by this module.
|
|
17
18
|
* @typedef {object} ChunkCombination
|
|
18
19
|
* @property {boolean} deleted this is set to true when combination was removed
|
|
19
20
|
* @property {number} sizeDiff
|
|
@@ -27,6 +28,7 @@ const { compareChunks } = require("../util/comparators");
|
|
|
27
28
|
*/
|
|
28
29
|
|
|
29
30
|
/**
|
|
31
|
+
* Adds the provided map to this object.
|
|
30
32
|
* @template K, V
|
|
31
33
|
* @param {Map<K, Set<V>>} map map
|
|
32
34
|
* @param {K} key key
|
|
@@ -45,6 +47,7 @@ const PLUGIN_NAME = "LimitChunkCountPlugin";
|
|
|
45
47
|
|
|
46
48
|
class LimitChunkCountPlugin {
|
|
47
49
|
/**
|
|
50
|
+
* Creates an instance of LimitChunkCountPlugin.
|
|
48
51
|
* @param {LimitChunkCountPluginOptions=} options options object
|
|
49
52
|
*/
|
|
50
53
|
constructor(options = { maxChunks: 1 }) {
|
|
@@ -53,6 +56,7 @@ class LimitChunkCountPlugin {
|
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
/**
|
|
59
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
56
60
|
* @param {Compiler} compiler the webpack compiler
|
|
57
61
|
* @returns {void}
|
|
58
62
|
*/
|
|
@@ -105,11 +109,13 @@ class LimitChunkCountPlugin {
|
|
|
105
109
|
|
|
106
110
|
// Layer 2: ordered by smallest combined size
|
|
107
111
|
/**
|
|
112
|
+
* Handles the stage callback for this hook.
|
|
108
113
|
* @param {ChunkCombination} c combination
|
|
109
114
|
* @returns {number} integrated size
|
|
110
115
|
*/
|
|
111
116
|
(c) => c.integratedSize,
|
|
112
117
|
/**
|
|
118
|
+
* Handles the callback logic for this hook.
|
|
113
119
|
* @param {number} a a
|
|
114
120
|
* @param {number} b b
|
|
115
121
|
* @returns {number} result
|
|
@@ -118,11 +124,13 @@ class LimitChunkCountPlugin {
|
|
|
118
124
|
|
|
119
125
|
// Layer 3: ordered by position difference in orderedChunk (-> to be deterministic)
|
|
120
126
|
/**
|
|
127
|
+
* Handles the callback logic for this hook.
|
|
121
128
|
* @param {ChunkCombination} c combination
|
|
122
129
|
* @returns {number} position difference
|
|
123
130
|
*/
|
|
124
131
|
(c) => c.bIdx - c.aIdx,
|
|
125
132
|
/**
|
|
133
|
+
* Handles the callback logic for this hook.
|
|
126
134
|
* @param {number} a a
|
|
127
135
|
* @param {number} b b
|
|
128
136
|
* @returns {number} result
|
|
@@ -131,6 +139,7 @@ class LimitChunkCountPlugin {
|
|
|
131
139
|
|
|
132
140
|
// Layer 4: ordered by position in orderedChunk (-> to be deterministic)
|
|
133
141
|
/**
|
|
142
|
+
* Handles the callback logic for this hook.
|
|
134
143
|
* @param {ChunkCombination} a a
|
|
135
144
|
* @param {ChunkCombination} b b
|
|
136
145
|
* @returns {number} result
|
|
@@ -20,11 +20,13 @@ const { compareSelect, compareStringsNumeric } = require("../util/comparators");
|
|
|
20
20
|
/** @typedef {import("../util/concatenate").UsedNames} UsedNames */
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Defines the comparator type used by this module.
|
|
23
24
|
* @template T
|
|
24
25
|
* @typedef {import("../util/comparators").Comparator<T>} Comparator
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
28
|
/**
|
|
29
|
+
* Checks whether it can mangle.
|
|
28
30
|
* @param {ExportsInfo} exportsInfo exports info
|
|
29
31
|
* @returns {boolean} mangle is possible
|
|
30
32
|
*/
|
|
@@ -45,6 +47,7 @@ const canMangle = (exportsInfo) => {
|
|
|
45
47
|
/** @type {Comparator<ExportInfo>} */
|
|
46
48
|
const comparator = compareSelect((e) => e.name, compareStringsNumeric);
|
|
47
49
|
/**
|
|
50
|
+
* Mangle exports info.
|
|
48
51
|
* @param {boolean} deterministic use deterministic names
|
|
49
52
|
* @param {ExportsInfo} exportsInfo exports info
|
|
50
53
|
* @param {boolean | undefined} isNamespace is namespace object
|
|
@@ -158,6 +161,7 @@ const PLUGIN_NAME = "MangleExportsPlugin";
|
|
|
158
161
|
|
|
159
162
|
class MangleExportsPlugin {
|
|
160
163
|
/**
|
|
164
|
+
* Creates an instance of MangleExportsPlugin.
|
|
161
165
|
* @param {boolean} deterministic use deterministic names
|
|
162
166
|
*/
|
|
163
167
|
constructor(deterministic) {
|
|
@@ -166,7 +170,7 @@ class MangleExportsPlugin {
|
|
|
166
170
|
}
|
|
167
171
|
|
|
168
172
|
/**
|
|
169
|
-
*
|
|
173
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
170
174
|
* @param {Compiler} compiler the compiler instance
|
|
171
175
|
* @returns {void}
|
|
172
176
|
*/
|
|
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "MergeDuplicateChunksPlugin";
|
|
|
16
16
|
|
|
17
17
|
class MergeDuplicateChunksPlugin {
|
|
18
18
|
/**
|
|
19
|
+
* Creates an instance of MergeDuplicateChunksPlugin.
|
|
19
20
|
* @param {MergeDuplicateChunksPluginOptions=} options options object
|
|
20
21
|
*/
|
|
21
22
|
constructor(options = { stage: STAGE_BASIC }) {
|
|
@@ -24,6 +25,7 @@ class MergeDuplicateChunksPlugin {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
28
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
27
29
|
* @param {Compiler} compiler the compiler
|
|
28
30
|
* @returns {void}
|
|
29
31
|
*/
|
|
@@ -15,6 +15,7 @@ const PLUGIN_NAME = "MinChunkSizePlugin";
|
|
|
15
15
|
|
|
16
16
|
class MinChunkSizePlugin {
|
|
17
17
|
/**
|
|
18
|
+
* Creates an instance of MinChunkSizePlugin.
|
|
18
19
|
* @param {MinChunkSizePluginOptions} options options object
|
|
19
20
|
*/
|
|
20
21
|
constructor(options) {
|
|
@@ -23,7 +24,7 @@ class MinChunkSizePlugin {
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
27
28
|
* @param {Compiler} compiler the compiler instance
|
|
28
29
|
* @returns {void}
|
|
29
30
|
*/
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const WebpackError = require("../errors/WebpackError");
|
|
9
|
+
const formatSize = require("../util/formatSize");
|
|
10
10
|
|
|
11
11
|
class MinMaxSizeWarning extends WebpackError {
|
|
12
12
|
/**
|
|
13
|
+
* Creates an instance of MinMaxSizeWarning.
|
|
13
14
|
* @param {string[] | undefined} keys keys
|
|
14
15
|
* @param {number} minSize minimum size
|
|
15
16
|
* @param {number} maxSize maximum size
|
|
@@ -25,8 +26,8 @@ class MinMaxSizeWarning extends WebpackError {
|
|
|
25
26
|
super(
|
|
26
27
|
"SplitChunksPlugin\n" +
|
|
27
28
|
`${keysMessage}\n` +
|
|
28
|
-
`Configured minSize (${
|
|
29
|
-
`bigger than maxSize (${
|
|
29
|
+
`Configured minSize (${formatSize(minSize)}) is ` +
|
|
30
|
+
`bigger than maxSize (${formatSize(maxSize)}).\n` +
|
|
30
31
|
"This seem to be a invalid optimization.splitChunks configuration."
|
|
31
32
|
);
|
|
32
33
|
}
|