webpack 5.111.1 → 5.112.1
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 +1 -1
- package/bin/webpack.js +13 -7
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +373 -163
- package/lib/Compiler.js +31 -44
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +21 -13
- package/lib/asset/AssetBytesParser.js +12 -10
- package/lib/asset/AssetGenerator.js +71 -69
- package/lib/asset/AssetModule.js +13 -2
- package/lib/asset/AssetModulesPlugin.js +10 -12
- package/lib/asset/AssetParser.js +10 -10
- package/lib/asset/AssetSourceGenerator.js +23 -15
- package/lib/asset/AssetSourceParser.js +12 -10
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +17 -12
- package/lib/asset/WebManifestParser.js +8 -8
- package/lib/async-modules/AsyncModuleHelpers.js +12 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +13 -19
- package/lib/cache/ResolverCachePlugin.js +65 -11
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +14 -164
- package/lib/config/defaults.js +166 -59
- package/lib/config/getClaimedAssetTypes.js +22 -14
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +11 -1
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +37 -26
- package/lib/context/ContextModuleFactory.js +14 -11
- package/lib/context/ContextReplacementPlugin.js +6 -12
- package/lib/css/CssGenerator.js +78 -68
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +37 -29
- package/lib/css/CssModulesPlugin.js +129 -45
- package/lib/css/CssParser.js +714 -322
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/{util → css}/conventions.js +1 -1
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6990 -5125
- package/lib/css/syntax-parser.js +20734 -0
- package/lib/css/syntax-printer.js +6092 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +106 -51
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
- package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
- package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
- package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +23 -21
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +14 -10
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +103 -30
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/errors/AbstractMethodError.js +1 -1
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +6 -5
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/JSONParseError.js +4 -4
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +13 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +634 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
- package/lib/{util → graph}/findGraphRoots.js +15 -9
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +32 -28
- package/lib/html/HtmlGenerator.js +132 -60
- package/lib/html/HtmlModule.js +16 -2
- package/lib/html/HtmlModulesPlugin.js +184 -87
- package/lib/html/HtmlParser.js +511 -160
- package/lib/html/builtinEmbeddedRenderer.js +70 -25
- package/lib/html/data.js +44 -22
- package/lib/html/htmlMinify.js +114 -41
- package/lib/html/syntax-parser.js +15795 -0
- package/lib/html/syntax-printer.js +1033 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +70 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +32 -5
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +312 -105
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +9 -9
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +32 -27
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
- package/lib/javascript/JavascriptModule.js +14 -3
- package/lib/javascript/JavascriptModulesPlugin.js +441 -214
- package/lib/javascript/JavascriptParser.js +318 -144
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3924 -13
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +19169 -0
- package/lib/javascript/syntax-printer-data.js +1099 -0
- package/lib/javascript/syntax-printer.js +53878 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +24 -16
- package/lib/json/JsonModule.js +13 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +11 -10
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +28 -12
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +2 -2
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +557 -187
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +94 -46
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/loaders/loadLoader.js +16 -10
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +33 -23
- package/lib/{Module.js → module/Module.js} +121 -53
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2350 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +12 -5
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +71 -20
- package/lib/{util → module}/findCaseMismatch.js +4 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +6 -7
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
- package/lib/optimize/ConcatenatedModule.js +231 -220
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +12 -7
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +620 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +18 -13
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
- package/lib/optimize/SplitChunksPlugin.js +719 -174
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +4 -6
- package/lib/performance/HotspotsPlugin.js +39 -14
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +19 -13
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +22 -13
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +66 -45
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/BasicEffectRulePlugin.js +1 -1
- package/lib/rules/RuleSetCompiler.js +42 -51
- package/lib/rules/UseEffectRulePlugin.js +1 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +68 -13
- package/lib/schemes/VirtualUrlPlugin.js +52 -16
- package/lib/serialization/AggregateErrorSerializer.js +4 -4
- package/lib/serialization/BinaryMiddleware.js +4 -1
- package/lib/serialization/ErrorObjectSerializer.js +2 -5
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +62 -29
- package/lib/serialization/PlainObjectSerializer.js +3 -7
- package/lib/serialization/Serializer.js +21 -11
- package/lib/serialization/SerializerMiddleware.js +10 -8
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
- package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
- package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +208 -37
- package/lib/stats/StatsPrinter.js +126 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
- package/lib/{Template.js → template/Template.js} +14 -12
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +439 -51
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +20 -16
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/cleverMerge.js +61 -33
- package/lib/util/comparators.js +19 -15
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -15
- package/lib/util/deprecation.js +5 -4
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +198 -20
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +296 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +28 -7
- package/lib/util/memoize.js +1 -1
- package/lib/util/parseJson.js +2 -2
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +35 -28
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +18 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +15 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
- package/lib/web/FetchCompileWasmPlugin.js +8 -10
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +57 -36
- package/schemas/WebpackOptions.check.js +4 -3
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +295 -75
- package/schemas/plugins/BannerPlugin.check.js +4 -3
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
- package/schemas/plugins/HtmlParserOptions.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +4 -3
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
- package/schemas/plugins/container/ExternalsType.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssParserOptions.check.js +4 -3
- package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
- package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
- package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
- package/schemas/plugins/output/CleanOptions.check.js +7 -0
- package/schemas/plugins/output/CleanOptions.json +3 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +20780 -14174
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
package/lib/Compilation.js
CHANGED
|
@@ -17,39 +17,35 @@ const {
|
|
|
17
17
|
SyncWaterfallHook
|
|
18
18
|
} = require("tapable");
|
|
19
19
|
const { CachedSource } = require("webpack-sources");
|
|
20
|
-
const { MultiItemCache } = require("./CacheFacade");
|
|
21
|
-
const
|
|
22
|
-
const ChunkGraph = require("./ChunkGraph");
|
|
23
|
-
const ChunkGroup = require("./ChunkGroup");
|
|
24
|
-
const ChunkTemplate = require("./ChunkTemplate");
|
|
25
|
-
const CodeGenerationResults = require("./CodeGenerationResults");
|
|
26
|
-
const Dependency = require("./Dependency");
|
|
27
|
-
const DependencyTemplates = require("./DependencyTemplates");
|
|
28
|
-
const Entrypoint = require("./Entrypoint");
|
|
29
|
-
const ErrorHelpers = require("./ErrorHelpers");
|
|
30
|
-
|
|
31
|
-
const { toError } = ErrorHelpers;
|
|
32
|
-
|
|
33
|
-
const FileSystemInfo = require("./FileSystemInfo");
|
|
34
|
-
const LazyBarrelController = require("./LazyBarrel");
|
|
35
|
-
const MainTemplate = require("./MainTemplate");
|
|
36
|
-
const Module = require("./Module");
|
|
37
|
-
const ModuleGraph = require("./ModuleGraph");
|
|
38
|
-
const ModuleProfile = require("./ModuleProfile");
|
|
39
|
-
const ModuleTemplate = require("./ModuleTemplate");
|
|
40
|
-
const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
|
|
41
|
-
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
42
|
-
const RuntimeTemplate = require("./RuntimeTemplate");
|
|
43
|
-
const Stats = require("./Stats");
|
|
44
|
-
const buildChunkGraph = require("./buildChunkGraph");
|
|
20
|
+
const { MultiItemCache } = require("./cache/CacheFacade");
|
|
21
|
+
const ErrorHelpers = require("./errors/ErrorHelpers");
|
|
45
22
|
const {
|
|
46
23
|
makeWebpackError,
|
|
47
24
|
tryRunOrWebpackError
|
|
48
25
|
} = require("./errors/HookWebpackError");
|
|
49
26
|
const WebpackError = require("./errors/WebpackError");
|
|
27
|
+
const FileSystemInfo = require("./fs/FileSystemInfo");
|
|
28
|
+
const Chunk = require("./graph/Chunk");
|
|
29
|
+
const ChunkGraph = require("./graph/ChunkGraph");
|
|
30
|
+
const ChunkGroup = require("./graph/ChunkGroup");
|
|
31
|
+
const Dependency = require("./graph/Dependency");
|
|
32
|
+
const Entrypoint = require("./graph/Entrypoint");
|
|
33
|
+
const ModuleGraph = require("./graph/ModuleGraph");
|
|
34
|
+
const buildChunkGraph = require("./graph/buildChunkGraph");
|
|
50
35
|
const { LogType, Logger } = require("./logging/Logger");
|
|
36
|
+
const CodeGenerationResults = require("./module/CodeGenerationResults");
|
|
37
|
+
const Module = require("./module/Module");
|
|
38
|
+
const ModuleProfile = require("./module/ModuleProfile");
|
|
39
|
+
const LazyBarrels = require("./optimize/LazyBarrels");
|
|
40
|
+
const RuntimeGlobals = require("./runtime/RuntimeGlobals");
|
|
41
|
+
const Stats = require("./stats/Stats");
|
|
51
42
|
const StatsFactory = require("./stats/StatsFactory");
|
|
52
43
|
const StatsPrinter = require("./stats/StatsPrinter");
|
|
44
|
+
const ChunkTemplate = require("./template/ChunkTemplate");
|
|
45
|
+
const DependencyTemplates = require("./template/DependencyTemplates");
|
|
46
|
+
const MainTemplate = require("./template/MainTemplate");
|
|
47
|
+
const ModuleTemplate = require("./template/ModuleTemplate");
|
|
48
|
+
const RuntimeTemplate = require("./template/RuntimeTemplate");
|
|
53
49
|
const { equals: arrayEquals } = require("./util/ArrayHelpers");
|
|
54
50
|
const AsyncQueue = require("./util/AsyncQueue");
|
|
55
51
|
const LazySet = require("./util/LazySet");
|
|
@@ -106,6 +102,8 @@ const getChunkRenderError = memoize(() => require("./errors/ChunkRenderError"));
|
|
|
106
102
|
|
|
107
103
|
const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
108
104
|
|
|
105
|
+
const { toError } = ErrorHelpers;
|
|
106
|
+
|
|
109
107
|
/** @import { Source } from "webpack-sources" */
|
|
110
108
|
/**
|
|
111
109
|
* @import {
|
|
@@ -124,11 +122,11 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
124
122
|
* OutputNormalizedWithDefaults as OutputOptionsWithDefaults
|
|
125
123
|
* } from "./config/defaults"
|
|
126
124
|
*/
|
|
127
|
-
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
128
|
-
/** @import Cache from "./Cache" */
|
|
129
|
-
/** @import CacheFacade from "./CacheFacade" */
|
|
130
|
-
/** @import { ChunkName, ChunkId } from "./Chunk" */
|
|
131
|
-
/** @import { ChunkGroupOptions } from "./ChunkGroup" */
|
|
125
|
+
/** @import AsyncDependenciesBlock from "./graph/AsyncDependenciesBlock" */
|
|
126
|
+
/** @import Cache from "./cache/Cache" */
|
|
127
|
+
/** @import CacheFacade from "./cache/CacheFacade" */
|
|
128
|
+
/** @import { ChunkName, ChunkId } from "./graph/Chunk" */
|
|
129
|
+
/** @import { ChunkGroupOptions } from "./graph/ChunkGroup" */
|
|
132
130
|
/**
|
|
133
131
|
* @import Compiler, {
|
|
134
132
|
* CompilationParams,
|
|
@@ -138,9 +136,9 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
138
136
|
* Records
|
|
139
137
|
* } from "./Compiler"
|
|
140
138
|
*/
|
|
141
|
-
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
142
|
-
/** @import { DependencyLocation, ReferencedExports } from "./Dependency" */
|
|
143
|
-
/** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
|
|
139
|
+
/** @import DependenciesBlock from "./graph/DependenciesBlock" */
|
|
140
|
+
/** @import { DependencyLocation, ReferencedExports } from "./graph/Dependency" */
|
|
141
|
+
/** @typedef {import("./graph/Entrypoint").EntryOptions} EntryOptions */
|
|
144
142
|
/**
|
|
145
143
|
* @import {
|
|
146
144
|
* NameForCondition,
|
|
@@ -151,7 +149,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
151
149
|
* SourceType,
|
|
152
150
|
* FactoryMeta,
|
|
153
151
|
* CodeGenerationResult
|
|
154
|
-
* } from "./Module"
|
|
152
|
+
* } from "./module/Module"
|
|
155
153
|
*/
|
|
156
154
|
/**
|
|
157
155
|
* @import NormalModule, {
|
|
@@ -159,19 +157,25 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
159
157
|
* AnyLoaderContext,
|
|
160
158
|
* ParserOptions,
|
|
161
159
|
* GeneratorOptions
|
|
162
|
-
* } from "./NormalModule"
|
|
160
|
+
* } from "./module/NormalModule"
|
|
163
161
|
*/
|
|
164
162
|
/**
|
|
165
163
|
* @import ModuleFactory, {
|
|
166
164
|
* ModuleFactoryCreateDataContextInfo,
|
|
167
165
|
* ModuleFactoryResult
|
|
168
|
-
* } from "./ModuleFactory"
|
|
166
|
+
* } from "./module/ModuleFactory"
|
|
167
|
+
*/
|
|
168
|
+
/** @import { ModuleId } from "./graph/ChunkGraph" */
|
|
169
|
+
/** @import ModuleGraphConnection from "./graph/ModuleGraphConnection" */
|
|
170
|
+
/** @import RequestShortener from "./util/RequestShortener" */
|
|
171
|
+
/** @import RuntimeModule from "./runtime/RuntimeModule" */
|
|
172
|
+
/**
|
|
173
|
+
* @import {
|
|
174
|
+
* RenderManifestEntry,
|
|
175
|
+
* RenderManifestEntryTemplated,
|
|
176
|
+
* RenderManifestOptions
|
|
177
|
+
* } from "./template/Template"
|
|
169
178
|
*/
|
|
170
|
-
/** @import { ModuleId } from "./ChunkGraph" */
|
|
171
|
-
/** @import ModuleGraphConnection from "./ModuleGraphConnection" */
|
|
172
|
-
/** @import RequestShortener from "./RequestShortener" */
|
|
173
|
-
/** @import RuntimeModule from "./RuntimeModule" */
|
|
174
|
-
/** @import { RenderManifestEntry, RenderManifestOptions } from "./Template" */
|
|
175
179
|
|
|
176
180
|
/**
|
|
177
181
|
* One language's source embedded in another's output.
|
|
@@ -185,6 +189,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
185
189
|
* @import {
|
|
186
190
|
* StatsAsset,
|
|
187
191
|
* StatsError,
|
|
192
|
+
* StatsJsonValue,
|
|
188
193
|
* StatsModule
|
|
189
194
|
* } from "./stats/DefaultStatsFactoryPlugin"
|
|
190
195
|
*/
|
|
@@ -202,7 +207,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
202
207
|
* @typedef {import("./util/deprecation").FakeHook<T>} FakeHook<T>
|
|
203
208
|
*/
|
|
204
209
|
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
205
|
-
/** @import { InputFileSystem } from "./
|
|
210
|
+
/** @import { InputFileSystem } from "./fs/fs" */
|
|
206
211
|
|
|
207
212
|
/**
|
|
208
213
|
* Defines the callback callback.
|
|
@@ -243,7 +248,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
243
248
|
* @returns {void}
|
|
244
249
|
*/
|
|
245
250
|
|
|
246
|
-
/** @typedef {new (...args:
|
|
251
|
+
/** @typedef {abstract new (...args: never[]) => Dependency} DependencyConstructor */
|
|
247
252
|
|
|
248
253
|
/** @typedef {Record<string, Source>} CompilationAssets */
|
|
249
254
|
|
|
@@ -523,7 +528,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
523
528
|
* @property {false | "none" | "error" | "warn" | "info" | "log" | "verbose"} logging
|
|
524
529
|
* @property {((value: string) => boolean)[]} loggingDebug
|
|
525
530
|
* @property {boolean} loggingTrace
|
|
526
|
-
* @property {
|
|
531
|
+
* @property {StatsJsonValue} _env
|
|
527
532
|
*/
|
|
528
533
|
|
|
529
534
|
/** @typedef {KnownNormalizedStatsOptions & Omit<StatsOptions, keyof KnownNormalizedStatsOptions> & Record<string, EXPECTED_ANY>} NormalizedStatsOptions */
|
|
@@ -547,9 +552,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
|
547
552
|
/** @type {AssetInfo} */
|
|
548
553
|
const EMPTY_ASSET_INFO = Object.freeze({});
|
|
549
554
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
// TODO webpack 6: remove
|
|
555
|
+
// TODO in the next major release: remove
|
|
553
556
|
const deprecatedNormalModuleLoaderHook = util.deprecate(
|
|
554
557
|
/**
|
|
555
558
|
* Handles the callback logic for this hook.
|
|
@@ -557,12 +560,12 @@ const deprecatedNormalModuleLoaderHook = util.deprecate(
|
|
|
557
560
|
* @returns {NormalModuleCompilationHooks["loader"]} hooks
|
|
558
561
|
*/
|
|
559
562
|
(compilation) =>
|
|
560
|
-
require("./NormalModule").getCompilationHooks(compilation).loader,
|
|
563
|
+
require("./module/NormalModule").getCompilationHooks(compilation).loader,
|
|
561
564
|
"Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader",
|
|
562
565
|
"DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK"
|
|
563
566
|
);
|
|
564
567
|
|
|
565
|
-
// TODO
|
|
568
|
+
// TODO in the next major release: remove
|
|
566
569
|
/**
|
|
567
570
|
* Define removed module templates.
|
|
568
571
|
* @param {ModuleTemplates | undefined} moduleTemplates module templates
|
|
@@ -631,11 +634,19 @@ const unsafeCacheData = new WeakMap();
|
|
|
631
634
|
const dependencyReportCacheTokens = new WeakMap();
|
|
632
635
|
|
|
633
636
|
/**
|
|
634
|
-
* Modules known to have no dependency errors/warnings, per cache token
|
|
635
|
-
*
|
|
637
|
+
* Modules known to have no dependency errors/warnings, per cache token, with
|
|
638
|
+
* the deferred requests they were checked with (`true` for none).
|
|
639
|
+
* @type {WeakMap<DependencyReportCacheToken, WeakMap<Module, string | true>>}
|
|
636
640
|
*/
|
|
637
641
|
const modulesWithoutProblems = new WeakMap();
|
|
638
642
|
|
|
643
|
+
/**
|
|
644
|
+
* How many connections each stored reference map holds, so a module whose
|
|
645
|
+
* connection is gone or new, not only one pointing elsewhere, counts as affected.
|
|
646
|
+
* @type {WeakMap<WeakReferences, number>}
|
|
647
|
+
*/
|
|
648
|
+
const referenceCounts = new WeakMap();
|
|
649
|
+
|
|
639
650
|
/**
|
|
640
651
|
* Reduce affect type.
|
|
641
652
|
* @param {Readonly<ModuleGraphConnection[]>} connections connections
|
|
@@ -653,9 +664,13 @@ const reduceAffectType = (connections) => {
|
|
|
653
664
|
return affected;
|
|
654
665
|
};
|
|
655
666
|
|
|
656
|
-
/** @typedef {{ id: ModuleId, modules?: Map<Module,
|
|
667
|
+
/** @typedef {{ id: ModuleId, modules?: Map<Module, string>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes, chunkSourceTypes?: string }} References */
|
|
657
668
|
/** @typedef {Map<Module, WeakTupleMap<EXPECTED_ANY[], EXPECTED_ANY>>} ModuleMemCaches */
|
|
658
|
-
/**
|
|
669
|
+
/**
|
|
670
|
+
* A queued lazy runtime module; `create` takes exactly what its own `load`
|
|
671
|
+
* resolves, which differs per entry.
|
|
672
|
+
* @typedef {{ chunk: Chunk, load: () => Promise<EXPECTED_OBJECT>, create: (loaded: never) => RuntimeModule, chunkGraph: ChunkGraph }} PendingRuntimeModule
|
|
673
|
+
*/
|
|
659
674
|
|
|
660
675
|
class Compilation {
|
|
661
676
|
/**
|
|
@@ -906,7 +921,11 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
906
921
|
processAssetsHook.tapAsync(
|
|
907
922
|
getOptions(options),
|
|
908
923
|
(assets, callback) =>
|
|
909
|
-
/** @type {
|
|
924
|
+
/** @type {(...args: [...AsArray<T>, typeof callback]) => void} */ (
|
|
925
|
+
/** @type {typeof fn | ((...args: [...AsArray<T>, typeof callback]) => void)} */ (
|
|
926
|
+
fn
|
|
927
|
+
)
|
|
928
|
+
)(...getArgs(), callback)
|
|
910
929
|
);
|
|
911
930
|
},
|
|
912
931
|
/** @type {AsyncSeriesHook<T>["tapPromise"]} */
|
|
@@ -1101,7 +1120,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1101
1120
|
shouldGenerateChunkAssets: new SyncBailHook([]),
|
|
1102
1121
|
/** @type {SyncHook<[]>} */
|
|
1103
1122
|
beforeChunkAssets: new SyncHook([]),
|
|
1104
|
-
// TODO
|
|
1123
|
+
// TODO in the next major release: remove
|
|
1105
1124
|
/** @deprecated */
|
|
1106
1125
|
additionalChunkAssets:
|
|
1107
1126
|
/** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
|
|
@@ -1114,7 +1133,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1114
1133
|
)
|
|
1115
1134
|
),
|
|
1116
1135
|
|
|
1117
|
-
// TODO
|
|
1136
|
+
// TODO in the next major release: deprecate
|
|
1118
1137
|
/** @deprecated */
|
|
1119
1138
|
additionalAssets:
|
|
1120
1139
|
/** @type {FakeHook<Pick<AsyncSeriesHook<[]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
|
|
@@ -1125,7 +1144,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1125
1144
|
() => []
|
|
1126
1145
|
)
|
|
1127
1146
|
),
|
|
1128
|
-
// TODO
|
|
1147
|
+
// TODO in the next major release: remove
|
|
1129
1148
|
/** @deprecated */
|
|
1130
1149
|
optimizeChunkAssets:
|
|
1131
1150
|
/** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
|
|
@@ -1137,7 +1156,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1137
1156
|
"DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS"
|
|
1138
1157
|
)
|
|
1139
1158
|
),
|
|
1140
|
-
// TODO
|
|
1159
|
+
// TODO in the next major release: remove
|
|
1141
1160
|
/** @deprecated */
|
|
1142
1161
|
afterOptimizeChunkAssets:
|
|
1143
1162
|
/** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
|
|
@@ -1149,10 +1168,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1149
1168
|
"DEP_WEBPACK_COMPILATION_AFTER_OPTIMIZE_CHUNK_ASSETS"
|
|
1150
1169
|
)
|
|
1151
1170
|
),
|
|
1152
|
-
// TODO
|
|
1171
|
+
// TODO in the next major release: deprecate
|
|
1153
1172
|
/** @deprecated */
|
|
1154
1173
|
optimizeAssets: processAssetsHook,
|
|
1155
|
-
// TODO
|
|
1174
|
+
// TODO in the next major release: deprecate
|
|
1156
1175
|
/** @deprecated */
|
|
1157
1176
|
afterOptimizeAssets: afterProcessAssetsHook,
|
|
1158
1177
|
|
|
@@ -1464,6 +1483,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1464
1483
|
this._restoredUnsafeCacheEntries = new Map();
|
|
1465
1484
|
/** @type {WeakSet<Module>} */
|
|
1466
1485
|
this.builtModules = new WeakSet();
|
|
1486
|
+
// a module whose dependency failed to resolve reports nothing for it now,
|
|
1487
|
+
// but will once the target exists, which needs no module to be rebuilt
|
|
1488
|
+
/** @type {Set<Module>} */
|
|
1489
|
+
this._modulesWithUnresolvedDependencies = new Set();
|
|
1467
1490
|
/** @type {WeakSet<Module>} */
|
|
1468
1491
|
this.codeGeneratedModules = new WeakSet();
|
|
1469
1492
|
/** @type {WeakSet<Module>} */
|
|
@@ -1482,7 +1505,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1482
1505
|
this.buildDependencies = new LazySet();
|
|
1483
1506
|
/** @type {FileSystemDependencies} */
|
|
1484
1507
|
this.optionalBuildDependencies = new LazySet();
|
|
1485
|
-
// TODO
|
|
1508
|
+
// TODO in the next major release: remove
|
|
1486
1509
|
/**
|
|
1487
1510
|
* @deprecated
|
|
1488
1511
|
* @type {{ add: (item: string) => FileSystemDependencies }}
|
|
@@ -1516,8 +1539,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1516
1539
|
this._unsafeCachePredicate =
|
|
1517
1540
|
typeof unsafeCache === "function" ? unsafeCache : () => true;
|
|
1518
1541
|
|
|
1519
|
-
/** @type {
|
|
1520
|
-
this.
|
|
1542
|
+
/** @type {LazyBarrels} */
|
|
1543
|
+
this._lazyBarrels = new LazyBarrels(this);
|
|
1521
1544
|
}
|
|
1522
1545
|
|
|
1523
1546
|
getStats() {
|
|
@@ -1841,8 +1864,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1841
1864
|
this.options,
|
|
1842
1865
|
this,
|
|
1843
1866
|
this.resolverFactory.get("normal", module.resolveOptions),
|
|
1844
|
-
|
|
1845
|
-
(this.inputFileSystem),
|
|
1867
|
+
this.inputFileSystem,
|
|
1846
1868
|
(err) => {
|
|
1847
1869
|
if (currentProfile !== undefined) {
|
|
1848
1870
|
currentProfile.markBuildingEnd();
|
|
@@ -1930,7 +1952,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1930
1952
|
);
|
|
1931
1953
|
|
|
1932
1954
|
// lazy barrel: defer re-export targets of side-effect-free modules
|
|
1933
|
-
const hasLazyBarrel = this.
|
|
1955
|
+
const hasLazyBarrel = this._lazyBarrels.classify(module);
|
|
1934
1956
|
|
|
1935
1957
|
/** @type {DependenciesBlock} */
|
|
1936
1958
|
let currentBlock;
|
|
@@ -2011,15 +2033,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2011
2033
|
*/
|
|
2012
2034
|
const processDependency = (dep, index) => {
|
|
2013
2035
|
this.moduleGraph.setParents(dep, currentBlock, module, index);
|
|
2014
|
-
if (
|
|
2015
|
-
hasLazyBarrel &&
|
|
2016
|
-
// TODO remove in webpack 6
|
|
2017
|
-
// It may be missing on custom dependency types not extending the base Dependency
|
|
2018
|
-
"isLazy" in dep &&
|
|
2019
|
-
dep.isLazy()
|
|
2020
|
-
) {
|
|
2021
|
-
return;
|
|
2022
|
-
}
|
|
2036
|
+
if (hasLazyBarrel && this._lazyBarrels.isLazy(dep)) return;
|
|
2023
2037
|
|
|
2024
2038
|
if (this._unsafeCache) {
|
|
2025
2039
|
try {
|
|
@@ -2034,7 +2048,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2034
2048
|
dep,
|
|
2035
2049
|
unsafeCachedModule
|
|
2036
2050
|
);
|
|
2037
|
-
this.
|
|
2051
|
+
this._lazyBarrels.unlazyForDependency(
|
|
2038
2052
|
unsafeCachedModule,
|
|
2039
2053
|
dep,
|
|
2040
2054
|
sortedDependencies
|
|
@@ -2052,7 +2066,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2052
2066
|
dep,
|
|
2053
2067
|
cachedModule
|
|
2054
2068
|
);
|
|
2055
|
-
this.
|
|
2069
|
+
this._lazyBarrels.unlazyForDependency(
|
|
2056
2070
|
cachedModule,
|
|
2057
2071
|
dep,
|
|
2058
2072
|
sortedDependencies
|
|
@@ -2117,7 +2131,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2117
2131
|
dep,
|
|
2118
2132
|
cachedModule
|
|
2119
2133
|
); // a3
|
|
2120
|
-
this.
|
|
2134
|
+
this._lazyBarrels.unlazyForDependency(
|
|
2121
2135
|
cachedModule,
|
|
2122
2136
|
dep,
|
|
2123
2137
|
sortedDependencies
|
|
@@ -2198,7 +2212,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2198
2212
|
// mostly esm dependencies would be used
|
|
2199
2213
|
// so we don't allocate extra string for them
|
|
2200
2214
|
const cacheKey =
|
|
2201
|
-
category ===
|
|
2215
|
+
category === Dependency.ESM_CATEGORY
|
|
2202
2216
|
? resourceIdent
|
|
2203
2217
|
: `${category}${resourceIdent}`;
|
|
2204
2218
|
let list = /** @type {FactoryCacheValue} */ (factoryCacheValue).get(
|
|
@@ -2347,7 +2361,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2347
2361
|
},
|
|
2348
2362
|
(err, result) => {
|
|
2349
2363
|
if (result) {
|
|
2350
|
-
// TODO
|
|
2364
|
+
// TODO in the next major release: remove
|
|
2351
2365
|
// For backward-compat
|
|
2352
2366
|
if (result.module === undefined && result instanceof Module) {
|
|
2353
2367
|
result = {
|
|
@@ -2467,6 +2481,30 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2467
2481
|
context
|
|
2468
2482
|
},
|
|
2469
2483
|
(err, factoryResult) => {
|
|
2484
|
+
// Loader-created modules have no origin connection to resolve again.
|
|
2485
|
+
// Preserve their resolution dependencies in the caller's build snapshot.
|
|
2486
|
+
if (
|
|
2487
|
+
factoryResult &&
|
|
2488
|
+
!connectOrigin &&
|
|
2489
|
+
originModule &&
|
|
2490
|
+
originModule.buildInfo &&
|
|
2491
|
+
this.buildQueue.isProcessing(originModule)
|
|
2492
|
+
) {
|
|
2493
|
+
for (const key of /** @type {const} */ ([
|
|
2494
|
+
"fileDependencies",
|
|
2495
|
+
"contextDependencies",
|
|
2496
|
+
"missingDependencies"
|
|
2497
|
+
])) {
|
|
2498
|
+
const dependencies = factoryResult[key];
|
|
2499
|
+
if (dependencies) {
|
|
2500
|
+
let target = originModule.buildInfo[key];
|
|
2501
|
+
if (target === undefined) {
|
|
2502
|
+
originModule.buildInfo[key] = target = new LazySet();
|
|
2503
|
+
}
|
|
2504
|
+
target.addAll(dependencies);
|
|
2505
|
+
}
|
|
2506
|
+
}
|
|
2507
|
+
}
|
|
2470
2508
|
const applyFactoryResultDependencies = () => {
|
|
2471
2509
|
const { fileDependencies, contextDependencies, missingDependencies } =
|
|
2472
2510
|
/** @type {ModuleFactoryResult} */ (factoryResult);
|
|
@@ -2482,6 +2520,9 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2482
2520
|
};
|
|
2483
2521
|
if (err) {
|
|
2484
2522
|
if (factoryResult) applyFactoryResultDependencies();
|
|
2523
|
+
if (originModule) {
|
|
2524
|
+
this._modulesWithUnresolvedDependencies.add(originModule);
|
|
2525
|
+
}
|
|
2485
2526
|
if (dependencies.every((d) => d.optional)) {
|
|
2486
2527
|
this.warnings.push(err);
|
|
2487
2528
|
return callback();
|
|
@@ -2524,9 +2565,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2524
2565
|
module.restoreFromUnsafeCache &&
|
|
2525
2566
|
this._unsafeCachePredicate(module)
|
|
2526
2567
|
) {
|
|
2527
|
-
const unsafeCacheableModule =
|
|
2528
|
-
/** @type {ModuleWithRestoreFromUnsafeCache} */
|
|
2529
|
-
(module);
|
|
2568
|
+
const unsafeCacheableModule = module;
|
|
2530
2569
|
for (const dependency of dependencies) {
|
|
2531
2570
|
moduleGraph.setResolvedModule(
|
|
2532
2571
|
connectOrigin ? originModule : null,
|
|
@@ -2662,10 +2701,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2662
2701
|
// lazy barrel: on the first call the module is unclassified, so this only
|
|
2663
2702
|
// records the ids and `processModuleDependencies` replays them. Later the
|
|
2664
2703
|
// module is built and never re-walked, so the targets are built here.
|
|
2665
|
-
const unlazyItems = this.
|
|
2666
|
-
module,
|
|
2667
|
-
dependencies
|
|
2668
|
-
);
|
|
2704
|
+
const unlazyItems = this._lazyBarrels.request(module, dependencies);
|
|
2669
2705
|
|
|
2670
2706
|
if (unlazyItems !== undefined) {
|
|
2671
2707
|
let inProgress = unlazyItems.length + 1; // +1 = the module's own dep processing
|
|
@@ -2783,7 +2819,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2783
2819
|
* @returns {void} returns
|
|
2784
2820
|
*/
|
|
2785
2821
|
addEntry(context, entry, optionsOrName, callback) {
|
|
2786
|
-
// TODO
|
|
2822
|
+
// TODO in the next major release: remove
|
|
2787
2823
|
const options =
|
|
2788
2824
|
typeof optionsOrName === "object"
|
|
2789
2825
|
? optionsOrName
|
|
@@ -2947,6 +2983,18 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2947
2983
|
});
|
|
2948
2984
|
}
|
|
2949
2985
|
|
|
2986
|
+
/**
|
|
2987
|
+
* Returns the requests a lazy barrel still defers, which neither render nor
|
|
2988
|
+
* report what they would once requested, though no connection changes.
|
|
2989
|
+
* @private
|
|
2990
|
+
* @param {Module} module the module
|
|
2991
|
+
* @returns {string | undefined} the deferred requests as one key, if any
|
|
2992
|
+
*/
|
|
2993
|
+
_getLazyRequests(module) {
|
|
2994
|
+
const lazyRequests = this._lazyBarrels.getLazyRequests(module);
|
|
2995
|
+
return lazyRequests && JSON.stringify([...lazyRequests]);
|
|
2996
|
+
}
|
|
2997
|
+
|
|
2950
2998
|
/**
|
|
2951
2999
|
* Compute affected modules.
|
|
2952
3000
|
* @private
|
|
@@ -2978,13 +3026,16 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2978
3026
|
const computeReferences = (module) => {
|
|
2979
3027
|
/** @type {WeakReferences | undefined} */
|
|
2980
3028
|
let references;
|
|
3029
|
+
let count = 0;
|
|
2981
3030
|
for (const connection of moduleGraph.getOutgoingConnections(module)) {
|
|
2982
3031
|
const d = connection.dependency;
|
|
2983
3032
|
const m = connection.module;
|
|
2984
3033
|
if (!d || !m || unsafeCacheDependencies.has(d)) continue;
|
|
2985
3034
|
if (references === undefined) references = new WeakMap();
|
|
2986
3035
|
references.set(d, m);
|
|
3036
|
+
count++;
|
|
2987
3037
|
}
|
|
3038
|
+
if (references !== undefined) referenceCounts.set(references, count);
|
|
2988
3039
|
return references;
|
|
2989
3040
|
};
|
|
2990
3041
|
|
|
@@ -2995,15 +3046,21 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2995
3046
|
* @returns {boolean} true, when the references differ
|
|
2996
3047
|
*/
|
|
2997
3048
|
const compareReferences = (module, references) => {
|
|
2998
|
-
|
|
3049
|
+
let count = 0;
|
|
2999
3050
|
for (const connection of moduleGraph.getOutgoingConnections(module)) {
|
|
3000
3051
|
const d = connection.dependency;
|
|
3001
3052
|
if (!d) continue;
|
|
3002
|
-
const entry = references.get(d);
|
|
3003
|
-
if (entry ===
|
|
3004
|
-
|
|
3053
|
+
const entry = references === undefined ? undefined : references.get(d);
|
|
3054
|
+
if (entry === connection.module) {
|
|
3055
|
+
count++;
|
|
3056
|
+
} else if (entry !== undefined || !unsafeCacheDependencies.has(d)) {
|
|
3057
|
+
return false;
|
|
3058
|
+
}
|
|
3005
3059
|
}
|
|
3006
|
-
return
|
|
3060
|
+
return (
|
|
3061
|
+
count ===
|
|
3062
|
+
(references === undefined ? 0 : referenceCounts.get(references))
|
|
3063
|
+
);
|
|
3007
3064
|
};
|
|
3008
3065
|
|
|
3009
3066
|
const modulesWithoutCache = new Set(modules);
|
|
@@ -3011,6 +3068,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3011
3068
|
if (modulesWithoutCache.has(module)) {
|
|
3012
3069
|
const buildInfo = module.buildInfo;
|
|
3013
3070
|
if (buildInfo) {
|
|
3071
|
+
const lazyRequests = this._getLazyRequests(module);
|
|
3014
3072
|
if (cachedMemCache.buildInfo !== buildInfo) {
|
|
3015
3073
|
// use a new one
|
|
3016
3074
|
/** @type {MemCache} */
|
|
@@ -3019,15 +3077,20 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3019
3077
|
affectedModules.add(module);
|
|
3020
3078
|
cachedMemCache.buildInfo = buildInfo;
|
|
3021
3079
|
cachedMemCache.references = computeReferences(module);
|
|
3080
|
+
cachedMemCache.lazyRequests = lazyRequests;
|
|
3022
3081
|
cachedMemCache.memCache = memCache;
|
|
3023
3082
|
statChanged++;
|
|
3024
|
-
} else if (
|
|
3083
|
+
} else if (
|
|
3084
|
+
!compareReferences(module, cachedMemCache.references) ||
|
|
3085
|
+
cachedMemCache.lazyRequests !== lazyRequests
|
|
3086
|
+
) {
|
|
3025
3087
|
// use a new one
|
|
3026
3088
|
/** @type {MemCache} */
|
|
3027
3089
|
const memCache = new WeakTupleMap();
|
|
3028
3090
|
moduleMemCaches.set(module, memCache);
|
|
3029
3091
|
affectedModules.add(module);
|
|
3030
3092
|
cachedMemCache.references = computeReferences(module);
|
|
3093
|
+
cachedMemCache.lazyRequests = lazyRequests;
|
|
3031
3094
|
cachedMemCache.memCache = memCache;
|
|
3032
3095
|
statReferencesChanged++;
|
|
3033
3096
|
} else {
|
|
@@ -3054,6 +3117,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3054
3117
|
moduleMemCacheCache.set(module, {
|
|
3055
3118
|
buildInfo,
|
|
3056
3119
|
references: computeReferences(module),
|
|
3120
|
+
lazyRequests: this._getLazyRequests(module),
|
|
3057
3121
|
memCache
|
|
3058
3122
|
});
|
|
3059
3123
|
moduleMemCaches.set(module, memCache);
|
|
@@ -3132,6 +3196,31 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3132
3196
|
let statUnchanged = 0;
|
|
3133
3197
|
let statChanged = 0;
|
|
3134
3198
|
let statNew = 0;
|
|
3199
|
+
/**
|
|
3200
|
+
* Include async state and connection activity, which can change without changing module ids.
|
|
3201
|
+
* @param {Module} module connected module
|
|
3202
|
+
* @param {readonly ModuleGraphConnection[]} connections connections to it
|
|
3203
|
+
* @returns {string} reference key
|
|
3204
|
+
*/
|
|
3205
|
+
const referenceKey = (module, connections) => {
|
|
3206
|
+
let key = `${chunkGraph.getModuleId(module)}${moduleGraph.isAsync(module)}`;
|
|
3207
|
+
for (const connection of connections) {
|
|
3208
|
+
const state = connection.getActiveState(undefined);
|
|
3209
|
+
key += state === true ? "T" : state === false ? "F" : "O";
|
|
3210
|
+
}
|
|
3211
|
+
return key;
|
|
3212
|
+
};
|
|
3213
|
+
/**
|
|
3214
|
+
* Key the source types the chunk graph overrides for the module, which module concatenation narrows for an inner module that keeps other source types.
|
|
3215
|
+
* @param {Module} module module
|
|
3216
|
+
* @returns {string | undefined} key, undefined when the module's own source types stand
|
|
3217
|
+
*/
|
|
3218
|
+
const chunkSourceTypesKey = (module) => {
|
|
3219
|
+
const sourceTypes = chunkGraph.getModuleSourceTypes(module);
|
|
3220
|
+
return sourceTypes === module.getSourceTypes()
|
|
3221
|
+
? undefined
|
|
3222
|
+
: [...sourceTypes].join();
|
|
3223
|
+
};
|
|
3135
3224
|
/**
|
|
3136
3225
|
* Compute references.
|
|
3137
3226
|
* @param {Module} module module
|
|
@@ -3139,16 +3228,19 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3139
3228
|
*/
|
|
3140
3229
|
const computeReferences = (module) => {
|
|
3141
3230
|
const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
|
|
3142
|
-
/** @type {Map<Module,
|
|
3231
|
+
/** @type {Map<Module, string> | undefined} */
|
|
3143
3232
|
let modules;
|
|
3144
3233
|
/** @type {(ChunkId | null)[] | undefined} */
|
|
3145
3234
|
let blocks;
|
|
3146
3235
|
const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
|
|
3147
3236
|
if (outgoing !== undefined) {
|
|
3148
|
-
for (const
|
|
3149
|
-
if (!
|
|
3237
|
+
for (const [referencedModule, connections] of outgoing) {
|
|
3238
|
+
if (!referencedModule) continue;
|
|
3150
3239
|
if (modules === undefined) modules = new Map();
|
|
3151
|
-
modules.set(
|
|
3240
|
+
modules.set(
|
|
3241
|
+
referencedModule,
|
|
3242
|
+
referenceKey(referencedModule, connections)
|
|
3243
|
+
);
|
|
3152
3244
|
}
|
|
3153
3245
|
}
|
|
3154
3246
|
if (module.blocks.length > 0) {
|
|
@@ -3171,7 +3263,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3171
3263
|
id,
|
|
3172
3264
|
modules,
|
|
3173
3265
|
blocks,
|
|
3174
|
-
sourceTypes: module.getReferencedSourceTypes()
|
|
3266
|
+
sourceTypes: module.getReferencedSourceTypes(),
|
|
3267
|
+
chunkSourceTypes: chunkSourceTypesKey(module)
|
|
3175
3268
|
};
|
|
3176
3269
|
};
|
|
3177
3270
|
/**
|
|
@@ -3179,19 +3272,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3179
3272
|
* @param {Module} module module
|
|
3180
3273
|
* @param {object} references references
|
|
3181
3274
|
* @param {string | number} references.id id
|
|
3182
|
-
* @param {Map<Module, string
|
|
3275
|
+
* @param {Map<Module, string>=} references.modules modules
|
|
3183
3276
|
* @param {(string | number | null)[]=} references.blocks blocks
|
|
3184
3277
|
* @param {SourceTypes=} references.sourceTypes connection-dependent source types
|
|
3278
|
+
* @param {string=} references.chunkSourceTypes key of the source types the chunk graph overrides
|
|
3185
3279
|
* @returns {boolean} ok?
|
|
3186
3280
|
*/
|
|
3187
3281
|
const compareReferences = (
|
|
3188
3282
|
module,
|
|
3189
|
-
{ id, modules, blocks, sourceTypes }
|
|
3283
|
+
{ id, modules, blocks, sourceTypes, chunkSourceTypes }
|
|
3190
3284
|
) => {
|
|
3191
3285
|
if (id !== chunkGraph.getModuleId(module)) return false;
|
|
3192
3286
|
if (modules !== undefined) {
|
|
3193
|
-
|
|
3194
|
-
|
|
3287
|
+
const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
|
|
3288
|
+
for (const [referencedModule, key] of modules) {
|
|
3289
|
+
const connections = outgoing && outgoing.get(referencedModule);
|
|
3290
|
+
if (
|
|
3291
|
+
connections === undefined ||
|
|
3292
|
+
referenceKey(referencedModule, connections) !== key
|
|
3293
|
+
) {
|
|
3294
|
+
return false;
|
|
3295
|
+
}
|
|
3195
3296
|
}
|
|
3196
3297
|
}
|
|
3197
3298
|
if (blocks !== undefined) {
|
|
@@ -3218,6 +3319,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3218
3319
|
) {
|
|
3219
3320
|
return false;
|
|
3220
3321
|
}
|
|
3322
|
+
if (chunkSourceTypesKey(module) !== chunkSourceTypes) return false;
|
|
3221
3323
|
return true;
|
|
3222
3324
|
};
|
|
3223
3325
|
|
|
@@ -3253,6 +3355,35 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3253
3355
|
);
|
|
3254
3356
|
}
|
|
3255
3357
|
|
|
3358
|
+
/**
|
|
3359
|
+
* Returns the modules whose dependency report depends on a dependency that
|
|
3360
|
+
* failed to resolve: they must not be remembered as clean, as the target can
|
|
3361
|
+
* appear without any of them being rebuilt.
|
|
3362
|
+
* @private
|
|
3363
|
+
* @returns {Set<Module>} the modules with such a dependency and their parents
|
|
3364
|
+
*/
|
|
3365
|
+
_modulesReportingUnresolved() {
|
|
3366
|
+
const result = new Set(this._modulesWithUnresolvedDependencies);
|
|
3367
|
+
if (result.size === 0) return result;
|
|
3368
|
+
const { moduleGraph } = this;
|
|
3369
|
+
// as the token walk does, only a transitive connection reaches further up;
|
|
3370
|
+
// a parent first reached directly may still be reached transitively later
|
|
3371
|
+
const queued = new Set(result);
|
|
3372
|
+
for (const module of queued) {
|
|
3373
|
+
for (const [
|
|
3374
|
+
referencingModule,
|
|
3375
|
+
connections
|
|
3376
|
+
] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
|
|
3377
|
+
if (!referencingModule) continue;
|
|
3378
|
+
result.add(referencingModule);
|
|
3379
|
+
if (reduceAffectType(connections) === Dependency.TRANSITIVE) {
|
|
3380
|
+
queued.add(referencingModule);
|
|
3381
|
+
}
|
|
3382
|
+
}
|
|
3383
|
+
}
|
|
3384
|
+
return result;
|
|
3385
|
+
}
|
|
3386
|
+
|
|
3256
3387
|
/**
|
|
3257
3388
|
* Assigns a fresh dependency report cache token to every module whose
|
|
3258
3389
|
* dependency errors/warnings could have changed since the previous
|
|
@@ -3398,20 +3529,24 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3398
3529
|
if (d === 0 || p === 0) continue;
|
|
3399
3530
|
const t = d / p;
|
|
3400
3531
|
sum += t;
|
|
3401
|
-
|
|
3532
|
+
/* istanbul ignore next -- @preserve: only slow (>10ms) modules are logged, timing-dependent */
|
|
3533
|
+
if (t > 10) {
|
|
3534
|
+
logByValue(
|
|
3535
|
+
t,
|
|
3536
|
+
` | ${Math.round(t)} ms${
|
|
3537
|
+
p >= 1.1 ? ` (parallelism ${Math.round(p * 10) / 10})` : ""
|
|
3538
|
+
} ${category} > ${module.readableIdentifier(this.requestShortener)}`
|
|
3539
|
+
);
|
|
3540
|
+
max = Math.max(max, t);
|
|
3541
|
+
}
|
|
3542
|
+
}
|
|
3543
|
+
/* istanbul ignore next -- @preserve: only slow (>10ms) categories are logged, timing-dependent */
|
|
3544
|
+
if (sum > 10) {
|
|
3402
3545
|
logByValue(
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
p >= 1.1 ? ` (parallelism ${Math.round(p * 10) / 10})` : ""
|
|
3406
|
-
} ${category} > ${module.readableIdentifier(this.requestShortener)}`
|
|
3546
|
+
Math.max(sum / 10, max),
|
|
3547
|
+
`${Math.round(sum)} ms ${category}`
|
|
3407
3548
|
);
|
|
3408
|
-
max = Math.max(max, t);
|
|
3409
3549
|
}
|
|
3410
|
-
if (sum <= 10) return;
|
|
3411
|
-
logByValue(
|
|
3412
|
-
Math.max(sum / 10, max),
|
|
3413
|
-
`${Math.round(sum)} ms ${category}`
|
|
3414
|
-
);
|
|
3415
3550
|
};
|
|
3416
3551
|
/**
|
|
3417
3552
|
* Log by loaders summary.
|
|
@@ -3456,30 +3591,34 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3456
3591
|
}
|
|
3457
3592
|
}
|
|
3458
3593
|
sum += innerSum;
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3594
|
+
/* istanbul ignore next -- @preserve: only slow (>10ms) loader groups are logged, timing-dependent */
|
|
3595
|
+
if (innerSum > 10) {
|
|
3596
|
+
const idx = key.indexOf("!");
|
|
3597
|
+
const loaders = key.slice(idx + 1);
|
|
3598
|
+
const moduleType = key.slice(0, idx);
|
|
3599
|
+
const t = Math.max(innerSum / 10, innerMax);
|
|
3600
|
+
logByValue(
|
|
3601
|
+
t,
|
|
3602
|
+
` | ${Math.round(innerSum)} ms ${category} > ${
|
|
3603
|
+
loaders
|
|
3604
|
+
? `${
|
|
3605
|
+
modules.length
|
|
3606
|
+
} x ${moduleType} with ${this.requestShortener.shorten(
|
|
3607
|
+
loaders
|
|
3608
|
+
)}`
|
|
3609
|
+
: `${modules.length} x ${moduleType}`
|
|
3610
|
+
}`
|
|
3611
|
+
);
|
|
3612
|
+
max = Math.max(max, t);
|
|
3613
|
+
}
|
|
3614
|
+
}
|
|
3615
|
+
/* istanbul ignore next -- @preserve: only slow (>10ms) categories are logged, timing-dependent */
|
|
3616
|
+
if (sum > 10) {
|
|
3464
3617
|
logByValue(
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
loaders
|
|
3468
|
-
? `${
|
|
3469
|
-
modules.length
|
|
3470
|
-
} x ${moduleType} with ${this.requestShortener.shorten(
|
|
3471
|
-
loaders
|
|
3472
|
-
)}`
|
|
3473
|
-
: `${modules.length} x ${moduleType}`
|
|
3474
|
-
}`
|
|
3618
|
+
Math.max(sum / 10, max),
|
|
3619
|
+
`${Math.round(sum)} ms ${category}`
|
|
3475
3620
|
);
|
|
3476
|
-
max = Math.max(max, t);
|
|
3477
3621
|
}
|
|
3478
|
-
if (sum <= 10) return;
|
|
3479
|
-
logByValue(
|
|
3480
|
-
Math.max(sum / 10, max),
|
|
3481
|
-
`${Math.round(sum)} ms ${category}`
|
|
3482
|
-
);
|
|
3483
3622
|
};
|
|
3484
3623
|
logNormalSummary(
|
|
3485
3624
|
"resolve to new modules",
|
|
@@ -3531,16 +3670,31 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3531
3670
|
if (useReportCacheTokens) {
|
|
3532
3671
|
this._flagModulesForDependencyReporting(modules);
|
|
3533
3672
|
}
|
|
3673
|
+
const reportsUnresolved = this._modulesReportingUnresolved();
|
|
3534
3674
|
for (const module of modules) {
|
|
3675
|
+
const unresolved = reportsUnresolved.has(module);
|
|
3535
3676
|
const memCache = moduleMemCaches && moduleMemCaches.get(module);
|
|
3536
|
-
if (memCache && memCache.get("noWarningsOrErrors"))
|
|
3677
|
+
if (!unresolved && memCache && memCache.get("noWarningsOrErrors")) {
|
|
3678
|
+
continue;
|
|
3679
|
+
}
|
|
3537
3680
|
let token;
|
|
3681
|
+
/** @type {string | true} */
|
|
3682
|
+
let clean = true;
|
|
3538
3683
|
if (useReportCacheTokens) {
|
|
3684
|
+
// a request leaving a lazy barrel reports without any rebuild
|
|
3685
|
+
const lazyRequests = this._getLazyRequests(module);
|
|
3686
|
+
if (lazyRequests !== undefined) clean = lazyRequests;
|
|
3539
3687
|
token = dependencyReportCacheTokens.get(module);
|
|
3540
3688
|
const cleanModules = modulesWithoutProblems.get(
|
|
3541
3689
|
/** @type {DependencyReportCacheToken} */ (token)
|
|
3542
3690
|
);
|
|
3543
|
-
if (
|
|
3691
|
+
if (
|
|
3692
|
+
!unresolved &&
|
|
3693
|
+
cleanModules !== undefined &&
|
|
3694
|
+
cleanModules.get(module) === clean
|
|
3695
|
+
) {
|
|
3696
|
+
continue;
|
|
3697
|
+
}
|
|
3544
3698
|
}
|
|
3545
3699
|
let hasProblems = this.reportDependencyErrorsAndWarnings(module, [
|
|
3546
3700
|
module
|
|
@@ -3565,7 +3719,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3565
3719
|
hasProblems = true;
|
|
3566
3720
|
}
|
|
3567
3721
|
}
|
|
3568
|
-
if (!hasProblems) {
|
|
3722
|
+
if (!hasProblems && !unresolved) {
|
|
3569
3723
|
if (memCache) memCache.set("noWarningsOrErrors", true);
|
|
3570
3724
|
if (useReportCacheTokens) {
|
|
3571
3725
|
let cleanModules = modulesWithoutProblems.get(
|
|
@@ -3574,10 +3728,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3574
3728
|
if (cleanModules === undefined) {
|
|
3575
3729
|
modulesWithoutProblems.set(
|
|
3576
3730
|
/** @type {DependencyReportCacheToken} */ (token),
|
|
3577
|
-
(cleanModules = new
|
|
3731
|
+
(cleanModules = new WeakMap())
|
|
3578
3732
|
);
|
|
3579
3733
|
}
|
|
3580
|
-
cleanModules.
|
|
3734
|
+
cleanModules.set(module, clean);
|
|
3581
3735
|
}
|
|
3582
3736
|
}
|
|
3583
3737
|
}
|
|
@@ -3623,7 +3777,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3623
3777
|
this.processDependenciesQueue.clear();
|
|
3624
3778
|
this.addModuleQueue.clear();
|
|
3625
3779
|
// lazy barrel only acts during make; release its bookkeeping now
|
|
3626
|
-
this.
|
|
3780
|
+
this._lazyBarrels.clear();
|
|
3627
3781
|
// unsafe-cache restore tables are only read during make; release them
|
|
3628
3782
|
// so they stop pinning restored modules for the rest of the compilation
|
|
3629
3783
|
this._restoredUnsafeCacheModuleEntries.clear();
|
|
@@ -4026,7 +4180,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4026
4180
|
const warning = new (getModuleDependencyWarning())(
|
|
4027
4181
|
module,
|
|
4028
4182
|
w,
|
|
4029
|
-
|
|
4183
|
+
w.loc || d.loc
|
|
4030
4184
|
);
|
|
4031
4185
|
this.warnings.push(warning);
|
|
4032
4186
|
hasProblems = true;
|
|
@@ -4038,7 +4192,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4038
4192
|
const error = new (getModuleDependencyError())(
|
|
4039
4193
|
module,
|
|
4040
4194
|
e,
|
|
4041
|
-
|
|
4195
|
+
e.loc || d.loc
|
|
4042
4196
|
);
|
|
4043
4197
|
this.errors.push(error);
|
|
4044
4198
|
hasProblems = true;
|
|
@@ -4162,7 +4316,35 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4162
4316
|
(err) => {
|
|
4163
4317
|
if (err) return callback(/** @type {WebpackError} */ (err));
|
|
4164
4318
|
const affected = new Set(pending.map(({ jobModule }) => jobModule));
|
|
4165
|
-
|
|
4319
|
+
// A module referencing one of these may have copied what it generated
|
|
4320
|
+
// into its own code (an analyzable `new URL`), so it goes again after.
|
|
4321
|
+
/** @type {Set<Module>} */
|
|
4322
|
+
const referencing = new Set();
|
|
4323
|
+
for (const { info } of pending) {
|
|
4324
|
+
for (const connection of this.moduleGraph.getIncomingConnections(
|
|
4325
|
+
info.module
|
|
4326
|
+
)) {
|
|
4327
|
+
const { originModule } = connection;
|
|
4328
|
+
if (originModule !== null && !affected.has(originModule)) {
|
|
4329
|
+
referencing.add(originModule);
|
|
4330
|
+
}
|
|
4331
|
+
}
|
|
4332
|
+
}
|
|
4333
|
+
|
|
4334
|
+
const redo = [
|
|
4335
|
+
...jobs.filter(({ module }) => affected.has(module)),
|
|
4336
|
+
// A referencing module concatenated into another is generated as
|
|
4337
|
+
// part of it, so the job to redo is the concatenated module's.
|
|
4338
|
+
...jobs.filter(({ module }) => {
|
|
4339
|
+
if (affected.has(module)) return false;
|
|
4340
|
+
if (referencing.has(module)) return true;
|
|
4341
|
+
if (module.getRootModule() === module) return false;
|
|
4342
|
+
for (const inner of module.getSourceModules()) {
|
|
4343
|
+
if (referencing.has(inner)) return true;
|
|
4344
|
+
}
|
|
4345
|
+
return false;
|
|
4346
|
+
})
|
|
4347
|
+
];
|
|
4166
4348
|
// Generated directly rather than through the codegen cache: the module
|
|
4167
4349
|
// hash is unchanged, so the cache would hand back the first pass again.
|
|
4168
4350
|
const results =
|
|
@@ -4251,8 +4433,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4251
4433
|
if (!referencedModule) return false;
|
|
4252
4434
|
return (
|
|
4253
4435
|
notCodeGeneratedModules === undefined ||
|
|
4254
|
-
|
|
4255
|
-
(notCodeGeneratedModules).has(referencedModule)
|
|
4436
|
+
notCodeGeneratedModules.has(referencedModule)
|
|
4256
4437
|
);
|
|
4257
4438
|
})
|
|
4258
4439
|
) {
|
|
@@ -4621,9 +4802,10 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4621
4802
|
* is over. `runtimeRequirementInTree` is a sync hook, so a tap cannot await
|
|
4622
4803
|
* the load itself; anything the tap reads off the requirement set must be
|
|
4623
4804
|
* captured before queueing, since `create` runs later.
|
|
4805
|
+
* @template {object} T
|
|
4624
4806
|
* @param {Chunk} chunk target chunk
|
|
4625
|
-
* @param {() => Promise<
|
|
4626
|
-
* @param {(loaded:
|
|
4807
|
+
* @param {() => Promise<T>} load resolves the runtime module implementation
|
|
4808
|
+
* @param {(loaded: T) => RuntimeModule} create builds the runtime module from it
|
|
4627
4809
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
4628
4810
|
* @returns {void}
|
|
4629
4811
|
*/
|
|
@@ -4648,14 +4830,18 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4648
4830
|
.then((loaded) => {
|
|
4649
4831
|
for (let i = 0; i < pending.length; i++) {
|
|
4650
4832
|
const { chunk, create, chunkGraph } = pending[i];
|
|
4651
|
-
this.addRuntimeModule(
|
|
4833
|
+
this.addRuntimeModule(
|
|
4834
|
+
chunk,
|
|
4835
|
+
create(/** @type {never} */ (loaded[i])),
|
|
4836
|
+
chunkGraph
|
|
4837
|
+
);
|
|
4652
4838
|
}
|
|
4653
4839
|
})
|
|
4654
4840
|
// a `runtimeModule` tap may have queued more
|
|
4655
4841
|
.then(() => this._attachPendingRuntimeModules(callback), callback);
|
|
4656
4842
|
}
|
|
4657
4843
|
|
|
4658
|
-
// TODO
|
|
4844
|
+
// TODO in the next major release: make chunkGraph argument non-optional
|
|
4659
4845
|
/**
|
|
4660
4846
|
* Adds runtime module.
|
|
4661
4847
|
* @param {Chunk} chunk target chunk
|
|
@@ -4773,7 +4959,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4773
4959
|
const name = options.name;
|
|
4774
4960
|
if (name) {
|
|
4775
4961
|
const entrypoint = this.namedChunkGroups.get(name);
|
|
4776
|
-
if (entrypoint
|
|
4962
|
+
if (entrypoint !== undefined && entrypoint.isEntrypoint()) {
|
|
4777
4963
|
if (module) {
|
|
4778
4964
|
entrypoint.addOrigin(module, loc, request);
|
|
4779
4965
|
}
|
|
@@ -5154,8 +5340,12 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
5154
5340
|
});
|
|
5155
5341
|
moduleHashDigest = moduleHash.digest(hashDigest);
|
|
5156
5342
|
} catch (err) {
|
|
5343
|
+
// A diagnostic that already names its module says more than this wrapper
|
|
5344
|
+
// would, e.g. which runtime module's `generate()` threw.
|
|
5157
5345
|
errors.push(
|
|
5158
|
-
|
|
5346
|
+
WebpackError.isWebpackError(err) && err.module
|
|
5347
|
+
? err
|
|
5348
|
+
: new (getModuleHashingError())(module, /** @type {Error} */ (err))
|
|
5159
5349
|
);
|
|
5160
5350
|
moduleHashDigest = "XXXXXX";
|
|
5161
5351
|
}
|
|
@@ -5170,7 +5360,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
5170
5360
|
|
|
5171
5361
|
createHash() {
|
|
5172
5362
|
this.logger.time("hashing: initialize hash");
|
|
5173
|
-
const chunkGraph =
|
|
5363
|
+
const chunkGraph = this.chunkGraph;
|
|
5174
5364
|
const runtimeTemplate = this.runtimeTemplate;
|
|
5175
5365
|
const outputOptions = this.outputOptions;
|
|
5176
5366
|
const hashFunction = outputOptions.hashFunction;
|
|
@@ -5313,6 +5503,26 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5313
5503
|
this.warnings.push(err);
|
|
5314
5504
|
for (const i of circularRuntimeChunkInfo) runtimeChunks.push(i.chunk);
|
|
5315
5505
|
}
|
|
5506
|
+
// An ESM entry chunk imports the chunks of the entrypoints it depends on
|
|
5507
|
+
// (`dependOn`) by hashed filename, so their entry chunks are hashed first.
|
|
5508
|
+
/** @type {Set<Chunk>} */
|
|
5509
|
+
const unorderedEntryChunks = new Set(entryChunks);
|
|
5510
|
+
entryChunks.length = 0;
|
|
5511
|
+
/**
|
|
5512
|
+
* Adds an entry chunk after the entry chunks of its parent entrypoints.
|
|
5513
|
+
* @param {Chunk} chunk the entry chunk
|
|
5514
|
+
* @returns {void}
|
|
5515
|
+
*/
|
|
5516
|
+
const addEntryChunk = (chunk) => {
|
|
5517
|
+
if (!unorderedEntryChunks.delete(chunk)) return;
|
|
5518
|
+
for (const group of chunk.groupsIterable) {
|
|
5519
|
+
for (const parent of group.parentsIterable) {
|
|
5520
|
+
for (const c of parent.chunks) addEntryChunk(c);
|
|
5521
|
+
}
|
|
5522
|
+
}
|
|
5523
|
+
entryChunks.push(chunk);
|
|
5524
|
+
};
|
|
5525
|
+
for (const chunk of unorderedEntryChunks) addEntryChunk(chunk);
|
|
5316
5526
|
this.logger.timeEnd("hashing: sort chunks");
|
|
5317
5527
|
|
|
5318
5528
|
/** @type {Set<Chunk>} */
|
|
@@ -5923,7 +6133,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5923
6133
|
);
|
|
5924
6134
|
|
|
5925
6135
|
assetCacheItem.get((err, sourceFromCache) => {
|
|
5926
|
-
/** @type {
|
|
6136
|
+
/** @type {RenderManifestEntryTemplated["filenameTemplate"]} */
|
|
5927
6137
|
let filenameTemplate;
|
|
5928
6138
|
/** @type {string} */
|
|
5929
6139
|
let file;
|
|
@@ -6044,7 +6254,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6044
6254
|
/**
|
|
6045
6255
|
* Returns interpolated path.
|
|
6046
6256
|
* @template {PathData} [T=PathData]
|
|
6047
|
-
* @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6257
|
+
* @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6048
6258
|
* @param {T=} data context data
|
|
6049
6259
|
* @returns {string} interpolated path
|
|
6050
6260
|
*/
|
|
@@ -6061,7 +6271,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6061
6271
|
/**
|
|
6062
6272
|
* Gets path with info.
|
|
6063
6273
|
* @template {PathData} [T=PathData]
|
|
6064
|
-
* @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6274
|
+
* @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6065
6275
|
* @param {T=} data context data
|
|
6066
6276
|
* @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
|
|
6067
6277
|
*/
|
|
@@ -6078,7 +6288,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6078
6288
|
/**
|
|
6079
6289
|
* Returns interpolated path.
|
|
6080
6290
|
* @template {PathData} [T=PathData]
|
|
6081
|
-
* @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6291
|
+
* @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6082
6292
|
* @param {T} data context data
|
|
6083
6293
|
* @returns {string} interpolated path
|
|
6084
6294
|
*/
|
|
@@ -6093,7 +6303,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6093
6303
|
/**
|
|
6094
6304
|
* Gets asset path with info.
|
|
6095
6305
|
* @template {PathData} [T=PathData]
|
|
6096
|
-
* @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6306
|
+
* @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
|
|
6097
6307
|
* @param {T} data context data
|
|
6098
6308
|
* @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
|
|
6099
6309
|
*/
|
|
@@ -6267,7 +6477,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6267
6477
|
reportErrors();
|
|
6268
6478
|
|
|
6269
6479
|
// for backward-compat temporary set the chunk graph
|
|
6270
|
-
// TODO
|
|
6480
|
+
// TODO in the next major release: drop it
|
|
6271
6481
|
const old = this.chunkGraph;
|
|
6272
6482
|
this.chunkGraph = chunkGraph;
|
|
6273
6483
|
this.processRuntimeRequirements({
|
|
@@ -6542,7 +6752,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6542
6752
|
const usedIds = new Set();
|
|
6543
6753
|
|
|
6544
6754
|
for (const module of this.modules) {
|
|
6545
|
-
if (module.
|
|
6755
|
+
if (module.is("runtime")) continue;
|
|
6546
6756
|
const moduleId = chunkGraph.getModuleId(module);
|
|
6547
6757
|
if (moduleId === null) continue;
|
|
6548
6758
|
if (usedIds.has(moduleId)) {
|
|
@@ -6598,7 +6808,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
6598
6808
|
// Hide from typescript
|
|
6599
6809
|
const compilationPrototype = Compilation.prototype;
|
|
6600
6810
|
|
|
6601
|
-
// TODO
|
|
6811
|
+
// TODO in the next major release: remove
|
|
6602
6812
|
Object.defineProperty(compilationPrototype, "modifyHash", {
|
|
6603
6813
|
writable: false,
|
|
6604
6814
|
enumerable: false,
|
|
@@ -6610,7 +6820,7 @@ Object.defineProperty(compilationPrototype, "modifyHash", {
|
|
|
6610
6820
|
}
|
|
6611
6821
|
});
|
|
6612
6822
|
|
|
6613
|
-
// TODO
|
|
6823
|
+
// TODO in the next major release: remove
|
|
6614
6824
|
Object.defineProperty(compilationPrototype, "cache", {
|
|
6615
6825
|
enumerable: false,
|
|
6616
6826
|
configurable: false,
|
|
@@ -6629,7 +6839,7 @@ Object.defineProperty(compilationPrototype, "cache", {
|
|
|
6629
6839
|
set: util.deprecate(
|
|
6630
6840
|
/**
|
|
6631
6841
|
* Handles the value callback for this hook.
|
|
6632
|
-
* @param {
|
|
6842
|
+
* @param {Cache} _v value
|
|
6633
6843
|
*/
|
|
6634
6844
|
(_v) => {},
|
|
6635
6845
|
"Compilation.cache was removed in favor of Compilation.getCache()",
|