@depup/webpack 5.106.1-depup.0 → 5.109.2-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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/CleanPlugin.js
CHANGED
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
const path = require("path");
|
|
9
9
|
const asyncLib = require("neo-async");
|
|
10
10
|
const { SyncBailHook } = require("tapable");
|
|
11
|
-
const
|
|
11
|
+
const createHooksRegistry = require("./util/createHooksRegistry");
|
|
12
12
|
const { join } = require("./util/fs");
|
|
13
|
+
const { ABSOLUTE_PATH_REGEXP } = require("./util/identifier");
|
|
13
14
|
const processAsyncTree = require("./util/processAsyncTree");
|
|
14
15
|
|
|
15
16
|
/** @typedef {import("../declarations/WebpackOptions").CleanOptions} CleanOptions */
|
|
@@ -21,12 +22,21 @@ const processAsyncTree = require("./util/processAsyncTree");
|
|
|
21
22
|
|
|
22
23
|
/** @typedef {Map<string, number>} Assets */
|
|
23
24
|
|
|
25
|
+
const createCompilationHooks = () => ({
|
|
26
|
+
/**
|
|
27
|
+
* When returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config.
|
|
28
|
+
* @type {SyncBailHook<[string], boolean | void>}
|
|
29
|
+
* @since 5.20.0
|
|
30
|
+
*/
|
|
31
|
+
keep: new SyncBailHook(["ignore"])
|
|
32
|
+
});
|
|
33
|
+
|
|
24
34
|
/**
|
|
25
|
-
* @typedef {
|
|
26
|
-
* @property {SyncBailHook<[string], boolean | void>} keep when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config
|
|
35
|
+
* @typedef {ReturnType<typeof createCompilationHooks>} CleanPluginCompilationHooks
|
|
27
36
|
*/
|
|
28
37
|
|
|
29
38
|
/**
|
|
39
|
+
* Defines the keep fn callback.
|
|
30
40
|
* @callback KeepFn
|
|
31
41
|
* @param {string} path path
|
|
32
42
|
* @returns {boolean | undefined} true, if the path should be kept
|
|
@@ -50,6 +60,7 @@ const mergeAssets = (as1, as2) => {
|
|
|
50
60
|
/** @typedef {Map<string, number>} CurrentAssets */
|
|
51
61
|
|
|
52
62
|
/**
|
|
63
|
+
* Returns set of directory paths.
|
|
53
64
|
* @param {CurrentAssets} assets current assets
|
|
54
65
|
* @returns {Set<string>} Set of directory paths
|
|
55
66
|
*/
|
|
@@ -57,6 +68,7 @@ function getDirectories(assets) {
|
|
|
57
68
|
/** @type {Set<string>} */
|
|
58
69
|
const directories = new Set();
|
|
59
70
|
/**
|
|
71
|
+
* Adds the provided filename to this object.
|
|
60
72
|
* @param {string} filename asset filename
|
|
61
73
|
*/
|
|
62
74
|
const addDirectory = (filename) => {
|
|
@@ -77,6 +89,7 @@ function getDirectories(assets) {
|
|
|
77
89
|
/** @typedef {Set<string>} Diff */
|
|
78
90
|
|
|
79
91
|
/**
|
|
92
|
+
* Returns diff to fs.
|
|
80
93
|
* @param {OutputFileSystem} fs filesystem
|
|
81
94
|
* @param {string} outputPath output path
|
|
82
95
|
* @param {CurrentAssets} currentAssets filename of the current assets (must not start with .. or ., must only use / as path separator)
|
|
@@ -123,6 +136,7 @@ const getDiffToFs = (fs, outputPath, currentAssets, callback) => {
|
|
|
123
136
|
};
|
|
124
137
|
|
|
125
138
|
/**
|
|
139
|
+
* Gets diff to old assets.
|
|
126
140
|
* @param {Assets} currentAssets assets list
|
|
127
141
|
* @param {Assets} oldAssets old assets list
|
|
128
142
|
* @returns {Diff} diff
|
|
@@ -139,6 +153,7 @@ const getDiffToOldAssets = (currentAssets, oldAssets) => {
|
|
|
139
153
|
};
|
|
140
154
|
|
|
141
155
|
/**
|
|
156
|
+
* Processes the provided f.
|
|
142
157
|
* @param {OutputFileSystem} fs filesystem
|
|
143
158
|
* @param {string} filename path to file
|
|
144
159
|
* @param {StatsCallback} callback callback for provided filename
|
|
@@ -154,6 +169,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
154
169
|
};
|
|
155
170
|
|
|
156
171
|
/**
|
|
172
|
+
* Processes the provided f.
|
|
157
173
|
* @param {OutputFileSystem} fs filesystem
|
|
158
174
|
* @param {string} outputPath output path
|
|
159
175
|
* @param {boolean} dry only log instead of fs modification
|
|
@@ -165,6 +181,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
165
181
|
*/
|
|
166
182
|
const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
167
183
|
/**
|
|
184
|
+
* Processes the provided msg.
|
|
168
185
|
* @param {string} msg message
|
|
169
186
|
*/
|
|
170
187
|
const log = (msg) => {
|
|
@@ -189,6 +206,7 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
|
189
206
|
({ type, filename, parent }, push, callback) => {
|
|
190
207
|
const path = join(fs, outputPath, filename);
|
|
191
208
|
/**
|
|
209
|
+
* Describes how this handle error operation behaves.
|
|
192
210
|
* @param {Error & { code?: string }} err error
|
|
193
211
|
* @returns {void}
|
|
194
212
|
*/
|
|
@@ -324,32 +342,9 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
|
324
342
|
);
|
|
325
343
|
};
|
|
326
344
|
|
|
327
|
-
/** @type {WeakMap<Compilation, CleanPluginCompilationHooks>} */
|
|
328
|
-
const compilationHooksMap = new WeakMap();
|
|
329
|
-
|
|
330
345
|
const PLUGIN_NAME = "CleanPlugin";
|
|
331
346
|
|
|
332
347
|
class CleanPlugin {
|
|
333
|
-
/**
|
|
334
|
-
* @param {Compilation} compilation the compilation
|
|
335
|
-
* @returns {CleanPluginCompilationHooks} the attached hooks
|
|
336
|
-
*/
|
|
337
|
-
static getCompilationHooks(compilation) {
|
|
338
|
-
if (!(compilation instanceof Compilation)) {
|
|
339
|
-
throw new TypeError(
|
|
340
|
-
"The 'compilation' argument must be an instance of Compilation"
|
|
341
|
-
);
|
|
342
|
-
}
|
|
343
|
-
let hooks = compilationHooksMap.get(compilation);
|
|
344
|
-
if (hooks === undefined) {
|
|
345
|
-
hooks = {
|
|
346
|
-
keep: new SyncBailHook(["ignore"])
|
|
347
|
-
};
|
|
348
|
-
compilationHooksMap.set(compilation, hooks);
|
|
349
|
-
}
|
|
350
|
-
return hooks;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
348
|
/** @param {CleanOptions} options options */
|
|
354
349
|
constructor(options = {}) {
|
|
355
350
|
/** @type {CleanOptions} */
|
|
@@ -357,7 +352,7 @@ class CleanPlugin {
|
|
|
357
352
|
}
|
|
358
353
|
|
|
359
354
|
/**
|
|
360
|
-
*
|
|
355
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
361
356
|
* @param {Compiler} compiler the compiler instance
|
|
362
357
|
* @returns {void}
|
|
363
358
|
*/
|
|
@@ -422,7 +417,7 @@ class CleanPlugin {
|
|
|
422
417
|
const currentAssets = new Map();
|
|
423
418
|
const now = Date.now();
|
|
424
419
|
for (const asset of Object.keys(compilation.assets)) {
|
|
425
|
-
if (
|
|
420
|
+
if (ABSOLUTE_PATH_REGEXP.test(asset)) continue;
|
|
426
421
|
/** @type {string} */
|
|
427
422
|
let normalizedAsset;
|
|
428
423
|
let newNormalizedAsset = asset.replace(/\\/g, "/");
|
|
@@ -445,6 +440,7 @@ class CleanPlugin {
|
|
|
445
440
|
const outputPath = compilation.getPath(compiler.outputPath, {});
|
|
446
441
|
|
|
447
442
|
/**
|
|
443
|
+
* Checks whether this clean plugin is kept.
|
|
448
444
|
* @param {string} path path
|
|
449
445
|
* @returns {boolean | undefined} true, if needs to be kept
|
|
450
446
|
*/
|
|
@@ -455,6 +451,7 @@ class CleanPlugin {
|
|
|
455
451
|
};
|
|
456
452
|
|
|
457
453
|
/**
|
|
454
|
+
* Processes the provided err.
|
|
458
455
|
* @param {(Error | null)=} err err
|
|
459
456
|
* @param {Diff=} diff diff
|
|
460
457
|
*/
|
|
@@ -494,5 +491,7 @@ class CleanPlugin {
|
|
|
494
491
|
}
|
|
495
492
|
}
|
|
496
493
|
|
|
494
|
+
CleanPlugin.getCompilationHooks = createHooksRegistry(createCompilationHooks);
|
|
495
|
+
|
|
497
496
|
module.exports = CleanPlugin;
|
|
498
497
|
module.exports._getDirectories = getDirectories;
|
|
@@ -20,8 +20,14 @@ const { RuntimeSpecMap, runtimeToString } = require("./util/runtime");
|
|
|
20
20
|
/** @typedef {import("./util/Hash").HashFunction} HashFunction */
|
|
21
21
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Stores code generation results keyed by module and runtime so later stages
|
|
25
|
+
* can retrieve emitted sources, metadata, and derived hashes.
|
|
26
|
+
*/
|
|
23
27
|
class CodeGenerationResults {
|
|
24
28
|
/**
|
|
29
|
+
* Initializes an empty result store and remembers which hash function should
|
|
30
|
+
* be used when a result hash needs to be derived lazily.
|
|
25
31
|
* @param {HashFunction} hashFunction the hash function to use
|
|
26
32
|
*/
|
|
27
33
|
constructor(hashFunction = DEFAULTS.HASH_FUNCTION) {
|
|
@@ -32,6 +38,8 @@ class CodeGenerationResults {
|
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
/**
|
|
41
|
+
* Returns the code generation result for a module/runtime pair, rejecting
|
|
42
|
+
* ambiguous lookups where no unique runtime-independent result exists.
|
|
35
43
|
* @param {Module} module the module
|
|
36
44
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
37
45
|
* @returns {CodeGenerationResult} the CodeGenerationResult
|
|
@@ -77,6 +85,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
/**
|
|
88
|
+
* Reports whether a module has a stored result for the requested runtime, or
|
|
89
|
+
* a single unambiguous result when no runtime is specified.
|
|
80
90
|
* @param {Module} module the module
|
|
81
91
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
82
92
|
* @returns {boolean} true, when we have data for this
|
|
@@ -96,6 +106,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
96
106
|
}
|
|
97
107
|
|
|
98
108
|
/**
|
|
109
|
+
* Returns a generated source of the requested source type from a stored code
|
|
110
|
+
* generation result.
|
|
99
111
|
* @param {Module} module the module
|
|
100
112
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
101
113
|
* @param {SourceType} sourceType the source type
|
|
@@ -108,6 +120,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
108
120
|
}
|
|
109
121
|
|
|
110
122
|
/**
|
|
123
|
+
* Returns the runtime requirements captured during code generation for the
|
|
124
|
+
* requested module/runtime pair.
|
|
111
125
|
* @param {Module} module the module
|
|
112
126
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
113
127
|
* @returns {ReadOnlyRuntimeRequirements | null} runtime requirements
|
|
@@ -117,6 +131,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
117
131
|
}
|
|
118
132
|
|
|
119
133
|
/**
|
|
134
|
+
* Returns an arbitrary metadata entry recorded during code generation.
|
|
120
135
|
* @param {Module} module the module
|
|
121
136
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
122
137
|
* @param {string} key data key
|
|
@@ -128,6 +143,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
128
143
|
}
|
|
129
144
|
|
|
130
145
|
/**
|
|
146
|
+
* Returns a stable hash for the generated sources and runtime requirements,
|
|
147
|
+
* computing and caching it on first access.
|
|
131
148
|
* @param {Module} module the module
|
|
132
149
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
133
150
|
* @returns {string} hash of the code generation
|
|
@@ -147,6 +164,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
147
164
|
}
|
|
148
165
|
|
|
149
166
|
/**
|
|
167
|
+
* Stores a code generation result for a module/runtime pair, creating the
|
|
168
|
+
* per-module runtime map when needed.
|
|
150
169
|
* @param {Module} module the module
|
|
151
170
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
152
171
|
* @param {CodeGenerationResult} result result from module
|
|
@@ -21,6 +21,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
21
21
|
/** @typedef {import("./javascript/JavascriptParser").Range} Range */
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
+
* Captures the source range of a renamed compatibility binding so it can be
|
|
25
|
+
* rewritten exactly once.
|
|
24
26
|
* @typedef {object} CompatibilitySettingsDeclaration
|
|
25
27
|
* @property {boolean} updated
|
|
26
28
|
* @property {DependencyLocation} loc
|
|
@@ -28,6 +30,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
28
30
|
*/
|
|
29
31
|
|
|
30
32
|
/**
|
|
33
|
+
* Stores the replacement variable name and the declaration metadata tracked
|
|
34
|
+
* for a compatibility rewrite.
|
|
31
35
|
* @typedef {object} CompatibilitySettings
|
|
32
36
|
* @property {string} name
|
|
33
37
|
* @property {CompatibilitySettingsDeclaration} declaration
|
|
@@ -36,9 +40,14 @@ const ConstDependency = require("./dependencies/ConstDependency");
|
|
|
36
40
|
const nestedWebpackIdentifierTag = Symbol("nested webpack identifier");
|
|
37
41
|
const PLUGIN_NAME = "CompatibilityPlugin";
|
|
38
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Adds parser-time compatibility rewrites for legacy runtime patterns that
|
|
45
|
+
* webpack still needs to recognize in user and generated code.
|
|
46
|
+
*/
|
|
39
47
|
class CompatibilityPlugin {
|
|
40
48
|
/**
|
|
41
|
-
*
|
|
49
|
+
* Installs parser hooks that preserve compatibility with legacy patterns
|
|
50
|
+
* such as nested `__webpack_require__` bindings and hashbang handling.
|
|
42
51
|
* @param {Compiler} compiler the compiler instance
|
|
43
52
|
* @returns {void}
|
|
44
53
|
*/
|
|
@@ -64,6 +73,9 @@ class CompatibilityPlugin {
|
|
|
64
73
|
parser.hooks.call.for("require").tap(
|
|
65
74
|
PLUGIN_NAME,
|
|
66
75
|
/**
|
|
76
|
+
* Rewrites browserify-style delegated `require` calls into a
|
|
77
|
+
* plain webpack require reference and removes the synthetic
|
|
78
|
+
* context dependency created for the delegator pattern.
|
|
67
79
|
* @param {CallExpression} expr call expression
|
|
68
80
|
* @returns {boolean | void} true when need to handle
|
|
69
81
|
*/
|
|
@@ -77,7 +89,7 @@ class CompatibilityPlugin {
|
|
|
77
89
|
"require",
|
|
78
90
|
/** @type {Range} */ (expr.callee.range)
|
|
79
91
|
);
|
|
80
|
-
dep.loc =
|
|
92
|
+
dep.loc = parser.getLocation(expr);
|
|
81
93
|
if (parser.state.current.dependencies.length > 0) {
|
|
82
94
|
const last =
|
|
83
95
|
/** @type {ContextDependency} */
|
|
@@ -103,36 +115,40 @@ class CompatibilityPlugin {
|
|
|
103
115
|
});
|
|
104
116
|
|
|
105
117
|
/**
|
|
118
|
+
* Attaches the compatibility rewrites for a JavaScript parser
|
|
119
|
+
* instance.
|
|
106
120
|
* @param {JavascriptParser} parser the parser
|
|
107
121
|
* @returns {void}
|
|
108
122
|
*/
|
|
109
123
|
const handler = (parser) => {
|
|
110
124
|
// Handle nested requires
|
|
111
|
-
parser.hooks.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
parser.hooks.preStatementByType
|
|
126
|
+
.for("FunctionDeclaration")
|
|
127
|
+
.tap(PLUGIN_NAME, (statement) => {
|
|
128
|
+
if (
|
|
129
|
+
statement.type === "FunctionDeclaration" &&
|
|
130
|
+
statement.id &&
|
|
131
|
+
statement.id.name === RuntimeGlobals.require
|
|
132
|
+
) {
|
|
133
|
+
const newName = `__nested_webpack_require_${
|
|
134
|
+
/** @type {Range} */
|
|
135
|
+
(statement.range)[0]
|
|
136
|
+
}__`;
|
|
137
|
+
parser.tagVariable(
|
|
138
|
+
statement.id.name,
|
|
139
|
+
nestedWebpackIdentifierTag,
|
|
140
|
+
{
|
|
141
|
+
name: newName,
|
|
142
|
+
declaration: {
|
|
143
|
+
updated: false,
|
|
144
|
+
loc: parser.getLocation(statement.id),
|
|
145
|
+
range: /** @type {Range} */ (statement.id.range)
|
|
146
|
+
}
|
|
130
147
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
});
|
|
148
|
+
);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
136
152
|
parser.hooks.pattern
|
|
137
153
|
.for(RuntimeGlobals.require)
|
|
138
154
|
.tap(PLUGIN_NAME, (pattern) => {
|
|
@@ -143,7 +159,7 @@ class CompatibilityPlugin {
|
|
|
143
159
|
name: newName,
|
|
144
160
|
declaration: {
|
|
145
161
|
updated: false,
|
|
146
|
-
loc:
|
|
162
|
+
loc: parser.getLocation(pattern),
|
|
147
163
|
range: /** @type {Range} */ (pattern.range)
|
|
148
164
|
}
|
|
149
165
|
});
|
|
@@ -159,12 +175,43 @@ class CompatibilityPlugin {
|
|
|
159
175
|
name: newName,
|
|
160
176
|
declaration: {
|
|
161
177
|
updated: false,
|
|
162
|
-
loc:
|
|
178
|
+
loc: parser.getLocation(pattern),
|
|
163
179
|
range: /** @type {Range} */ (pattern.range)
|
|
164
180
|
}
|
|
165
181
|
});
|
|
166
182
|
return true;
|
|
167
183
|
});
|
|
184
|
+
// `const`/`let` are block-pre-walked, by which point the name is no
|
|
185
|
+
// longer free and `hooks.pattern` is not dispatched for it — tag
|
|
186
|
+
// them through the kind-specific declaration hooks instead.
|
|
187
|
+
// Returning nothing lets the variable be defined, keeping the tag.
|
|
188
|
+
for (const hookMap of [
|
|
189
|
+
parser.hooks.varDeclarationConst,
|
|
190
|
+
parser.hooks.varDeclarationLet
|
|
191
|
+
]) {
|
|
192
|
+
hookMap.for(RuntimeGlobals.require).tap(PLUGIN_NAME, (ident) => {
|
|
193
|
+
parser.tagVariable(ident.name, nestedWebpackIdentifierTag, {
|
|
194
|
+
name: `__nested_webpack_require_${
|
|
195
|
+
/** @type {Range} */ (ident.range)[0]
|
|
196
|
+
}__`,
|
|
197
|
+
declaration: {
|
|
198
|
+
updated: false,
|
|
199
|
+
loc: parser.getLocation(ident),
|
|
200
|
+
range: /** @type {Range} */ (ident.range)
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
hookMap.for(RuntimeGlobals.exports).tap(PLUGIN_NAME, (ident) => {
|
|
205
|
+
parser.tagVariable(ident.name, nestedWebpackIdentifierTag, {
|
|
206
|
+
name: "__nested_webpack_exports__",
|
|
207
|
+
declaration: {
|
|
208
|
+
updated: false,
|
|
209
|
+
loc: parser.getLocation(ident),
|
|
210
|
+
range: /** @type {Range} */ (ident.range)
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
}
|
|
168
215
|
// Update single `var __webpack_require__ = {};` and `var __webpack_exports__ = {};` without expression
|
|
169
216
|
parser.hooks.declarator.tap(PLUGIN_NAME, (declarator) => {
|
|
170
217
|
if (
|
|
@@ -172,13 +219,14 @@ class CompatibilityPlugin {
|
|
|
172
219
|
(declarator.id.name === RuntimeGlobals.exports ||
|
|
173
220
|
declarator.id.name === RuntimeGlobals.require)
|
|
174
221
|
) {
|
|
175
|
-
const {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
222
|
+
const tagData = /** @type {CompatibilitySettings | undefined} */ (
|
|
223
|
+
parser.getTagData(
|
|
224
|
+
declarator.id.name,
|
|
225
|
+
nestedWebpackIdentifierTag
|
|
226
|
+
)
|
|
227
|
+
);
|
|
228
|
+
if (!tagData) return;
|
|
229
|
+
const { name, declaration } = tagData;
|
|
182
230
|
if (!declaration.updated) {
|
|
183
231
|
const dep = new ConstDependency(name, declaration.range);
|
|
184
232
|
dep.loc = declaration.loc;
|
|
@@ -203,7 +251,7 @@ class CompatibilityPlugin {
|
|
|
203
251
|
name,
|
|
204
252
|
/** @type {Range} */ (expr.range)
|
|
205
253
|
);
|
|
206
|
-
dep.loc =
|
|
254
|
+
dep.loc = parser.getLocation(expr);
|
|
207
255
|
parser.state.module.addPresentationalDependency(dep);
|
|
208
256
|
return true;
|
|
209
257
|
});
|
|
@@ -216,7 +264,7 @@ class CompatibilityPlugin {
|
|
|
216
264
|
if (parser.state.source.slice(0, 2).toString() !== "#!") return;
|
|
217
265
|
// this is a hashbang comment
|
|
218
266
|
const dep = new ConstDependency("//", 0);
|
|
219
|
-
dep.loc =
|
|
267
|
+
dep.loc = parser.getLocation(c);
|
|
220
268
|
parser.state.module.addPresentationalDependency(dep);
|
|
221
269
|
}
|
|
222
270
|
});
|