@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.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 +4 -8
- package/changes.json +3 -19
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +224 -106
- package/lib/Compiler.js +19 -19
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +8 -8
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +36 -22
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +8 -8
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +8 -10
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +144 -48
- package/lib/config/getClaimedAssetTypes.js +21 -13
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +10 -0
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +36 -25
- package/lib/context/ContextModuleFactory.js +13 -10
- package/lib/context/ContextReplacementPlugin.js +3 -3
- package/lib/css/CssGenerator.js +38 -31
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +682 -291
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6985 -5125
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +52 -19
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +20 -18
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +4 -4
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
- package/lib/{util → graph}/findGraphRoots.js +14 -8
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +31 -21
- package/lib/html/HtmlGenerator.js +107 -43
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +172 -76
- package/lib/html/HtmlParser.js +503 -153
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +2 -1
- package/lib/html/htmlMinify.js +111 -41
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +303 -97
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +17 -17
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +440 -211
- package/lib/javascript/JavascriptParser.js +220 -134
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +10 -10
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +160 -166
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +31 -21
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +16 -14
- package/lib/{Module.js → module/Module.js} +119 -51
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +229 -214
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
- package/lib/optimize/SplitChunksPlugin.js +713 -155
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +65 -44
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +47 -16
- package/lib/serialization/SerializerMiddleware.js +2 -2
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +349 -44
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +94 -15
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +294 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +4 -1
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +48 -41
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +19355 -13873
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/conventions.js +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { applyWebpackOptionsDefaults } = require("./
|
|
9
|
-
const { getNormalizedWebpackOptions } = require("./
|
|
8
|
+
const { applyWebpackOptionsDefaults } = require("./defaults");
|
|
9
|
+
const { getNormalizedWebpackOptions } = require("./normalization");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @import {
|
|
13
13
|
* WebpackOptions,
|
|
14
14
|
* WebpackOptionsNormalized
|
|
15
|
-
* } from "
|
|
15
|
+
* } from "../../declarations/WebpackOptions"
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
class WebpackOptionsDefaulter {
|
|
@@ -122,7 +122,7 @@ const resolve = (browsers) => {
|
|
|
122
122
|
return Number(parsedMajor) >= requiredVersion;
|
|
123
123
|
}
|
|
124
124
|
return requiredVersion[0] === Number(parsedMajor)
|
|
125
|
-
? Number(parserMinor) >= requiredVersion[1]
|
|
125
|
+
? Number(parserMinor || 0) >= requiredVersion[1]
|
|
126
126
|
: Number(parsedMajor) > requiredVersion[0];
|
|
127
127
|
});
|
|
128
128
|
const anyNode = browsers.some((b) => b.startsWith("node "));
|
|
@@ -6,10 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const path = require("path");
|
|
9
|
-
const
|
|
10
|
-
const webpackSchema =
|
|
11
|
-
/** @type {EXPECTED_ANY} */
|
|
12
|
-
(require("../schemas/WebpackOptions.json"));
|
|
9
|
+
const webpackSchema = require("../../schemas/WebpackOptions.json");
|
|
13
10
|
|
|
14
11
|
/** @import { JSONSchema4, JSONSchema6, JSONSchema7 } from "json-schema" */
|
|
15
12
|
/** @typedef {JSONSchema4 | JSONSchema6 | JSONSchema7} JSONSchema */
|
|
@@ -504,7 +501,9 @@ const getArguments = (schema = webpackSchema) => {
|
|
|
504
501
|
return flags;
|
|
505
502
|
};
|
|
506
503
|
|
|
507
|
-
/** @
|
|
504
|
+
/** @typedef {ObjectConfiguration | ParsedValue | undefined} ConfigurationValue */
|
|
505
|
+
|
|
506
|
+
/** @type {WeakMap<ConfigurationValue[], number>} */
|
|
508
507
|
const cliAddedItems = new WeakMap();
|
|
509
508
|
|
|
510
509
|
/** @typedef {string | number} Property */
|
|
@@ -522,7 +521,7 @@ const isUnsafeKey = (name) =>
|
|
|
522
521
|
* @param {ObjectConfiguration} config configuration
|
|
523
522
|
* @param {string} schemaPath path in the config
|
|
524
523
|
* @param {number | undefined} index index of value when multiple values are provided, otherwise undefined
|
|
525
|
-
* @returns {{ problem?: LocalProblem, object?: ObjectConfiguration, property?: Property, value?:
|
|
524
|
+
* @returns {{ problem?: LocalProblem, object?: ObjectConfiguration, property?: Property, value?: ConfigurationValue }} problem or object with property and value
|
|
526
525
|
*/
|
|
527
526
|
const getObjectAndProperty = (config, schemaPath, index = 0) => {
|
|
528
527
|
if (!schemaPath) return { value: config };
|
|
@@ -825,157 +824,5 @@ const processArguments = (args, config, values) => {
|
|
|
825
824
|
return problems;
|
|
826
825
|
};
|
|
827
826
|
|
|
828
|
-
/**
|
|
829
|
-
* Checks whether this object is color supported.
|
|
830
|
-
* @returns {boolean} true when colors supported, otherwise false
|
|
831
|
-
*/
|
|
832
|
-
const isColorSupported = () => {
|
|
833
|
-
const { env = {}, argv = [], platform = "" } = process;
|
|
834
|
-
|
|
835
|
-
// Read values instead of using `in`: Deno's and Bun's `process.env` honor
|
|
836
|
-
// property access but not the `in`/`has` trap, so `"X" in env` is unreliable.
|
|
837
|
-
const isDisabled = env.NO_COLOR !== undefined || argv.includes("--no-color");
|
|
838
|
-
const isForced = env.FORCE_COLOR !== undefined || argv.includes("--color");
|
|
839
|
-
const isWindows = platform === "win32";
|
|
840
|
-
const isDumbTerminal = env.TERM === "dumb";
|
|
841
|
-
|
|
842
|
-
const isCompatibleTerminal = tty.isatty(1) && env.TERM && !isDumbTerminal;
|
|
843
|
-
|
|
844
|
-
const isCI =
|
|
845
|
-
env.CI !== undefined &&
|
|
846
|
-
(env.GITHUB_ACTIONS !== undefined ||
|
|
847
|
-
env.GITLAB_CI !== undefined ||
|
|
848
|
-
env.CIRCLECI !== undefined);
|
|
849
|
-
|
|
850
|
-
return (
|
|
851
|
-
!isDisabled &&
|
|
852
|
-
(isForced || (isWindows && !isDumbTerminal) || isCompatibleTerminal || isCI)
|
|
853
|
-
);
|
|
854
|
-
};
|
|
855
|
-
|
|
856
|
-
/**
|
|
857
|
-
* Returns result.
|
|
858
|
-
* @param {number} index index
|
|
859
|
-
* @param {string} string string
|
|
860
|
-
* @param {string} close close
|
|
861
|
-
* @param {string=} replace replace
|
|
862
|
-
* @param {string=} head head
|
|
863
|
-
* @param {string=} tail tail
|
|
864
|
-
* @param {number=} next next
|
|
865
|
-
* @returns {string} result
|
|
866
|
-
*/
|
|
867
|
-
const replaceClose = (
|
|
868
|
-
index,
|
|
869
|
-
string,
|
|
870
|
-
close,
|
|
871
|
-
replace,
|
|
872
|
-
head = string.slice(0, Math.max(0, index)) + replace,
|
|
873
|
-
tail = string.slice(Math.max(0, index + close.length)),
|
|
874
|
-
next = tail.indexOf(close)
|
|
875
|
-
) => head + (next < 0 ? tail : replaceClose(next, tail, close, replace));
|
|
876
|
-
|
|
877
|
-
/**
|
|
878
|
-
* Returns result.
|
|
879
|
-
* @param {number} index index to replace
|
|
880
|
-
* @param {string} string string
|
|
881
|
-
* @param {string} open open string
|
|
882
|
-
* @param {string} close close string
|
|
883
|
-
* @param {string=} replace extra replace
|
|
884
|
-
* @returns {string} result
|
|
885
|
-
*/
|
|
886
|
-
const clearBleed = (index, string, open, close, replace) =>
|
|
887
|
-
index < 0
|
|
888
|
-
? open + string + close
|
|
889
|
-
: open + replaceClose(index, string, close, replace) + close;
|
|
890
|
-
|
|
891
|
-
/** @typedef {(value: EXPECTED_ANY) => string} PrintFunction */
|
|
892
|
-
|
|
893
|
-
/**
|
|
894
|
-
* Returns function to create color.
|
|
895
|
-
* @param {string} open open string
|
|
896
|
-
* @param {string} close close string
|
|
897
|
-
* @param {string=} replace extra replace
|
|
898
|
-
* @param {number=} at at
|
|
899
|
-
* @returns {PrintFunction} function to create color
|
|
900
|
-
*/
|
|
901
|
-
const filterEmpty =
|
|
902
|
-
(open, close, replace = open, at = open.length + 1) =>
|
|
903
|
-
(string) =>
|
|
904
|
-
string || !(string === "" || string === undefined)
|
|
905
|
-
? clearBleed(`${string}`.indexOf(close, at), string, open, close, replace)
|
|
906
|
-
: "";
|
|
907
|
-
|
|
908
|
-
/**
|
|
909
|
-
* Returns result.
|
|
910
|
-
* @param {number} open open code
|
|
911
|
-
* @param {number} close close code
|
|
912
|
-
* @param {string=} replace extra replace
|
|
913
|
-
* @returns {PrintFunction} result
|
|
914
|
-
*/
|
|
915
|
-
const init = (open, close, replace) =>
|
|
916
|
-
filterEmpty(`\u001B[${open}m`, `\u001B[${close}m`, replace);
|
|
917
|
-
|
|
918
|
-
/**
|
|
919
|
-
* Defines the colors type used by this module.
|
|
920
|
-
* @typedef {{ reset: PrintFunction, bold: PrintFunction, dim: PrintFunction, italic: PrintFunction, underline: PrintFunction, inverse: PrintFunction, hidden: PrintFunction, strikethrough: PrintFunction, black: PrintFunction, red: PrintFunction, green: PrintFunction, yellow: PrintFunction, blue: PrintFunction, magenta: PrintFunction, cyan: PrintFunction, white: PrintFunction, gray: PrintFunction, bgBlack: PrintFunction, bgRed: PrintFunction, bgGreen: PrintFunction, bgYellow: PrintFunction, bgBlue: PrintFunction, bgMagenta: PrintFunction, bgCyan: PrintFunction, bgWhite: PrintFunction, blackBright: PrintFunction, redBright: PrintFunction, greenBright: PrintFunction, yellowBright: PrintFunction, blueBright: PrintFunction, magentaBright: PrintFunction, cyanBright: PrintFunction, whiteBright: PrintFunction, bgBlackBright: PrintFunction, bgRedBright: PrintFunction, bgGreenBright: PrintFunction, bgYellowBright: PrintFunction, bgBlueBright: PrintFunction, bgMagentaBright: PrintFunction, bgCyanBright: PrintFunction, bgWhiteBright: PrintFunction }} Colors
|
|
921
|
-
*/
|
|
922
|
-
|
|
923
|
-
/**
|
|
924
|
-
* Defines the colors options type used by this module.
|
|
925
|
-
* @typedef {object} ColorsOptions
|
|
926
|
-
* @property {boolean=} useColor force use colors
|
|
927
|
-
*/
|
|
928
|
-
|
|
929
|
-
/**
|
|
930
|
-
* Creates a colors from the provided colors option.
|
|
931
|
-
* @param {ColorsOptions=} options options
|
|
932
|
-
* @returns {Colors} colors
|
|
933
|
-
*/
|
|
934
|
-
const createColors = ({ useColor = isColorSupported() } = {}) => ({
|
|
935
|
-
reset: useColor ? init(0, 0) : String,
|
|
936
|
-
bold: useColor ? init(1, 22, "\u001B[22m\u001B[1m") : String,
|
|
937
|
-
dim: useColor ? init(2, 22, "\u001B[22m\u001B[2m") : String,
|
|
938
|
-
italic: useColor ? init(3, 23) : String,
|
|
939
|
-
underline: useColor ? init(4, 24) : String,
|
|
940
|
-
inverse: useColor ? init(7, 27) : String,
|
|
941
|
-
hidden: useColor ? init(8, 28) : String,
|
|
942
|
-
strikethrough: useColor ? init(9, 29) : String,
|
|
943
|
-
black: useColor ? init(30, 39) : String,
|
|
944
|
-
red: useColor ? init(31, 39) : String,
|
|
945
|
-
green: useColor ? init(32, 39) : String,
|
|
946
|
-
yellow: useColor ? init(33, 39) : String,
|
|
947
|
-
blue: useColor ? init(34, 39) : String,
|
|
948
|
-
magenta: useColor ? init(35, 39) : String,
|
|
949
|
-
cyan: useColor ? init(36, 39) : String,
|
|
950
|
-
white: useColor ? init(37, 39) : String,
|
|
951
|
-
gray: useColor ? init(90, 39) : String,
|
|
952
|
-
bgBlack: useColor ? init(40, 49) : String,
|
|
953
|
-
bgRed: useColor ? init(41, 49) : String,
|
|
954
|
-
bgGreen: useColor ? init(42, 49) : String,
|
|
955
|
-
bgYellow: useColor ? init(43, 49) : String,
|
|
956
|
-
bgBlue: useColor ? init(44, 49) : String,
|
|
957
|
-
bgMagenta: useColor ? init(45, 49) : String,
|
|
958
|
-
bgCyan: useColor ? init(46, 49) : String,
|
|
959
|
-
bgWhite: useColor ? init(47, 49) : String,
|
|
960
|
-
blackBright: useColor ? init(90, 39) : String,
|
|
961
|
-
redBright: useColor ? init(91, 39) : String,
|
|
962
|
-
greenBright: useColor ? init(92, 39) : String,
|
|
963
|
-
yellowBright: useColor ? init(93, 39) : String,
|
|
964
|
-
blueBright: useColor ? init(94, 39) : String,
|
|
965
|
-
magentaBright: useColor ? init(95, 39) : String,
|
|
966
|
-
cyanBright: useColor ? init(96, 39) : String,
|
|
967
|
-
whiteBright: useColor ? init(97, 39) : String,
|
|
968
|
-
bgBlackBright: useColor ? init(100, 49) : String,
|
|
969
|
-
bgRedBright: useColor ? init(101, 49) : String,
|
|
970
|
-
bgGreenBright: useColor ? init(102, 49) : String,
|
|
971
|
-
bgYellowBright: useColor ? init(103, 49) : String,
|
|
972
|
-
bgBlueBright: useColor ? init(104, 49) : String,
|
|
973
|
-
bgMagentaBright: useColor ? init(105, 49) : String,
|
|
974
|
-
bgCyanBright: useColor ? init(106, 49) : String,
|
|
975
|
-
bgWhiteBright: useColor ? init(107, 49) : String
|
|
976
|
-
});
|
|
977
|
-
|
|
978
|
-
module.exports.createColors = createColors;
|
|
979
827
|
module.exports.getArguments = getArguments;
|
|
980
|
-
module.exports.isColorSupported = isColorSupported;
|
|
981
828
|
module.exports.processArguments = processArguments;
|
package/lib/config/defaults.js
CHANGED
|
@@ -11,7 +11,7 @@ const {
|
|
|
11
11
|
CSS_TYPE,
|
|
12
12
|
JAVASCRIPT_TYPE,
|
|
13
13
|
UNKNOWN_TYPE
|
|
14
|
-
} = require("../ModuleSourceTypeConstants");
|
|
14
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
15
15
|
const {
|
|
16
16
|
ASSET_MODULE_TYPE,
|
|
17
17
|
ASSET_MODULE_TYPE_BYTES,
|
|
@@ -29,9 +29,9 @@ const {
|
|
|
29
29
|
JSON_MODULE_TYPE,
|
|
30
30
|
WEBASSEMBLY_MODULE_TYPE_ASYNC,
|
|
31
31
|
WEBASSEMBLY_MODULE_TYPE_SYNC
|
|
32
|
-
} = require("../ModuleTypeConstants");
|
|
33
|
-
const Template = require("../Template");
|
|
32
|
+
} = require("../module/ModuleTypeConstants");
|
|
34
33
|
const RuleSetCompiler = require("../rules/RuleSetCompiler");
|
|
34
|
+
const Template = require("../template/Template");
|
|
35
35
|
const { cleverMerge } = require("../util/cleverMerge");
|
|
36
36
|
const {
|
|
37
37
|
getDefaultTarget,
|
|
@@ -79,7 +79,7 @@ const {
|
|
|
79
79
|
* WebpackOptionsNormalized
|
|
80
80
|
* } from "../../declarations/WebpackOptions"
|
|
81
81
|
*/
|
|
82
|
-
/** @import Module from "../Module" */
|
|
82
|
+
/** @import Module from "../module/Module" */
|
|
83
83
|
/**
|
|
84
84
|
* @import {
|
|
85
85
|
* ChunkLoadingTypes
|
|
@@ -228,7 +228,7 @@ const {
|
|
|
228
228
|
const NODE_MODULES_REGEXP = /[\\/]node_modules[\\/]/i;
|
|
229
229
|
const DEFAULT_CACHE_NAME = "default";
|
|
230
230
|
const DEFAULTS = {
|
|
231
|
-
// TODO
|
|
231
|
+
// TODO in the next major release: use xxhash64
|
|
232
232
|
HASH_FUNCTION: "md4"
|
|
233
233
|
};
|
|
234
234
|
|
|
@@ -386,7 +386,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
386
386
|
|
|
387
387
|
F(options, "validate", () => !(futureDefaults === true && production));
|
|
388
388
|
|
|
389
|
-
// Progress lives on infrastructureLogging;
|
|
389
|
+
// Progress lives on infrastructureLogging; the next major release shows the interactive
|
|
390
390
|
// bar by default (`"auto"` = TTY only), webpack@5 stays opt-in.
|
|
391
391
|
D(options.infrastructureLogging, "progress", futureDefaults ? "auto" : false);
|
|
392
392
|
|
|
@@ -536,15 +536,19 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
536
536
|
);
|
|
537
537
|
|
|
538
538
|
F(options, "externalsType", () => {
|
|
539
|
-
const
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
validExternalTypes
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
539
|
+
const libraryType = options.output.library && options.output.library.type;
|
|
540
|
+
if (libraryType !== undefined) {
|
|
541
|
+
// The schema states which types are externals types, and reading it
|
|
542
|
+
// costs 498 KB of objects, so only a build naming one pays for that.
|
|
543
|
+
const validExternalTypes = require("../../schemas/WebpackOptions.json")
|
|
544
|
+
.definitions.ExternalsType.enum;
|
|
545
|
+
|
|
546
|
+
if (validExternalTypes.includes(libraryType)) {
|
|
547
|
+
return /** @type {ExternalsType} */ (libraryType);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
return options.output.module ? "module-import" : "var";
|
|
548
552
|
});
|
|
549
553
|
|
|
550
554
|
applyNodeDefaults(options.node, {
|
|
@@ -575,9 +579,14 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
575
579
|
applyOptimizationDefaults(options.optimization, {
|
|
576
580
|
development,
|
|
577
581
|
production,
|
|
582
|
+
futureDefaults,
|
|
578
583
|
css:
|
|
579
584
|
/** @type {boolean} */
|
|
580
585
|
(options.experiments.css),
|
|
586
|
+
esmLibrary:
|
|
587
|
+
/** @type {string[]} */
|
|
588
|
+
(options.output.enabledLibraryTypes).length > 0 &&
|
|
589
|
+
Boolean(options.output.module),
|
|
581
590
|
records: Boolean(options.recordsInputPath || options.recordsOutputPath)
|
|
582
591
|
});
|
|
583
592
|
|
|
@@ -641,7 +650,7 @@ const applyExperimentsDefaults = (
|
|
|
641
650
|
) => {
|
|
642
651
|
D(experiments, "futureDefaults", false);
|
|
643
652
|
D(experiments, "backCompat", !experiments.futureDefaults);
|
|
644
|
-
// TODO do we need sync web assembly
|
|
653
|
+
// TODO in the next major release: do we need sync web assembly?
|
|
645
654
|
D(experiments, "syncWebAssembly", false);
|
|
646
655
|
D(
|
|
647
656
|
experiments,
|
|
@@ -665,7 +674,7 @@ const applyExperimentsDefaults = (
|
|
|
665
674
|
|
|
666
675
|
// Enabled implicitly the value stays `"auto"`, and the plugins then step
|
|
667
676
|
// aside per module for requests loaders were applied to.
|
|
668
|
-
// TODO
|
|
677
|
+
// TODO in the next major release: css/html/asyncWebAssembly default to `true`, drop the `"auto"` marker.
|
|
669
678
|
if (experiments.css === "auto") {
|
|
670
679
|
experiments.css =
|
|
671
680
|
!(
|
|
@@ -694,7 +703,8 @@ const applyExperimentsDefaults = (
|
|
|
694
703
|
if (experiments.asyncWebAssembly === "auto") {
|
|
695
704
|
experiments.asyncWebAssembly =
|
|
696
705
|
!experiments.syncWebAssembly &&
|
|
697
|
-
!RuleSetCompiler.hasRuleForResource(rules, "/file.wasm")
|
|
706
|
+
!RuleSetCompiler.hasRuleForResource(rules, "/file.wasm") &&
|
|
707
|
+
"auto";
|
|
698
708
|
}
|
|
699
709
|
|
|
700
710
|
if (typeof experiments.buildHttp === "object") {
|
|
@@ -776,7 +786,12 @@ const applyCacheDefaults = (
|
|
|
776
786
|
/** @type {NonNullable<FileCacheOptions["buildDependencies"]>} */
|
|
777
787
|
(cache.buildDependencies),
|
|
778
788
|
"defaultWebpack",
|
|
779
|
-
[
|
|
789
|
+
[
|
|
790
|
+
{
|
|
791
|
+
dependency: path.resolve(__dirname, "..") + path.sep,
|
|
792
|
+
optional: false
|
|
793
|
+
}
|
|
794
|
+
]
|
|
780
795
|
);
|
|
781
796
|
break;
|
|
782
797
|
case "memory":
|
|
@@ -1687,7 +1702,7 @@ const applyOutputDefaults = (
|
|
|
1687
1702
|
((tp.node === null && tp.web === null && tp.module !== false) ||
|
|
1688
1703
|
tp.deno === true ||
|
|
1689
1704
|
tp.bun === true ||
|
|
1690
|
-
//
|
|
1705
|
+
// the next major release emits ESM wherever the target reads one — a browserslist
|
|
1691
1706
|
// query (or `esX`/`nodeX`) without ESM support keeps script output
|
|
1692
1707
|
(futureDefaults && tp.module !== false && !hasScriptLibrary))
|
|
1693
1708
|
)
|
|
@@ -2368,7 +2383,7 @@ const applyNodeDefaults = (
|
|
|
2368
2383
|
});
|
|
2369
2384
|
|
|
2370
2385
|
const handlerForNames = () => {
|
|
2371
|
-
// TODO
|
|
2386
|
+
// TODO in the next major release: remove `node-module` in favor of `eval-only`
|
|
2372
2387
|
if (targetProperties) {
|
|
2373
2388
|
if (targetProperties.node) {
|
|
2374
2389
|
return "eval-only";
|
|
@@ -2384,7 +2399,7 @@ const applyNodeDefaults = (
|
|
|
2384
2399
|
}
|
|
2385
2400
|
}
|
|
2386
2401
|
|
|
2387
|
-
// TODO
|
|
2402
|
+
// TODO in the next major release: should we use `warn-even-only`?
|
|
2388
2403
|
return futureDefaults ? "warn-mock" : "mock";
|
|
2389
2404
|
};
|
|
2390
2405
|
|
|
@@ -2444,12 +2459,14 @@ const applyPerformanceDefaults = (performance, { production }) => {
|
|
|
2444
2459
|
* @param {boolean} options.production is production
|
|
2445
2460
|
* @param {boolean} options.development is development
|
|
2446
2461
|
* @param {boolean} options.css is css enabled
|
|
2462
|
+
* @param {boolean} options.esmLibrary whether the output is an ECMAScript module consumed as a library
|
|
2447
2463
|
* @param {boolean} options.records using records
|
|
2464
|
+
* @param {boolean} options.futureDefaults use defaults of the next major version
|
|
2448
2465
|
* @returns {void}
|
|
2449
2466
|
*/
|
|
2450
2467
|
const applyOptimizationDefaults = (
|
|
2451
2468
|
optimization,
|
|
2452
|
-
{ production, development, css, records }
|
|
2469
|
+
{ production, development, css, esmLibrary, records, futureDefaults }
|
|
2453
2470
|
) => {
|
|
2454
2471
|
D(optimization, "removeAvailableModules", false);
|
|
2455
2472
|
D(optimization, "removeEmptyChunks", true);
|
|
@@ -2496,25 +2513,36 @@ const applyOptimizationDefaults = (
|
|
|
2496
2513
|
/** @type {NonNullable<Optimization["minimizeOptions"]>} */
|
|
2497
2514
|
(optimization.minimizeOptions);
|
|
2498
2515
|
if (optimization.minimize) {
|
|
2499
|
-
//
|
|
2500
|
-
//
|
|
2501
|
-
|
|
2516
|
+
// Only ESM output carries these annotations, and only a consumer that
|
|
2517
|
+
// re-bundles it reads them; terser drops them everywhere else, which is
|
|
2518
|
+
// what a script-loaded output — a federation container — wants.
|
|
2519
|
+
F(minimizeOptions, "javascript", () =>
|
|
2520
|
+
esmLibrary
|
|
2521
|
+
? {
|
|
2522
|
+
compress: { passes: 2 },
|
|
2523
|
+
// eslint-disable-next-line camelcase
|
|
2524
|
+
format: { preserve_annotations: true }
|
|
2525
|
+
}
|
|
2526
|
+
: { compress: { passes: 2 } }
|
|
2527
|
+
);
|
|
2502
2528
|
F(minimizeOptions, "css", () => ({}));
|
|
2503
2529
|
F(minimizeOptions, "html", () => ({}));
|
|
2530
|
+
D(minimizeOptions, "json", futureDefaults);
|
|
2531
|
+
if (futureDefaults) F(minimizeOptions, "xml", () => ({}));
|
|
2504
2532
|
}
|
|
2505
2533
|
A(optimization, "minimizer", () => [
|
|
2506
2534
|
{
|
|
2507
2535
|
apply: (compiler) => {
|
|
2508
2536
|
// Lazy load the minimizer plugin
|
|
2509
|
-
const
|
|
2537
|
+
const MinimizerPlugin = require("minimizer-webpack-plugin");
|
|
2510
2538
|
|
|
2511
2539
|
// WHY: one minimizer instance, so one worker-thread pool, handles JS and
|
|
2512
2540
|
// — where native CSS and HTML are enabled — those assets too, as an array
|
|
2513
|
-
// of minify functions each dispatched by its own `filter`:
|
|
2514
|
-
// `cssMinify` to CSS, `htmlMinify` to HTML. The CSS and
|
|
2515
|
-
// stay worker-safe by resolving their parser with
|
|
2516
|
-
// in the worker, so all three share the pool, and
|
|
2517
|
-
// those assets reach the dispatcher.
|
|
2541
|
+
// of minify functions each dispatched by its own `filter`: the JS one
|
|
2542
|
+
// to JS, `cssMinify` to CSS, `htmlMinify` to HTML. The CSS and
|
|
2543
|
+
// HTML serializers stay worker-safe by resolving their parser with
|
|
2544
|
+
// `require("webpack/…")` in the worker, so all three share the pool, and
|
|
2545
|
+
// `test` is widened to let those assets reach the dispatcher.
|
|
2518
2546
|
|
|
2519
2547
|
// Step aside for a minimizer the user configured for these types:
|
|
2520
2548
|
// whichever ran first would mark the asset `minimized` and silently
|
|
@@ -2527,9 +2555,18 @@ const applyOptimizationDefaults = (
|
|
|
2527
2555
|
const minimizeByType = /** @type {OptimizationMinimizeOptions} */ (
|
|
2528
2556
|
compiler.options.optimization.minimizeOptions
|
|
2529
2557
|
);
|
|
2530
|
-
const
|
|
2558
|
+
const javascriptOptions = minimizeByType.javascript || {
|
|
2531
2559
|
compress: { passes: 2 }
|
|
2532
2560
|
};
|
|
2561
|
+
// webpack's printer, held to what terser writes, replaces terser; until
|
|
2562
|
+
// proven on real builds it is a future default, and terser as the plugin
|
|
2563
|
+
// publishes it minifies JS everywhere else.
|
|
2564
|
+
const javascriptMinify = futureDefaults
|
|
2565
|
+
? require.resolve("../javascript/jsMinify")
|
|
2566
|
+
: {
|
|
2567
|
+
path: require.resolve("minimizer-webpack-plugin"),
|
|
2568
|
+
export: "terserMinify"
|
|
2569
|
+
};
|
|
2533
2570
|
|
|
2534
2571
|
const { css, html } = compiler.options.experiments;
|
|
2535
2572
|
const minifyJs = minimizeByType.javascript !== false;
|
|
@@ -2541,16 +2578,47 @@ const applyOptimizationDefaults = (
|
|
|
2541
2578
|
Boolean(html) &&
|
|
2542
2579
|
!claimedByOtherMinimizer.html &&
|
|
2543
2580
|
minimizeByType.html !== false;
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2581
|
+
// `=== true` rather than `!== false`: outside `futureDefaults`, JSON is opt-in.
|
|
2582
|
+
const minifyJson =
|
|
2583
|
+
minimizeByType.json === true && !claimedByOtherMinimizer.json;
|
|
2584
|
+
// Off unless asked for: only an object, which futureDefaults supplies.
|
|
2585
|
+
const minifyXml =
|
|
2586
|
+
!claimedByOtherMinimizer.xml &&
|
|
2587
|
+
typeof minimizeByType.xml === "object";
|
|
2588
|
+
if (
|
|
2589
|
+
!minifyJs &&
|
|
2590
|
+
!minifyCss &&
|
|
2591
|
+
!minifyHtml &&
|
|
2592
|
+
!minifyJson &&
|
|
2593
|
+
!minifyXml
|
|
2594
|
+
) {
|
|
2595
|
+
return;
|
|
2596
|
+
}
|
|
2597
|
+
// An asset name keeps the query and the fragment its filename template
|
|
2598
|
+
// wrote (`[query][fragment]`, `main.js#[contenthash]`), so both may follow.
|
|
2599
|
+
/**
|
|
2600
|
+
* @param {string[]} extensions extension patterns
|
|
2601
|
+
* @returns {RegExp} matcher for asset names with those extensions
|
|
2602
|
+
*/
|
|
2603
|
+
const assetNameTest = (extensions) =>
|
|
2604
|
+
new RegExp(`^[^?#]*\\.(?:${extensions.join("|")})(?:[?#].*)?$`, "i");
|
|
2605
|
+
if (
|
|
2606
|
+
minifyJs &&
|
|
2607
|
+
!minifyCss &&
|
|
2608
|
+
!minifyHtml &&
|
|
2609
|
+
!minifyJson &&
|
|
2610
|
+
!minifyXml
|
|
2611
|
+
) {
|
|
2612
|
+
new MinimizerPlugin({
|
|
2613
|
+
test: assetNameTest(["[cm]?js"]),
|
|
2614
|
+
minify: javascriptMinify,
|
|
2615
|
+
minimizerOptions: javascriptOptions
|
|
2616
|
+
}).apply(/** @type {EXPECTED_ANY} */ (compiler));
|
|
2549
2617
|
return;
|
|
2550
2618
|
}
|
|
2551
|
-
/** @type {(typeof
|
|
2619
|
+
/** @type {(typeof javascriptMinify | string)[]} */
|
|
2552
2620
|
const minify = [];
|
|
2553
|
-
/** @type {
|
|
2621
|
+
/** @type {(typeof javascriptOptions | NonNullable<Parameters<typeof import("../css/cssMinify")>[1]> | NonNullable<Parameters<typeof import("../html/htmlMinify")>[1]> | Record<string, never>)[]} */
|
|
2554
2622
|
const minimizerOptions = [];
|
|
2555
2623
|
/** @type {string[]} */
|
|
2556
2624
|
const extensions = [];
|
|
@@ -2564,12 +2632,21 @@ const applyOptimizationDefaults = (
|
|
|
2564
2632
|
// prefixes and every spelling a target can read, so `vendorPrefixes`
|
|
2565
2633
|
// turns off the first alone — resolving it is what the second needs.
|
|
2566
2634
|
const { target } = compiler.options;
|
|
2567
|
-
const
|
|
2635
|
+
const context = /** @type {Context} */ (compiler.options.context);
|
|
2636
|
+
const named = target
|
|
2568
2637
|
? getTargetsBrowsers(
|
|
2569
2638
|
Array.isArray(target) ? target : [target],
|
|
2570
|
-
|
|
2639
|
+
context
|
|
2571
2640
|
)
|
|
2572
2641
|
: undefined;
|
|
2642
|
+
// A target naming no browsers is still served to some: browserslist's own
|
|
2643
|
+
// `defaults` are them, where none would read as "every current engine" —
|
|
2644
|
+
// unless `dropOverriddenDeclarations` asks for exactly that assumption.
|
|
2645
|
+
const browsers =
|
|
2646
|
+
named ||
|
|
2647
|
+
(cssOptions !== undefined && cssOptions.dropOverriddenDeclarations
|
|
2648
|
+
? undefined
|
|
2649
|
+
: getTargetsBrowsers(["browserslist:defaults"], context));
|
|
2573
2650
|
const cssEnvironment = {
|
|
2574
2651
|
browsers,
|
|
2575
2652
|
vendorPrefixes:
|
|
@@ -2580,32 +2657,50 @@ const applyOptimizationDefaults = (
|
|
|
2580
2657
|
? minimizeByType.html
|
|
2581
2658
|
: undefined;
|
|
2582
2659
|
if (minifyJs) {
|
|
2583
|
-
minify.push(
|
|
2584
|
-
minimizerOptions.push(
|
|
2660
|
+
minify.push(javascriptMinify);
|
|
2661
|
+
minimizerOptions.push(javascriptOptions);
|
|
2585
2662
|
extensions.push("[cm]?js");
|
|
2586
2663
|
}
|
|
2587
2664
|
if (minifyCss) {
|
|
2588
|
-
minify.push(require("../css/cssMinify"));
|
|
2665
|
+
minify.push(require.resolve("../css/cssMinify"));
|
|
2666
|
+
// An SVG `data:` URL is minified as the `.svg` assets are, or left alone.
|
|
2589
2667
|
minimizerOptions.push({
|
|
2590
2668
|
environment: cssEnvironment,
|
|
2669
|
+
svg: minifyXml,
|
|
2591
2670
|
...cssOptions
|
|
2592
2671
|
});
|
|
2593
2672
|
extensions.push("css");
|
|
2594
2673
|
}
|
|
2595
2674
|
if (minifyHtml) {
|
|
2596
|
-
minify.push(require("../html/htmlMinify"));
|
|
2675
|
+
minify.push(require.resolve("../html/htmlMinify"));
|
|
2597
2676
|
// `minimize.css` rides under its own key rather than spread beside the
|
|
2598
2677
|
// HTML options: the two name some of the same switches, so one flat
|
|
2599
2678
|
// object would hand each language the other's answer.
|
|
2600
2679
|
minimizerOptions.push({
|
|
2601
2680
|
environment: cssEnvironment,
|
|
2602
2681
|
css: cssOptions,
|
|
2682
|
+
svg: minifyXml,
|
|
2603
2683
|
...htmlOptions
|
|
2604
2684
|
});
|
|
2605
2685
|
extensions.push("html");
|
|
2606
2686
|
}
|
|
2607
|
-
|
|
2608
|
-
|
|
2687
|
+
if (minifyJson) {
|
|
2688
|
+
minify.push(require.resolve("../json/jsonMinify"));
|
|
2689
|
+
minimizerOptions.push({});
|
|
2690
|
+
// A web app manifest is JSON under its own extension.
|
|
2691
|
+
extensions.push("json", "webmanifest");
|
|
2692
|
+
}
|
|
2693
|
+
if (minifyXml) {
|
|
2694
|
+
minify.push(require.resolve("../html/xmlMinify"));
|
|
2695
|
+
minimizerOptions.push({
|
|
2696
|
+
environment: cssEnvironment,
|
|
2697
|
+
css: cssOptions,
|
|
2698
|
+
...minimizeByType.xml
|
|
2699
|
+
});
|
|
2700
|
+
extensions.push("svg", "xml");
|
|
2701
|
+
}
|
|
2702
|
+
new MinimizerPlugin({
|
|
2703
|
+
test: assetNameTest(extensions),
|
|
2609
2704
|
minify,
|
|
2610
2705
|
minimizerOptions
|
|
2611
2706
|
}).apply(/** @type {EXPECTED_ANY} */ (compiler));
|
|
@@ -2625,6 +2720,7 @@ const applyOptimizationDefaults = (
|
|
|
2625
2720
|
: [JAVASCRIPT_TYPE, UNKNOWN_TYPE]
|
|
2626
2721
|
);
|
|
2627
2722
|
D(splitChunks, "hidePathInfo", production);
|
|
2723
|
+
D(splitChunks, "dedupDepth", futureDefaults ? 1 : 0);
|
|
2628
2724
|
D(splitChunks, "chunks", "async");
|
|
2629
2725
|
D(splitChunks, "usedExports", optimization.usedExports === true);
|
|
2630
2726
|
D(splitChunks, "minChunks", 1);
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { matchObject } = require("../ModuleFilenameHelpers");
|
|
8
|
+
const { matchObject } = require("../devtool/ModuleFilenameHelpers");
|
|
9
9
|
|
|
10
10
|
/** @import Compiler from "../Compiler" */
|
|
11
|
-
/** @import { MatchObject } from "../ModuleFilenameHelpers" */
|
|
12
|
-
/** @typedef {MatchObject & { minimizer?:
|
|
11
|
+
/** @import { MatchObject } from "../devtool/ModuleFilenameHelpers" */
|
|
12
|
+
/** @typedef {MatchObject & { minimizer?: import("minimizer-webpack-plugin").InternalPluginOptions<EXPECTED_ANY>["minimizer"] }} MinimizerOptions */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @param {unknown} candidate a configured plugin or minimizer entry
|
|
@@ -26,14 +26,12 @@ const claims = (candidate, file) => {
|
|
|
26
26
|
// so reading those as minimizers would disable minification.
|
|
27
27
|
const { options } = /** @type {{ options?: MinimizerOptions }} */ (candidate);
|
|
28
28
|
if (!options || !options.minimizer) return false;
|
|
29
|
-
// `test` and `include` say which types it handles,
|
|
30
|
-
//
|
|
31
|
-
//
|
|
29
|
+
// `test` and `include` say which types it handles, and the minimizer takes a
|
|
30
|
+
// file only when both match. `exclude` merely narrows the files within them:
|
|
31
|
+
// honoring it would let a subdirectory-scoped minimizer claim nothing.
|
|
32
32
|
const { test, include } = options;
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
(include !== undefined && matchObject({ include }, file))
|
|
36
|
-
);
|
|
33
|
+
if (test === undefined && include === undefined) return false;
|
|
34
|
+
return matchObject({ test, include }, file);
|
|
37
35
|
};
|
|
38
36
|
|
|
39
37
|
/**
|
|
@@ -44,12 +42,14 @@ const claims = (candidate, file) => {
|
|
|
44
42
|
* matcher rather than resolving it per emitted asset, so a minimizer restricted
|
|
45
43
|
* to some of a type's files still claims the whole type.
|
|
46
44
|
* @param {Compiler} compiler the compiler
|
|
47
|
-
* @returns {{ css: boolean, html: boolean }} types another minimizer handles
|
|
45
|
+
* @returns {{ css: boolean, html: boolean, json: boolean, xml: boolean }} types another minimizer handles
|
|
48
46
|
*/
|
|
49
47
|
module.exports = (compiler) => {
|
|
50
48
|
const { optimization, plugins } = compiler.options;
|
|
51
49
|
let css = false;
|
|
52
50
|
let html = false;
|
|
51
|
+
let json = false;
|
|
52
|
+
let xml = false;
|
|
53
53
|
// Both lists are normalized arrays with falsy entries already filtered out,
|
|
54
54
|
// and `minimizer` was filled in by the defaults before any plugin applies.
|
|
55
55
|
const minimizer =
|
|
@@ -58,7 +58,15 @@ module.exports = (compiler) => {
|
|
|
58
58
|
for (const candidate of [...minimizer, ...plugins]) {
|
|
59
59
|
if (!css) css = claims(candidate, "file.css");
|
|
60
60
|
if (!html) html = claims(candidate, "file.html");
|
|
61
|
-
|
|
61
|
+
// The JSON minifier takes web app manifests too, so claiming either stops it.
|
|
62
|
+
if (!json) {
|
|
63
|
+
json =
|
|
64
|
+
claims(candidate, "file.json") || claims(candidate, "file.webmanifest");
|
|
65
|
+
}
|
|
66
|
+
if (!xml) {
|
|
67
|
+
xml = claims(candidate, "file.svg") || claims(candidate, "file.xml");
|
|
68
|
+
}
|
|
69
|
+
if (css && html && json && xml) break;
|
|
62
70
|
}
|
|
63
|
-
return { css, html };
|
|
71
|
+
return { css, html, json, xml };
|
|
64
72
|
};
|