@depup/webpack 5.109.2-depup.0 → 5.110.1-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 +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +26 -17
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +117 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +50 -13
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +101 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +32 -47
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +141 -85
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +332 -169
- package/lib/RuntimeTemplate.js +2792 -352
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +2 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +261 -79
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +36 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +57 -24
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +168 -88
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5324 -0
- package/lib/css/syntax.js +9579 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +156 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +27 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +37 -29
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +2 -2
- package/lib/dependencies/ImportDependency.js +24 -20
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +49 -35
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +51 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
- package/lib/dependencies/WorkerDependency.js +28 -22
- package/lib/dependencies/WorkletDependency.js +15 -14
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +282 -162
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +5557 -1155
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +98 -113
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +14 -1
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +985 -470
- package/lib/optimize/ConstExportsPlugin.js +11 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +9 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +10 -6
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -78
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +24 -15
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +7 -7
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +12 -14
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1050 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +5 -1
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +6 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
- package/lib/web/FetchCompileWasmPlugin.js +46 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +670 -36
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3144 -454
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/lib/config/defaults.js
CHANGED
|
@@ -36,51 +36,57 @@ const { cleverMerge } = require("../util/cleverMerge");
|
|
|
36
36
|
const {
|
|
37
37
|
getDefaultTarget,
|
|
38
38
|
getTargetProperties,
|
|
39
|
+
getTargetsBrowsers,
|
|
39
40
|
getTargetsProperties
|
|
40
41
|
} = require("./target");
|
|
41
42
|
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
/** @
|
|
82
|
-
/**
|
|
83
|
-
|
|
43
|
+
/**
|
|
44
|
+
* @import {
|
|
45
|
+
* CacheOptionsNormalized,
|
|
46
|
+
* Context,
|
|
47
|
+
* DevTool as Devtool,
|
|
48
|
+
* CssGeneratorOptions,
|
|
49
|
+
* EntryDescription,
|
|
50
|
+
* EntryNormalized as Entry,
|
|
51
|
+
* Environment,
|
|
52
|
+
* Experiments,
|
|
53
|
+
* ExperimentsNormalized,
|
|
54
|
+
* ExternalsPresets,
|
|
55
|
+
* ExternalsType,
|
|
56
|
+
* FileCacheOptions,
|
|
57
|
+
* GeneratorOptionsByModuleTypeKnown,
|
|
58
|
+
* InfrastructureLogging,
|
|
59
|
+
* JavascriptParserOptions,
|
|
60
|
+
* JsonGeneratorOptions,
|
|
61
|
+
* Library,
|
|
62
|
+
* LibraryName,
|
|
63
|
+
* LibraryType,
|
|
64
|
+
* Loader,
|
|
65
|
+
* Mode,
|
|
66
|
+
* HashFunction,
|
|
67
|
+
* HashSalt,
|
|
68
|
+
* ModuleOptionsNormalized as ModuleOptions,
|
|
69
|
+
* Node as WebpackNode,
|
|
70
|
+
* OptimizationMinimizeOptions,
|
|
71
|
+
* OptimizationNormalized as Optimization,
|
|
72
|
+
* OptimizationSplitChunksOptions,
|
|
73
|
+
* OutputNormalized as Output,
|
|
74
|
+
* ParserOptionsByModuleTypeKnown,
|
|
75
|
+
* Performance,
|
|
76
|
+
* ResolveOptions,
|
|
77
|
+
* RuleSetRules,
|
|
78
|
+
* SnapshotOptions,
|
|
79
|
+
* WebpackOptionsNormalized
|
|
80
|
+
* } from "../../declarations/WebpackOptions"
|
|
81
|
+
*/
|
|
82
|
+
/** @import Module from "../Module" */
|
|
83
|
+
/**
|
|
84
|
+
* @import {
|
|
85
|
+
* ChunkLoadingTypes
|
|
86
|
+
* } from "../javascript/EnableChunkLoadingPlugin"
|
|
87
|
+
*/
|
|
88
|
+
/** @import { WasmLoadingTypes } from "../wasm/EnableWasmLoadingPlugin" */
|
|
89
|
+
/** @import { PlatformTargetProperties, TargetProperties } from "./target" */
|
|
84
90
|
|
|
85
91
|
/**
|
|
86
92
|
* Defines the recursive non nullable type used by this module.
|
|
@@ -361,30 +367,6 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
361
367
|
rules: options.module.rules
|
|
362
368
|
});
|
|
363
369
|
|
|
364
|
-
// After experiments are resolved: the default dev source map depends on the
|
|
365
|
-
// (possibly "auto"-resolved) `experiments.css` value.
|
|
366
|
-
F(
|
|
367
|
-
options,
|
|
368
|
-
"devtool",
|
|
369
|
-
() =>
|
|
370
|
-
/** @type {Devtool} */ (
|
|
371
|
-
development
|
|
372
|
-
? [
|
|
373
|
-
options.experiments.css
|
|
374
|
-
? {
|
|
375
|
-
type: "css",
|
|
376
|
-
use: "source-map"
|
|
377
|
-
}
|
|
378
|
-
: undefined,
|
|
379
|
-
{
|
|
380
|
-
type: "javascript",
|
|
381
|
-
use: "eval"
|
|
382
|
-
}
|
|
383
|
-
].filter(Boolean)
|
|
384
|
-
: false
|
|
385
|
-
)
|
|
386
|
-
);
|
|
387
|
-
|
|
388
370
|
const futureDefaults =
|
|
389
371
|
/** @type {NonNullable<ExperimentsNormalized["futureDefaults"]>} */
|
|
390
372
|
(options.experiments.futureDefaults);
|
|
@@ -436,6 +418,36 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
436
418
|
(options.experiments.asyncWebAssembly)
|
|
437
419
|
});
|
|
438
420
|
|
|
421
|
+
// Placed after `applyOutputDefaults`, which settles `enabledLibraryTypes`. A library
|
|
422
|
+
// is read by another bundler, where an eval wrapper hides `import.meta` from it.
|
|
423
|
+
const noDevSourceMap = /** @type {LibraryType[]} */ (
|
|
424
|
+
options.output.enabledLibraryTypes
|
|
425
|
+
).some(
|
|
426
|
+
(type) => futureDefaults || type === "module" || type === "modern-module"
|
|
427
|
+
);
|
|
428
|
+
|
|
429
|
+
F(
|
|
430
|
+
options,
|
|
431
|
+
"devtool",
|
|
432
|
+
() =>
|
|
433
|
+
/** @type {Devtool} */ (
|
|
434
|
+
development && !noDevSourceMap
|
|
435
|
+
? [
|
|
436
|
+
options.experiments.css
|
|
437
|
+
? {
|
|
438
|
+
type: "css",
|
|
439
|
+
use: "source-map"
|
|
440
|
+
}
|
|
441
|
+
: undefined,
|
|
442
|
+
{
|
|
443
|
+
type: "javascript",
|
|
444
|
+
use: "eval"
|
|
445
|
+
}
|
|
446
|
+
].filter(Boolean)
|
|
447
|
+
: false
|
|
448
|
+
)
|
|
449
|
+
);
|
|
450
|
+
|
|
439
451
|
applyModuleDefaults(options.module, {
|
|
440
452
|
cache,
|
|
441
453
|
hashSalt: /** @type {NonNullable<Output["hashSalt"]>} */ (
|
|
@@ -634,11 +646,15 @@ const applyExperimentsDefaults = (
|
|
|
634
646
|
"asyncWebAssembly",
|
|
635
647
|
experiments.futureDefaults ? true : "auto"
|
|
636
648
|
);
|
|
637
|
-
// the universal target (web + node, neither specific) only works as ESM
|
|
649
|
+
// the universal target (web + node, neither specific) only works as ESM —
|
|
650
|
+
// unless the target cannot read one, which no output format can repair, so
|
|
651
|
+
// leave `output.chunkFormat` to say so rather than emitting a module the
|
|
652
|
+
// target has already reported it will not load
|
|
638
653
|
const universal =
|
|
639
654
|
Boolean(targetProperties) &&
|
|
640
655
|
/** @type {TargetProperties} */ (targetProperties).node === null &&
|
|
641
|
-
/** @type {TargetProperties} */ (targetProperties).web === null
|
|
656
|
+
/** @type {TargetProperties} */ (targetProperties).web === null &&
|
|
657
|
+
/** @type {TargetProperties} */ (targetProperties).module !== false;
|
|
642
658
|
// the deno and bun targets only emit ECMAScript modules
|
|
643
659
|
const deno =
|
|
644
660
|
Boolean(targetProperties) &&
|
|
@@ -1689,6 +1705,9 @@ const applyOutputDefaults = (
|
|
|
1689
1705
|
"const",
|
|
1690
1706
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.const))
|
|
1691
1707
|
);
|
|
1708
|
+
// Only the browserslist target reports these; everywhere else they stay
|
|
1709
|
+
// unset, which `optimistic` reads as the modern spelling being available —
|
|
1710
|
+
// the same policy the JS features above follow.
|
|
1692
1711
|
// `let` was added after `const`; targets predating it report only `const`,
|
|
1693
1712
|
// so fall back to `const` when `let` is unreported (undefined). Targets that
|
|
1694
1713
|
// do report `let` (browserslist, built-ins) keep their own accurate value.
|
|
@@ -1733,6 +1752,14 @@ const applyOutputDefaults = (
|
|
|
1733
1752
|
"forOf",
|
|
1734
1753
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.forOf))
|
|
1735
1754
|
);
|
|
1755
|
+
// Stage 3 syntax, so these are the one pair read pessimistically: a preset that
|
|
1756
|
+
// says nothing means unavailable, and the phase keeps webpack's own form.
|
|
1757
|
+
F(environment, "deferImport", () =>
|
|
1758
|
+
Boolean(tp && /** @type {boolean | undefined} */ (tp.deferImport))
|
|
1759
|
+
);
|
|
1760
|
+
F(environment, "sourceImport", () =>
|
|
1761
|
+
Boolean(tp && /** @type {boolean | undefined} */ (tp.sourceImport))
|
|
1762
|
+
);
|
|
1736
1763
|
F(
|
|
1737
1764
|
environment,
|
|
1738
1765
|
"destructuring",
|
|
@@ -1817,6 +1844,7 @@ const applyOutputDefaults = (
|
|
|
1817
1844
|
output.resourceHints = {};
|
|
1818
1845
|
}
|
|
1819
1846
|
if (output.resourceHints) {
|
|
1847
|
+
D(output.resourceHints, "dedupe", false);
|
|
1820
1848
|
if (output.module) D(output.resourceHints, "initial", true);
|
|
1821
1849
|
// `modulePreloadPolyfill` defaults from the target's modulepreload
|
|
1822
1850
|
// support: inject the polyfill iff the environment lacks it.
|
|
@@ -1918,10 +1946,15 @@ const applyOutputDefaults = (
|
|
|
1918
1946
|
if (tp) {
|
|
1919
1947
|
if (tp.global) return "global";
|
|
1920
1948
|
if (tp.globalThis) return "globalThis";
|
|
1921
|
-
// Universal target (web + node)
|
|
1922
|
-
//
|
|
1923
|
-
|
|
1924
|
-
|
|
1949
|
+
// Universal target (web + node): no one identifier is defined on both
|
|
1950
|
+
// sides, so `globalThis` where the target reports nothing against it,
|
|
1951
|
+
// and a guarded pair where it does — `self` covers window and worker
|
|
1952
|
+
// scopes, `global` covers Node.js. Naming either alone leaves the other
|
|
1953
|
+
// platform reading an undeclared binding.
|
|
1954
|
+
if (tp.web === null && tp.node === null) {
|
|
1955
|
+
return tp.globalThis === undefined
|
|
1956
|
+
? "globalThis"
|
|
1957
|
+
: 'typeof self !== "undefined" ? self : global';
|
|
1925
1958
|
}
|
|
1926
1959
|
}
|
|
1927
1960
|
return "self";
|
|
@@ -2054,7 +2087,9 @@ const applyOutputDefaults = (
|
|
|
2054
2087
|
"hotUpdateMainFilename",
|
|
2055
2088
|
// Only `chunkLoading: "import"` loads the manifest via `import()` (needs an
|
|
2056
2089
|
// `export default` ES module); every other loader fetches it as raw JSON.
|
|
2057
|
-
`[runtime].[fullhash].hot-update.${
|
|
2090
|
+
`[runtime].[fullhash].hot-update.${
|
|
2091
|
+
output.chunkLoading === "import" ? "json.mjs" : "json"
|
|
2092
|
+
}`
|
|
2058
2093
|
);
|
|
2059
2094
|
D(output, "crossOriginLoading", false);
|
|
2060
2095
|
F(output, "scriptType", () => (output.module ? "module" : false));
|
|
@@ -2195,6 +2230,8 @@ const applyExternalsPresetsDefaults = (
|
|
|
2195
2230
|
isUniversal("node"))
|
|
2196
2231
|
)
|
|
2197
2232
|
);
|
|
2233
|
+
// Opt-in only: never auto-externalize installed packages, it would change existing builds.
|
|
2234
|
+
D(externalsPresets, "nodeModules", false);
|
|
2198
2235
|
D(
|
|
2199
2236
|
externalsPresets,
|
|
2200
2237
|
"deno",
|
|
@@ -2348,6 +2385,39 @@ const applyPerformanceDefaults = (performance, { production }) => {
|
|
|
2348
2385
|
if (performance === false) return;
|
|
2349
2386
|
D(performance, "maxAssetSize", 250000);
|
|
2350
2387
|
D(performance, "maxEntrypointSize", 250000);
|
|
2388
|
+
// Stands in for every check left unset, so an explicit one still wins.
|
|
2389
|
+
const all = performance.all !== undefined ? performance.all : false;
|
|
2390
|
+
|
|
2391
|
+
D(performance, "asyncChunkWaterfalls", all);
|
|
2392
|
+
D(performance, "broadContexts", all);
|
|
2393
|
+
D(performance, "cacheEffectiveness", all);
|
|
2394
|
+
D(performance, "circularDependencies", all);
|
|
2395
|
+
D(performance, "conflictingResourceHints", all);
|
|
2396
|
+
D(performance, "duplicateModules", all);
|
|
2397
|
+
D(performance, "duplicatePackages", all);
|
|
2398
|
+
D(performance, "dynamicExports", all);
|
|
2399
|
+
D(performance, "entrypointOverlap", all);
|
|
2400
|
+
D(performance, "embeddedSourceMaps", all);
|
|
2401
|
+
D(performance, "evalUsage", all);
|
|
2402
|
+
D(performance, "hotspots", all);
|
|
2403
|
+
D(performance, "legacyJavascript", all);
|
|
2404
|
+
D(performance, "largeModules", all);
|
|
2405
|
+
D(performance, "inlinedAssets", all);
|
|
2406
|
+
D(performance, "mixedExports", all);
|
|
2407
|
+
D(performance, "missingSideEffects", all);
|
|
2408
|
+
D(performance, "osDependentRules", all);
|
|
2409
|
+
D(performance, "pureAnnotations", all);
|
|
2410
|
+
D(performance, "redundantDynamicImports", all);
|
|
2411
|
+
D(performance, "scopeHoistingBailouts", all);
|
|
2412
|
+
D(performance, "splitChunksCapped", all);
|
|
2413
|
+
D(performance, "tinyChunks", all);
|
|
2414
|
+
D(performance, "topLevelThis", all);
|
|
2415
|
+
D(performance, "unsplitVendors", all);
|
|
2416
|
+
D(performance, "unusedAliases", all);
|
|
2417
|
+
D(performance, "unusedDefines", all);
|
|
2418
|
+
D(performance, "unusedExternals", all);
|
|
2419
|
+
D(performance, "unusedReexports", all);
|
|
2420
|
+
D(performance, "unusedRules", all);
|
|
2351
2421
|
F(performance, "hints", () => (production ? "warning" : false));
|
|
2352
2422
|
};
|
|
2353
2423
|
|
|
@@ -2393,19 +2463,131 @@ const applyOptimizationDefaults = (
|
|
|
2393
2463
|
D(optimization, "mangleWasmImports", false);
|
|
2394
2464
|
D(optimization, "portableRecords", records);
|
|
2395
2465
|
D(optimization, "realContentHash", production);
|
|
2396
|
-
|
|
2466
|
+
F(optimization, "minimize", () => (production ? {} : false));
|
|
2467
|
+
// A plugin can assign the `true` shorthand in `apply()`, which runs after
|
|
2468
|
+
// `getNormalizedOptimizationMinimize` and so never gets normalized. The
|
|
2469
|
+
// normalized type does not allow it, hence the cast.
|
|
2470
|
+
if (/** @type {unknown} */ (optimization.minimize) === true) {
|
|
2471
|
+
optimization.minimize = {};
|
|
2472
|
+
}
|
|
2473
|
+
const { minimize } = optimization;
|
|
2474
|
+
if (minimize) {
|
|
2475
|
+
// Canonicalize the object form: the JS minimizer's defaults become
|
|
2476
|
+
// visible in the resolved config rather than hidden in the wiring.
|
|
2477
|
+
F(minimize, "javascript", () => ({ compress: { passes: 2 } }));
|
|
2478
|
+
F(minimize, "css", () => ({}));
|
|
2479
|
+
F(minimize, "html", () => ({}));
|
|
2480
|
+
}
|
|
2397
2481
|
A(optimization, "minimizer", () => [
|
|
2398
2482
|
{
|
|
2399
2483
|
apply: (compiler) => {
|
|
2400
2484
|
// Lazy load the minimizer plugin
|
|
2401
2485
|
const TerserPlugin = require("minimizer-webpack-plugin");
|
|
2402
2486
|
|
|
2487
|
+
// One minimizer instance (one worker-thread pool) handles JS and, when
|
|
2488
|
+
// native CSS / HTML is enabled, those assets too — an array of minify
|
|
2489
|
+
// functions each dispatched by its own `filter` (terser -> JS,
|
|
2490
|
+
// cssMinify -> CSS, htmlMinify -> HTML). The CSS / HTML serializers stay
|
|
2491
|
+
// worker-safe by resolving their parser with `require("webpack/…")` in
|
|
2492
|
+
// the worker, so all three share the same pool. `test` is widened to let
|
|
2493
|
+
// CSS / HTML assets reach the dispatcher.
|
|
2494
|
+
// Step aside for a minimizer the user already configured for these
|
|
2495
|
+
// types: whichever of the two ran first would mark the asset
|
|
2496
|
+
// `minimized` and silently disable the other, so webpack only claims
|
|
2497
|
+
// what nothing else does. Their asset matchers are read directly rather
|
|
2498
|
+
// than resolved per asset — a coarse check, but it keeps the outcome
|
|
2499
|
+
// independent of tap order and of the plugin version in use.
|
|
2500
|
+
const claimedByOtherMinimizer = require("./getClaimedAssetTypes")(
|
|
2501
|
+
compiler
|
|
2502
|
+
);
|
|
2503
|
+
|
|
2504
|
+
// Normalized + defaulted `optimization.minimize` is the per-asset-type
|
|
2505
|
+
// object here: `false` disables a type, an object is its options.
|
|
2506
|
+
const minimizeByType = /** @type {OptimizationMinimizeOptions} */ (
|
|
2507
|
+
compiler.options.optimization.minimize
|
|
2508
|
+
);
|
|
2509
|
+
const terserOptions = minimizeByType.javascript || {
|
|
2510
|
+
compress: { passes: 2 }
|
|
2511
|
+
};
|
|
2512
|
+
|
|
2513
|
+
const { css, html } = compiler.options.experiments;
|
|
2514
|
+
const minifyJs = minimizeByType.javascript !== false;
|
|
2515
|
+
const minifyCss =
|
|
2516
|
+
Boolean(css) &&
|
|
2517
|
+
!claimedByOtherMinimizer.css &&
|
|
2518
|
+
minimizeByType.css !== false;
|
|
2519
|
+
const minifyHtml =
|
|
2520
|
+
Boolean(html) &&
|
|
2521
|
+
!claimedByOtherMinimizer.html &&
|
|
2522
|
+
minimizeByType.html !== false;
|
|
2523
|
+
if (!minifyJs && !minifyCss && !minifyHtml) return;
|
|
2524
|
+
if (minifyJs && !minifyCss && !minifyHtml) {
|
|
2525
|
+
new TerserPlugin({ terserOptions }).apply(
|
|
2526
|
+
/** @type {EXPECTED_ANY} */ (compiler)
|
|
2527
|
+
);
|
|
2528
|
+
return;
|
|
2529
|
+
}
|
|
2530
|
+
/** @type {(typeof TerserPlugin.terserMinify | typeof import("../css/cssMinify") | typeof import("../html/htmlMinify"))[]} */
|
|
2531
|
+
const minify = [];
|
|
2532
|
+
/** @type {EXPECTED_OBJECT[]} */
|
|
2533
|
+
const minimizerOptions = [];
|
|
2534
|
+
/** @type {string[]} */
|
|
2535
|
+
const extensions = [];
|
|
2536
|
+
// `minimize.css` follows the CSS minifier wherever it runs: the HTML
|
|
2537
|
+
// entry gets the same options, like the shared environment below.
|
|
2538
|
+
const cssOptions =
|
|
2539
|
+
typeof minimizeByType.css === "object"
|
|
2540
|
+
? minimizeByType.css
|
|
2541
|
+
: undefined;
|
|
2542
|
+
// The browserslist selection, when the target is one. It decides both the
|
|
2543
|
+
// prefixes and every spelling a target can read, so `vendorPrefixes`
|
|
2544
|
+
// turns off the first alone — resolving it is what the second needs.
|
|
2545
|
+
const { target } = compiler.options;
|
|
2546
|
+
const browsers = target
|
|
2547
|
+
? getTargetsBrowsers(
|
|
2548
|
+
Array.isArray(target) ? target : [target],
|
|
2549
|
+
/** @type {Context} */ (compiler.options.context)
|
|
2550
|
+
)
|
|
2551
|
+
: undefined;
|
|
2552
|
+
const cssEnvironment = {
|
|
2553
|
+
browsers,
|
|
2554
|
+
vendorPrefixes:
|
|
2555
|
+
cssOptions === undefined || cssOptions.vendorPrefixes !== false
|
|
2556
|
+
};
|
|
2557
|
+
const htmlOptions =
|
|
2558
|
+
typeof minimizeByType.html === "object"
|
|
2559
|
+
? minimizeByType.html
|
|
2560
|
+
: undefined;
|
|
2561
|
+
if (minifyJs) {
|
|
2562
|
+
minify.push(TerserPlugin.terserMinify);
|
|
2563
|
+
minimizerOptions.push(terserOptions);
|
|
2564
|
+
extensions.push("[cm]?js");
|
|
2565
|
+
}
|
|
2566
|
+
if (minifyCss) {
|
|
2567
|
+
minify.push(require("../css/cssMinify"));
|
|
2568
|
+
minimizerOptions.push({
|
|
2569
|
+
environment: cssEnvironment,
|
|
2570
|
+
...cssOptions
|
|
2571
|
+
});
|
|
2572
|
+
extensions.push("css");
|
|
2573
|
+
}
|
|
2574
|
+
if (minifyHtml) {
|
|
2575
|
+
minify.push(require("../html/htmlMinify"));
|
|
2576
|
+
// `minimize.css` rides along under its own key rather than spread
|
|
2577
|
+
// beside the HTML options: the two name some of the same switches
|
|
2578
|
+
// (`quotes`, `comments`), and one flat object would hand
|
|
2579
|
+
// each language the other's answer.
|
|
2580
|
+
minimizerOptions.push({
|
|
2581
|
+
environment: cssEnvironment,
|
|
2582
|
+
css: cssOptions,
|
|
2583
|
+
...htmlOptions
|
|
2584
|
+
});
|
|
2585
|
+
extensions.push("html");
|
|
2586
|
+
}
|
|
2403
2587
|
new TerserPlugin({
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
}
|
|
2408
|
-
}
|
|
2588
|
+
test: new RegExp(`\\.(?:${extensions.join("|")})(\\?.*)?$`, "i"),
|
|
2589
|
+
minify,
|
|
2590
|
+
minimizerOptions
|
|
2409
2591
|
}).apply(/** @type {EXPECTED_ANY} */ (compiler));
|
|
2410
2592
|
}
|
|
2411
2593
|
}
|
|
@@ -5,8 +5,16 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @import {
|
|
10
|
+
* WebpackOptions as Configuration
|
|
11
|
+
* } from "../../declarations/WebpackOptions"
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @import {
|
|
15
|
+
* MultiWebpackOptions as MultiConfiguration
|
|
16
|
+
* } from "../MultiCompiler"
|
|
17
|
+
*/
|
|
10
18
|
|
|
11
19
|
/**
|
|
12
20
|
* @template T
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author sheo13666q @sheo13666q
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const { matchObject } = require("../ModuleFilenameHelpers");
|
|
9
|
+
|
|
10
|
+
/** @import Compiler from "../Compiler" */
|
|
11
|
+
/** @import { MatchObject } from "../ModuleFilenameHelpers" */
|
|
12
|
+
/** @typedef {MatchObject & { minimizer?: EXPECTED_OBJECT }} MinimizerOptions */
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {unknown} candidate a configured plugin or minimizer entry
|
|
16
|
+
* @param {string} file probe filename
|
|
17
|
+
* @returns {boolean} whether the candidate minimizes that file
|
|
18
|
+
*/
|
|
19
|
+
const claims = (candidate, file) => {
|
|
20
|
+
// Every minimizer in the `minimizer-webpack-plugin` family (itself,
|
|
21
|
+
// `css-minimizer-webpack-plugin`, `html-minimizer-webpack-plugin`, …) keeps
|
|
22
|
+
// the minify implementation on `options.minimizer` and its asset matcher
|
|
23
|
+
// alongside it in the shape `matchObject` reads. The matcher alone is not
|
|
24
|
+
// enough to recognize one: `BannerPlugin` and `SourceMapDevToolPlugin` carry
|
|
25
|
+
// the same three keys, and `LoaderOptionsPlugin` defaults `test` to match
|
|
26
|
+
// every file — reading those as minimizers would disable minification.
|
|
27
|
+
const { options } = /** @type {{ options?: MinimizerOptions }} */ (candidate);
|
|
28
|
+
if (!options || !options.minimizer) return false;
|
|
29
|
+
// `test`/`include` say which types it handles, `exclude` only narrows the
|
|
30
|
+
// files within them — honouring that narrowing would make a minimizer scoped
|
|
31
|
+
// to a subdirectory claim nothing, and webpack would then race it on the very
|
|
32
|
+
// files it was configured for.
|
|
33
|
+
const { test, include } = options;
|
|
34
|
+
return (
|
|
35
|
+
(test !== undefined && matchObject({ test }, file)) ||
|
|
36
|
+
(include !== undefined && matchObject({ include }, file))
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Which asset types the user's own configuration already minimizes, so webpack's
|
|
42
|
+
* default minimizer can leave those alone instead of racing the user's plugin
|
|
43
|
+
* for them (the loser is skipped via `minimized` asset info, so without this
|
|
44
|
+
* whichever tapped first would win). Deliberately coarse: it reads a plugin's
|
|
45
|
+
* matcher rather than resolving it per emitted asset, so a minimizer restricted
|
|
46
|
+
* to some of a type's files still claims the whole type.
|
|
47
|
+
* @param {Compiler} compiler the compiler
|
|
48
|
+
* @returns {{ css: boolean, html: boolean }} types another minimizer handles
|
|
49
|
+
*/
|
|
50
|
+
module.exports = (compiler) => {
|
|
51
|
+
const { optimization, plugins } = compiler.options;
|
|
52
|
+
let css = false;
|
|
53
|
+
let html = false;
|
|
54
|
+
// Both lists are normalized arrays with falsy entries already filtered out,
|
|
55
|
+
// and `minimizer` was filled in by the defaults before any plugin applies.
|
|
56
|
+
const minimizer =
|
|
57
|
+
/** @type {NonNullable<typeof optimization.minimizer>} */
|
|
58
|
+
(optimization.minimizer);
|
|
59
|
+
for (const candidate of [...minimizer, ...plugins]) {
|
|
60
|
+
if (!css) css = claims(candidate, "file.css");
|
|
61
|
+
if (!html) html = claims(candidate, "file.html");
|
|
62
|
+
if (css && html) break;
|
|
63
|
+
}
|
|
64
|
+
return { css, html };
|
|
65
|
+
};
|
|
@@ -7,22 +7,27 @@
|
|
|
7
7
|
|
|
8
8
|
const util = require("util");
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @import {
|
|
12
|
+
* CacheOptionsNormalized as CacheOptions,
|
|
13
|
+
* EntryDescriptionNormalized,
|
|
14
|
+
* EntryStatic,
|
|
15
|
+
* EntryStaticNormalized,
|
|
16
|
+
* Externals,
|
|
17
|
+
* LibraryName,
|
|
18
|
+
* LibraryOptions,
|
|
19
|
+
* ModuleOptionsNormalized,
|
|
20
|
+
* Optimization,
|
|
21
|
+
* OptimizationNormalized,
|
|
22
|
+
* OptimizationRuntimeChunk,
|
|
23
|
+
* OptimizationRuntimeChunkNormalized,
|
|
24
|
+
* OutputNormalized,
|
|
25
|
+
* PluginsNormalized,
|
|
26
|
+
* WebpackOptions,
|
|
27
|
+
* WebpackOptionsNormalized
|
|
28
|
+
* } from "../../declarations/WebpackOptions"
|
|
29
|
+
*/
|
|
30
|
+
/** @import WebpackError from "../errors/WebpackError" */
|
|
26
31
|
|
|
27
32
|
/**
|
|
28
33
|
* Defines the webpack options interception type used by this module.
|
|
@@ -326,6 +331,7 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
326
331
|
cacheGroups: cloneObject(splitChunks.cacheGroups)
|
|
327
332
|
}
|
|
328
333
|
),
|
|
334
|
+
minimize: getNormalizedOptimizationMinimize(optimization.minimize),
|
|
329
335
|
minimizer:
|
|
330
336
|
optimization.minimizer !== undefined
|
|
331
337
|
? /** @type {OptimizationNormalized["minimizer"]} */ (
|
|
@@ -419,6 +425,7 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
419
425
|
? output.libraryExport
|
|
420
426
|
: libraryBase.export,
|
|
421
427
|
name: libraryBase.name,
|
|
428
|
+
umdAmdContainer: libraryBase.umdAmdContainer,
|
|
422
429
|
umdNamedDefine:
|
|
423
430
|
output.umdNamedDefine !== undefined
|
|
424
431
|
? output.umdNamedDefine
|
|
@@ -604,6 +611,19 @@ const getNormalizedEntryStatic = (entry) => {
|
|
|
604
611
|
return result;
|
|
605
612
|
};
|
|
606
613
|
|
|
614
|
+
/**
|
|
615
|
+
* Gets normalized optimization minimize: the `true` shorthand becomes an empty
|
|
616
|
+
* per-asset-type object, so downstream only sees `false` or the object form.
|
|
617
|
+
* @param {Optimization["minimize"]} minimize minimize option
|
|
618
|
+
* @returns {OptimizationNormalized["minimize"]} normalized minimize option
|
|
619
|
+
*/
|
|
620
|
+
const getNormalizedOptimizationMinimize = (minimize) => {
|
|
621
|
+
if (minimize === undefined) return;
|
|
622
|
+
if (minimize === false) return false;
|
|
623
|
+
if (minimize === true) return {};
|
|
624
|
+
return cloneObject(minimize);
|
|
625
|
+
};
|
|
626
|
+
|
|
607
627
|
/**
|
|
608
628
|
* Gets normalized optimization runtime chunk.
|
|
609
629
|
* @param {OptimizationRuntimeChunk=} runtimeChunk runtimeChunk option
|