@depup/webpack 5.109.2-depup.0 → 5.110.3-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 +46 -35
- 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 +107 -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 +91 -26
- 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 +111 -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 +40 -49
- 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 +152 -103
- 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 +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- 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 +12 -6
- 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 +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -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 +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- 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 +5334 -0
- package/lib/css/syntax.js +9647 -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 +170 -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 +24 -11
- 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 +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- 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 +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -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 +49 -31
- 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 +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- 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 +73 -49
- 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 +50 -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 +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- 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/DotenvFileError.js +29 -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/ImportedBindingAssignmentError.js +30 -0
- 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 +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -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 +366 -200
- 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 +6034 -1384
- 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 +103 -123
- 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 +47 -6
- 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 +65 -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 +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -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 +121 -41
- 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 -79
- 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 +6 -2
- 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 +34 -7
- 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 +46 -20
- 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 +22 -9
- 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 +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- 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 +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -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 +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- 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 +8 -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/removeBOM.js +82 -1
- 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 +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -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 +29 -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 +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -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 +667 -34
- 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 +3223 -465
- 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.
|
|
@@ -173,6 +179,7 @@ const {
|
|
|
173
179
|
* portableRecords: NonNullable<Optimization["portableRecords"]>,
|
|
174
180
|
* realContentHash: NonNullable<Optimization["realContentHash"]>,
|
|
175
181
|
* minimize: NonNullable<Optimization["minimize"]>,
|
|
182
|
+
* minimizeOptions: NonNullable<Optimization["minimizeOptions"]>,
|
|
176
183
|
* minimizer: NonNullable<Exclude<Optimization["minimizer"], "...">>,
|
|
177
184
|
* nodeEnv: NonNullable<Optimization["nodeEnv"]>,
|
|
178
185
|
* }} OptimizationNormalizedWithDefaults
|
|
@@ -361,30 +368,6 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
361
368
|
rules: options.module.rules
|
|
362
369
|
});
|
|
363
370
|
|
|
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
371
|
const futureDefaults =
|
|
389
372
|
/** @type {NonNullable<ExperimentsNormalized["futureDefaults"]>} */
|
|
390
373
|
(options.experiments.futureDefaults);
|
|
@@ -436,6 +419,36 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
436
419
|
(options.experiments.asyncWebAssembly)
|
|
437
420
|
});
|
|
438
421
|
|
|
422
|
+
// Placed after `applyOutputDefaults`, which settles `enabledLibraryTypes`. A library
|
|
423
|
+
// is read by another bundler, where an eval wrapper hides `import.meta` from it.
|
|
424
|
+
const noDevSourceMap = /** @type {LibraryType[]} */ (
|
|
425
|
+
options.output.enabledLibraryTypes
|
|
426
|
+
).some(
|
|
427
|
+
(type) => futureDefaults || type === "module" || type === "modern-module"
|
|
428
|
+
);
|
|
429
|
+
|
|
430
|
+
F(
|
|
431
|
+
options,
|
|
432
|
+
"devtool",
|
|
433
|
+
() =>
|
|
434
|
+
/** @type {Devtool} */ (
|
|
435
|
+
development && !noDevSourceMap
|
|
436
|
+
? [
|
|
437
|
+
options.experiments.css
|
|
438
|
+
? {
|
|
439
|
+
type: "css",
|
|
440
|
+
use: "source-map"
|
|
441
|
+
}
|
|
442
|
+
: undefined,
|
|
443
|
+
{
|
|
444
|
+
type: "javascript",
|
|
445
|
+
use: "eval"
|
|
446
|
+
}
|
|
447
|
+
].filter(Boolean)
|
|
448
|
+
: false
|
|
449
|
+
)
|
|
450
|
+
);
|
|
451
|
+
|
|
439
452
|
applyModuleDefaults(options.module, {
|
|
440
453
|
cache,
|
|
441
454
|
hashSalt: /** @type {NonNullable<Output["hashSalt"]>} */ (
|
|
@@ -634,11 +647,15 @@ const applyExperimentsDefaults = (
|
|
|
634
647
|
"asyncWebAssembly",
|
|
635
648
|
experiments.futureDefaults ? true : "auto"
|
|
636
649
|
);
|
|
637
|
-
// the universal target (web + node, neither specific) only works as ESM
|
|
650
|
+
// the universal target (web + node, neither specific) only works as ESM —
|
|
651
|
+
// unless the target cannot read one, which no output format can repair, so
|
|
652
|
+
// leave `output.chunkFormat` to say so rather than emitting a module the
|
|
653
|
+
// target has already reported it will not load
|
|
638
654
|
const universal =
|
|
639
655
|
Boolean(targetProperties) &&
|
|
640
656
|
/** @type {TargetProperties} */ (targetProperties).node === null &&
|
|
641
|
-
/** @type {TargetProperties} */ (targetProperties).web === null
|
|
657
|
+
/** @type {TargetProperties} */ (targetProperties).web === null &&
|
|
658
|
+
/** @type {TargetProperties} */ (targetProperties).module !== false;
|
|
642
659
|
// the deno and bun targets only emit ECMAScript modules
|
|
643
660
|
const deno =
|
|
644
661
|
Boolean(targetProperties) &&
|
|
@@ -1689,6 +1706,9 @@ const applyOutputDefaults = (
|
|
|
1689
1706
|
"const",
|
|
1690
1707
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.const))
|
|
1691
1708
|
);
|
|
1709
|
+
// Only the browserslist target reports these; everywhere else they stay
|
|
1710
|
+
// unset, which `optimistic` reads as the modern spelling being available —
|
|
1711
|
+
// the same policy the JS features above follow.
|
|
1692
1712
|
// `let` was added after `const`; targets predating it report only `const`,
|
|
1693
1713
|
// so fall back to `const` when `let` is unreported (undefined). Targets that
|
|
1694
1714
|
// do report `let` (browserslist, built-ins) keep their own accurate value.
|
|
@@ -1728,11 +1748,21 @@ const applyOutputDefaults = (
|
|
|
1728
1748
|
"generator",
|
|
1729
1749
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.generator))
|
|
1730
1750
|
);
|
|
1751
|
+
// No `topLevelAwait` here: the option is held back from the patch release,
|
|
1752
|
+
// so nothing derives it from `tp` yet. Reapply by reverting #21881.
|
|
1731
1753
|
F(
|
|
1732
1754
|
environment,
|
|
1733
1755
|
"forOf",
|
|
1734
1756
|
() => tp && optimistic(/** @type {boolean | undefined} */ (tp.forOf))
|
|
1735
1757
|
);
|
|
1758
|
+
// Stage 3 syntax, so these are the one pair read pessimistically: a preset that
|
|
1759
|
+
// says nothing means unavailable, and the phase keeps webpack's own form.
|
|
1760
|
+
F(environment, "deferImport", () =>
|
|
1761
|
+
Boolean(tp && /** @type {boolean | undefined} */ (tp.deferImport))
|
|
1762
|
+
);
|
|
1763
|
+
F(environment, "sourceImport", () =>
|
|
1764
|
+
Boolean(tp && /** @type {boolean | undefined} */ (tp.sourceImport))
|
|
1765
|
+
);
|
|
1736
1766
|
F(
|
|
1737
1767
|
environment,
|
|
1738
1768
|
"destructuring",
|
|
@@ -1817,6 +1847,7 @@ const applyOutputDefaults = (
|
|
|
1817
1847
|
output.resourceHints = {};
|
|
1818
1848
|
}
|
|
1819
1849
|
if (output.resourceHints) {
|
|
1850
|
+
D(output.resourceHints, "dedupe", false);
|
|
1820
1851
|
if (output.module) D(output.resourceHints, "initial", true);
|
|
1821
1852
|
// `modulePreloadPolyfill` defaults from the target's modulepreload
|
|
1822
1853
|
// support: inject the polyfill iff the environment lacks it.
|
|
@@ -1918,10 +1949,15 @@ const applyOutputDefaults = (
|
|
|
1918
1949
|
if (tp) {
|
|
1919
1950
|
if (tp.global) return "global";
|
|
1920
1951
|
if (tp.globalThis) return "globalThis";
|
|
1921
|
-
// Universal target (web + node)
|
|
1922
|
-
//
|
|
1923
|
-
|
|
1924
|
-
|
|
1952
|
+
// Universal target (web + node): no one identifier is defined on both
|
|
1953
|
+
// sides, so `globalThis` where the target reports nothing against it,
|
|
1954
|
+
// and a guarded pair where it does — `self` covers window and worker
|
|
1955
|
+
// scopes, `global` covers Node.js. Naming either alone leaves the other
|
|
1956
|
+
// platform reading an undeclared binding.
|
|
1957
|
+
if (tp.web === null && tp.node === null) {
|
|
1958
|
+
return tp.globalThis === undefined
|
|
1959
|
+
? "globalThis"
|
|
1960
|
+
: 'typeof self !== "undefined" ? self : global';
|
|
1925
1961
|
}
|
|
1926
1962
|
}
|
|
1927
1963
|
return "self";
|
|
@@ -2054,7 +2090,9 @@ const applyOutputDefaults = (
|
|
|
2054
2090
|
"hotUpdateMainFilename",
|
|
2055
2091
|
// Only `chunkLoading: "import"` loads the manifest via `import()` (needs an
|
|
2056
2092
|
// `export default` ES module); every other loader fetches it as raw JSON.
|
|
2057
|
-
`[runtime].[fullhash].hot-update.${
|
|
2093
|
+
`[runtime].[fullhash].hot-update.${
|
|
2094
|
+
output.chunkLoading === "import" ? "json.mjs" : "json"
|
|
2095
|
+
}`
|
|
2058
2096
|
);
|
|
2059
2097
|
D(output, "crossOriginLoading", false);
|
|
2060
2098
|
F(output, "scriptType", () => (output.module ? "module" : false));
|
|
@@ -2195,6 +2233,8 @@ const applyExternalsPresetsDefaults = (
|
|
|
2195
2233
|
isUniversal("node"))
|
|
2196
2234
|
)
|
|
2197
2235
|
);
|
|
2236
|
+
// Opt-in only: never auto-externalize installed packages, it would change existing builds.
|
|
2237
|
+
D(externalsPresets, "nodeModules", false);
|
|
2198
2238
|
D(
|
|
2199
2239
|
externalsPresets,
|
|
2200
2240
|
"deno",
|
|
@@ -2348,6 +2388,39 @@ const applyPerformanceDefaults = (performance, { production }) => {
|
|
|
2348
2388
|
if (performance === false) return;
|
|
2349
2389
|
D(performance, "maxAssetSize", 250000);
|
|
2350
2390
|
D(performance, "maxEntrypointSize", 250000);
|
|
2391
|
+
// Stands in for every check left unset, so an explicit one still wins.
|
|
2392
|
+
const all = performance.all !== undefined ? performance.all : false;
|
|
2393
|
+
|
|
2394
|
+
D(performance, "asyncChunkWaterfalls", all);
|
|
2395
|
+
D(performance, "broadContexts", all);
|
|
2396
|
+
D(performance, "cacheEffectiveness", all);
|
|
2397
|
+
D(performance, "circularDependencies", all);
|
|
2398
|
+
D(performance, "conflictingResourceHints", all);
|
|
2399
|
+
D(performance, "duplicateModules", all);
|
|
2400
|
+
D(performance, "duplicatePackages", all);
|
|
2401
|
+
D(performance, "dynamicExports", all);
|
|
2402
|
+
D(performance, "entrypointOverlap", all);
|
|
2403
|
+
D(performance, "embeddedSourceMaps", all);
|
|
2404
|
+
D(performance, "evalUsage", all);
|
|
2405
|
+
D(performance, "hotspots", all);
|
|
2406
|
+
D(performance, "legacyJavascript", all);
|
|
2407
|
+
D(performance, "largeModules", all);
|
|
2408
|
+
D(performance, "inlinedAssets", all);
|
|
2409
|
+
D(performance, "mixedExports", all);
|
|
2410
|
+
D(performance, "missingSideEffects", all);
|
|
2411
|
+
D(performance, "osDependentRules", all);
|
|
2412
|
+
D(performance, "pureAnnotations", all);
|
|
2413
|
+
D(performance, "redundantDynamicImports", all);
|
|
2414
|
+
D(performance, "scopeHoistingBailouts", all);
|
|
2415
|
+
D(performance, "splitChunksCapped", all);
|
|
2416
|
+
D(performance, "tinyChunks", all);
|
|
2417
|
+
D(performance, "topLevelThis", all);
|
|
2418
|
+
D(performance, "unsplitVendors", all);
|
|
2419
|
+
D(performance, "unusedAliases", all);
|
|
2420
|
+
D(performance, "unusedDefines", all);
|
|
2421
|
+
D(performance, "unusedExternals", all);
|
|
2422
|
+
D(performance, "unusedReexports", all);
|
|
2423
|
+
D(performance, "unusedRules", all);
|
|
2351
2424
|
F(performance, "hints", () => (production ? "warning" : false));
|
|
2352
2425
|
};
|
|
2353
2426
|
|
|
@@ -2393,19 +2466,138 @@ const applyOptimizationDefaults = (
|
|
|
2393
2466
|
D(optimization, "mangleWasmImports", false);
|
|
2394
2467
|
D(optimization, "portableRecords", records);
|
|
2395
2468
|
D(optimization, "realContentHash", production);
|
|
2469
|
+
// A plugin assigning the object shorthand in `apply()` runs after
|
|
2470
|
+
// normalization: it replaces `minimizeOptions`, keeping `minimize` boolean.
|
|
2471
|
+
const minimizeAssignedInApply = /** @type {unknown} */ (
|
|
2472
|
+
optimization.minimize
|
|
2473
|
+
);
|
|
2474
|
+
if (typeof minimizeAssignedInApply === "object") {
|
|
2475
|
+
optimization.minimizeOptions = /** @type {OptimizationMinimizeOptions} */ (
|
|
2476
|
+
minimizeAssignedInApply
|
|
2477
|
+
);
|
|
2478
|
+
optimization.minimize = true;
|
|
2479
|
+
}
|
|
2396
2480
|
D(optimization, "minimize", production);
|
|
2481
|
+
F(optimization, "minimizeOptions", () => ({}));
|
|
2482
|
+
const minimizeOptions =
|
|
2483
|
+
/** @type {NonNullable<Optimization["minimizeOptions"]>} */
|
|
2484
|
+
(optimization.minimizeOptions);
|
|
2485
|
+
if (optimization.minimize) {
|
|
2486
|
+
// Canonicalize the per-asset-type options: the JS minimizer's defaults
|
|
2487
|
+
// become visible in the resolved config rather than hidden in the wiring.
|
|
2488
|
+
F(minimizeOptions, "javascript", () => ({ compress: { passes: 2 } }));
|
|
2489
|
+
F(minimizeOptions, "css", () => ({}));
|
|
2490
|
+
F(minimizeOptions, "html", () => ({}));
|
|
2491
|
+
}
|
|
2397
2492
|
A(optimization, "minimizer", () => [
|
|
2398
2493
|
{
|
|
2399
2494
|
apply: (compiler) => {
|
|
2400
2495
|
// Lazy load the minimizer plugin
|
|
2401
2496
|
const TerserPlugin = require("minimizer-webpack-plugin");
|
|
2402
2497
|
|
|
2498
|
+
// One minimizer instance (one worker-thread pool) handles JS and, when
|
|
2499
|
+
// native CSS / HTML is enabled, those assets too — an array of minify
|
|
2500
|
+
// functions each dispatched by its own `filter` (terser -> JS,
|
|
2501
|
+
// cssMinify -> CSS, htmlMinify -> HTML). The CSS / HTML serializers stay
|
|
2502
|
+
// worker-safe by resolving their parser with `require("webpack/…")` in
|
|
2503
|
+
// the worker, so all three share the same pool. `test` is widened to let
|
|
2504
|
+
// CSS / HTML assets reach the dispatcher.
|
|
2505
|
+
// Step aside for a minimizer the user already configured for these
|
|
2506
|
+
// types: whichever of the two ran first would mark the asset
|
|
2507
|
+
// `minimized` and silently disable the other, so webpack only claims
|
|
2508
|
+
// what nothing else does. Their asset matchers are read directly rather
|
|
2509
|
+
// than resolved per asset — a coarse check, but it keeps the outcome
|
|
2510
|
+
// independent of tap order and of the plugin version in use.
|
|
2511
|
+
const claimedByOtherMinimizer = require("./getClaimedAssetTypes")(
|
|
2512
|
+
compiler
|
|
2513
|
+
);
|
|
2514
|
+
|
|
2515
|
+
// Per asset type: `false` disables that type, an object is its options.
|
|
2516
|
+
const minimizeByType = /** @type {OptimizationMinimizeOptions} */ (
|
|
2517
|
+
compiler.options.optimization.minimizeOptions
|
|
2518
|
+
);
|
|
2519
|
+
const terserOptions = minimizeByType.javascript || {
|
|
2520
|
+
compress: { passes: 2 }
|
|
2521
|
+
};
|
|
2522
|
+
|
|
2523
|
+
const { css, html } = compiler.options.experiments;
|
|
2524
|
+
const minifyJs = minimizeByType.javascript !== false;
|
|
2525
|
+
const minifyCss =
|
|
2526
|
+
Boolean(css) &&
|
|
2527
|
+
!claimedByOtherMinimizer.css &&
|
|
2528
|
+
minimizeByType.css !== false;
|
|
2529
|
+
const minifyHtml =
|
|
2530
|
+
Boolean(html) &&
|
|
2531
|
+
!claimedByOtherMinimizer.html &&
|
|
2532
|
+
minimizeByType.html !== false;
|
|
2533
|
+
if (!minifyJs && !minifyCss && !minifyHtml) return;
|
|
2534
|
+
if (minifyJs && !minifyCss && !minifyHtml) {
|
|
2535
|
+
new TerserPlugin({ terserOptions }).apply(
|
|
2536
|
+
/** @type {EXPECTED_ANY} */ (compiler)
|
|
2537
|
+
);
|
|
2538
|
+
return;
|
|
2539
|
+
}
|
|
2540
|
+
/** @type {(typeof TerserPlugin.terserMinify | typeof import("../css/cssMinify") | typeof import("../html/htmlMinify"))[]} */
|
|
2541
|
+
const minify = [];
|
|
2542
|
+
/** @type {EXPECTED_OBJECT[]} */
|
|
2543
|
+
const minimizerOptions = [];
|
|
2544
|
+
/** @type {string[]} */
|
|
2545
|
+
const extensions = [];
|
|
2546
|
+
// `minimize.css` follows the CSS minifier wherever it runs: the HTML
|
|
2547
|
+
// entry gets the same options, like the shared environment below.
|
|
2548
|
+
const cssOptions =
|
|
2549
|
+
typeof minimizeByType.css === "object"
|
|
2550
|
+
? minimizeByType.css
|
|
2551
|
+
: undefined;
|
|
2552
|
+
// The browserslist selection, when the target is one. It decides both the
|
|
2553
|
+
// prefixes and every spelling a target can read, so `vendorPrefixes`
|
|
2554
|
+
// turns off the first alone — resolving it is what the second needs.
|
|
2555
|
+
const { target } = compiler.options;
|
|
2556
|
+
const browsers = target
|
|
2557
|
+
? getTargetsBrowsers(
|
|
2558
|
+
Array.isArray(target) ? target : [target],
|
|
2559
|
+
/** @type {Context} */ (compiler.options.context)
|
|
2560
|
+
)
|
|
2561
|
+
: undefined;
|
|
2562
|
+
const cssEnvironment = {
|
|
2563
|
+
browsers,
|
|
2564
|
+
vendorPrefixes:
|
|
2565
|
+
cssOptions === undefined || cssOptions.vendorPrefixes !== false
|
|
2566
|
+
};
|
|
2567
|
+
const htmlOptions =
|
|
2568
|
+
typeof minimizeByType.html === "object"
|
|
2569
|
+
? minimizeByType.html
|
|
2570
|
+
: undefined;
|
|
2571
|
+
if (minifyJs) {
|
|
2572
|
+
minify.push(TerserPlugin.terserMinify);
|
|
2573
|
+
minimizerOptions.push(terserOptions);
|
|
2574
|
+
extensions.push("[cm]?js");
|
|
2575
|
+
}
|
|
2576
|
+
if (minifyCss) {
|
|
2577
|
+
minify.push(require("../css/cssMinify"));
|
|
2578
|
+
minimizerOptions.push({
|
|
2579
|
+
environment: cssEnvironment,
|
|
2580
|
+
...cssOptions
|
|
2581
|
+
});
|
|
2582
|
+
extensions.push("css");
|
|
2583
|
+
}
|
|
2584
|
+
if (minifyHtml) {
|
|
2585
|
+
minify.push(require("../html/htmlMinify"));
|
|
2586
|
+
// `minimize.css` rides along under its own key rather than spread
|
|
2587
|
+
// beside the HTML options: the two name some of the same switches
|
|
2588
|
+
// (`quotes`, `comments`), and one flat object would hand
|
|
2589
|
+
// each language the other's answer.
|
|
2590
|
+
minimizerOptions.push({
|
|
2591
|
+
environment: cssEnvironment,
|
|
2592
|
+
css: cssOptions,
|
|
2593
|
+
...htmlOptions
|
|
2594
|
+
});
|
|
2595
|
+
extensions.push("html");
|
|
2596
|
+
}
|
|
2403
2597
|
new TerserPlugin({
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
}
|
|
2408
|
-
}
|
|
2598
|
+
test: new RegExp(`\\.(?:${extensions.join("|")})(\\?.*)?$`, "i"),
|
|
2599
|
+
minify,
|
|
2600
|
+
minimizerOptions
|
|
2409
2601
|
}).apply(/** @type {EXPECTED_ANY} */ (compiler));
|
|
2410
2602
|
}
|
|
2411
2603
|
}
|
|
@@ -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,14 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
326
331
|
cacheGroups: cloneObject(splitChunks.cacheGroups)
|
|
327
332
|
}
|
|
328
333
|
),
|
|
334
|
+
// TODO webpack 6: normalize `minimize` to the per-asset-type object and
|
|
335
|
+
// drop `minimizeOptions` — a breaking change for what plugins read back.
|
|
336
|
+
minimize:
|
|
337
|
+
typeof optimization.minimize === "object" ? true : optimization.minimize,
|
|
338
|
+
minimizeOptions: getNormalizedOptimizationMinimizeOptions(
|
|
339
|
+
optimization.minimize,
|
|
340
|
+
optimization.minimizeOptions
|
|
341
|
+
),
|
|
329
342
|
minimizer:
|
|
330
343
|
optimization.minimizer !== undefined
|
|
331
344
|
? /** @type {OptimizationNormalized["minimizer"]} */ (
|
|
@@ -419,6 +432,7 @@ const getNormalizedWebpackOptions = (config) => ({
|
|
|
419
432
|
? output.libraryExport
|
|
420
433
|
: libraryBase.export,
|
|
421
434
|
name: libraryBase.name,
|
|
435
|
+
umdAmdContainer: libraryBase.umdAmdContainer,
|
|
422
436
|
umdNamedDefine:
|
|
423
437
|
output.umdNamedDefine !== undefined
|
|
424
438
|
? output.umdNamedDefine
|
|
@@ -604,6 +618,22 @@ const getNormalizedEntryStatic = (entry) => {
|
|
|
604
618
|
return result;
|
|
605
619
|
};
|
|
606
620
|
|
|
621
|
+
/**
|
|
622
|
+
* Gets the per-asset-type minimize options. `minimize` itself stays a boolean,
|
|
623
|
+
* and its object form is a shorthand an explicit `minimizeOptions` overrides.
|
|
624
|
+
* @param {Optimization["minimize"]} minimize minimize option
|
|
625
|
+
* @param {Optimization["minimizeOptions"]} minimizeOptions minimizeOptions option
|
|
626
|
+
* @returns {OptimizationNormalized["minimizeOptions"]} normalized minimize options
|
|
627
|
+
*/
|
|
628
|
+
const getNormalizedOptimizationMinimizeOptions = (
|
|
629
|
+
minimize,
|
|
630
|
+
minimizeOptions
|
|
631
|
+
) => {
|
|
632
|
+
if (minimizeOptions !== undefined) return cloneObject(minimizeOptions);
|
|
633
|
+
if (typeof minimize !== "object") return;
|
|
634
|
+
return cloneObject(minimize);
|
|
635
|
+
};
|
|
636
|
+
|
|
607
637
|
/**
|
|
608
638
|
* Gets normalized optimization runtime chunk.
|
|
609
639
|
* @param {OptimizationRuntimeChunk=} runtimeChunk runtimeChunk option
|