@depup/webpack 5.106.1-depup.0 → 5.109.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- 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 +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- 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 +498 -127
- 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 +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- 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 +15 -0
- 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 +5 -2
- 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 +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- 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 +104 -26
- 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 +29 -3
- 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 +43 -7
- 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 +591 -41
- 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/ModuleFederationPlugin.js +12 -26
- 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 +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3443 -1953
- package/lib/css/syntax.js +4058 -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 +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -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 +32 -2
- 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 +253 -37
- 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 +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- 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 +71 -49
- 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 +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -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 +25 -2
- 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 +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -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 +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- 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 +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- 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 +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- 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 +54 -6
- 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 +663 -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 +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- 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 +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- 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 +97 -6
- 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 +1117 -79
- 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 +8608 -1159
- 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 */
|
|
@@ -22,11 +23,13 @@ const processAsyncTree = require("./util/processAsyncTree");
|
|
|
22
23
|
/** @typedef {Map<string, number>} Assets */
|
|
23
24
|
|
|
24
25
|
/**
|
|
26
|
+
* Defines the clean plugin compilation hooks type used by this module.
|
|
25
27
|
* @typedef {object} CleanPluginCompilationHooks
|
|
26
28
|
* @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
|
|
27
29
|
*/
|
|
28
30
|
|
|
29
31
|
/**
|
|
32
|
+
* Defines the keep fn callback.
|
|
30
33
|
* @callback KeepFn
|
|
31
34
|
* @param {string} path path
|
|
32
35
|
* @returns {boolean | undefined} true, if the path should be kept
|
|
@@ -50,6 +53,7 @@ const mergeAssets = (as1, as2) => {
|
|
|
50
53
|
/** @typedef {Map<string, number>} CurrentAssets */
|
|
51
54
|
|
|
52
55
|
/**
|
|
56
|
+
* Returns set of directory paths.
|
|
53
57
|
* @param {CurrentAssets} assets current assets
|
|
54
58
|
* @returns {Set<string>} Set of directory paths
|
|
55
59
|
*/
|
|
@@ -57,6 +61,7 @@ function getDirectories(assets) {
|
|
|
57
61
|
/** @type {Set<string>} */
|
|
58
62
|
const directories = new Set();
|
|
59
63
|
/**
|
|
64
|
+
* Adds the provided filename to this object.
|
|
60
65
|
* @param {string} filename asset filename
|
|
61
66
|
*/
|
|
62
67
|
const addDirectory = (filename) => {
|
|
@@ -77,6 +82,7 @@ function getDirectories(assets) {
|
|
|
77
82
|
/** @typedef {Set<string>} Diff */
|
|
78
83
|
|
|
79
84
|
/**
|
|
85
|
+
* Returns diff to fs.
|
|
80
86
|
* @param {OutputFileSystem} fs filesystem
|
|
81
87
|
* @param {string} outputPath output path
|
|
82
88
|
* @param {CurrentAssets} currentAssets filename of the current assets (must not start with .. or ., must only use / as path separator)
|
|
@@ -123,6 +129,7 @@ const getDiffToFs = (fs, outputPath, currentAssets, callback) => {
|
|
|
123
129
|
};
|
|
124
130
|
|
|
125
131
|
/**
|
|
132
|
+
* Gets diff to old assets.
|
|
126
133
|
* @param {Assets} currentAssets assets list
|
|
127
134
|
* @param {Assets} oldAssets old assets list
|
|
128
135
|
* @returns {Diff} diff
|
|
@@ -139,6 +146,7 @@ const getDiffToOldAssets = (currentAssets, oldAssets) => {
|
|
|
139
146
|
};
|
|
140
147
|
|
|
141
148
|
/**
|
|
149
|
+
* Processes the provided f.
|
|
142
150
|
* @param {OutputFileSystem} fs filesystem
|
|
143
151
|
* @param {string} filename path to file
|
|
144
152
|
* @param {StatsCallback} callback callback for provided filename
|
|
@@ -154,6 +162,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
154
162
|
};
|
|
155
163
|
|
|
156
164
|
/**
|
|
165
|
+
* Processes the provided f.
|
|
157
166
|
* @param {OutputFileSystem} fs filesystem
|
|
158
167
|
* @param {string} outputPath output path
|
|
159
168
|
* @param {boolean} dry only log instead of fs modification
|
|
@@ -165,6 +174,7 @@ const doStat = (fs, filename, callback) => {
|
|
|
165
174
|
*/
|
|
166
175
|
const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
167
176
|
/**
|
|
177
|
+
* Processes the provided msg.
|
|
168
178
|
* @param {string} msg message
|
|
169
179
|
*/
|
|
170
180
|
const log = (msg) => {
|
|
@@ -189,6 +199,7 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
|
189
199
|
({ type, filename, parent }, push, callback) => {
|
|
190
200
|
const path = join(fs, outputPath, filename);
|
|
191
201
|
/**
|
|
202
|
+
* Describes how this handle error operation behaves.
|
|
192
203
|
* @param {Error & { code?: string }} err error
|
|
193
204
|
* @returns {void}
|
|
194
205
|
*/
|
|
@@ -324,32 +335,9 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
|
|
|
324
335
|
);
|
|
325
336
|
};
|
|
326
337
|
|
|
327
|
-
/** @type {WeakMap<Compilation, CleanPluginCompilationHooks>} */
|
|
328
|
-
const compilationHooksMap = new WeakMap();
|
|
329
|
-
|
|
330
338
|
const PLUGIN_NAME = "CleanPlugin";
|
|
331
339
|
|
|
332
340
|
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
341
|
/** @param {CleanOptions} options options */
|
|
354
342
|
constructor(options = {}) {
|
|
355
343
|
/** @type {CleanOptions} */
|
|
@@ -357,7 +345,7 @@ class CleanPlugin {
|
|
|
357
345
|
}
|
|
358
346
|
|
|
359
347
|
/**
|
|
360
|
-
*
|
|
348
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
361
349
|
* @param {Compiler} compiler the compiler instance
|
|
362
350
|
* @returns {void}
|
|
363
351
|
*/
|
|
@@ -422,7 +410,7 @@ class CleanPlugin {
|
|
|
422
410
|
const currentAssets = new Map();
|
|
423
411
|
const now = Date.now();
|
|
424
412
|
for (const asset of Object.keys(compilation.assets)) {
|
|
425
|
-
if (
|
|
413
|
+
if (ABSOLUTE_PATH_REGEXP.test(asset)) continue;
|
|
426
414
|
/** @type {string} */
|
|
427
415
|
let normalizedAsset;
|
|
428
416
|
let newNormalizedAsset = asset.replace(/\\/g, "/");
|
|
@@ -445,6 +433,7 @@ class CleanPlugin {
|
|
|
445
433
|
const outputPath = compilation.getPath(compiler.outputPath, {});
|
|
446
434
|
|
|
447
435
|
/**
|
|
436
|
+
* Checks whether this clean plugin is kept.
|
|
448
437
|
* @param {string} path path
|
|
449
438
|
* @returns {boolean | undefined} true, if needs to be kept
|
|
450
439
|
*/
|
|
@@ -455,6 +444,7 @@ class CleanPlugin {
|
|
|
455
444
|
};
|
|
456
445
|
|
|
457
446
|
/**
|
|
447
|
+
* Processes the provided err.
|
|
458
448
|
* @param {(Error | null)=} err err
|
|
459
449
|
* @param {Diff=} diff diff
|
|
460
450
|
*/
|
|
@@ -494,5 +484,12 @@ class CleanPlugin {
|
|
|
494
484
|
}
|
|
495
485
|
}
|
|
496
486
|
|
|
487
|
+
CleanPlugin.getCompilationHooks = createHooksRegistry(
|
|
488
|
+
() =>
|
|
489
|
+
/** @type {CleanPluginCompilationHooks} */ ({
|
|
490
|
+
keep: new SyncBailHook(["ignore"])
|
|
491
|
+
})
|
|
492
|
+
);
|
|
493
|
+
|
|
497
494
|
module.exports = CleanPlugin;
|
|
498
495
|
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,7 +175,7 @@ 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
|
});
|
|
@@ -172,13 +188,14 @@ class CompatibilityPlugin {
|
|
|
172
188
|
(declarator.id.name === RuntimeGlobals.exports ||
|
|
173
189
|
declarator.id.name === RuntimeGlobals.require)
|
|
174
190
|
) {
|
|
175
|
-
const {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
191
|
+
const tagData = /** @type {CompatibilitySettings | undefined} */ (
|
|
192
|
+
parser.getTagData(
|
|
193
|
+
declarator.id.name,
|
|
194
|
+
nestedWebpackIdentifierTag
|
|
195
|
+
)
|
|
196
|
+
);
|
|
197
|
+
if (!tagData) return;
|
|
198
|
+
const { name, declaration } = tagData;
|
|
182
199
|
if (!declaration.updated) {
|
|
183
200
|
const dep = new ConstDependency(name, declaration.range);
|
|
184
201
|
dep.loc = declaration.loc;
|
|
@@ -203,7 +220,7 @@ class CompatibilityPlugin {
|
|
|
203
220
|
name,
|
|
204
221
|
/** @type {Range} */ (expr.range)
|
|
205
222
|
);
|
|
206
|
-
dep.loc =
|
|
223
|
+
dep.loc = parser.getLocation(expr);
|
|
207
224
|
parser.state.module.addPresentationalDependency(dep);
|
|
208
225
|
return true;
|
|
209
226
|
});
|
|
@@ -216,7 +233,7 @@ class CompatibilityPlugin {
|
|
|
216
233
|
if (parser.state.source.slice(0, 2).toString() !== "#!") return;
|
|
217
234
|
// this is a hashbang comment
|
|
218
235
|
const dep = new ConstDependency("//", 0);
|
|
219
|
-
dep.loc =
|
|
236
|
+
dep.loc = parser.getLocation(c);
|
|
220
237
|
parser.state.module.addPresentationalDependency(dep);
|
|
221
238
|
}
|
|
222
239
|
});
|