webpack 5.111.0 → 5.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +237 -138
- package/lib/Compiler.js +23 -24
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -69
- 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 +43 -24
- package/lib/NormalModule.js +3 -2190
- 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 +15 -9
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +61 -38
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +15 -9
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -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} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +6 -6
- package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
- package/lib/cache/PackFileCacheStrategy.js +11 -28
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/getLazyHashedEtag.js +3 -5
- 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} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +3 -9
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +192 -122
- package/lib/config/getClaimedAssetTypes.js +28 -21
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +13 -4
- 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/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
- package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
- package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
- package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
- package/lib/css/CssGenerator.js +57 -42
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +700 -311
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +130 -54
- package/lib/css/data.js +7017 -4648
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -17370
- package/lib/debug/ProfilingPlugin.js +55 -23
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- 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 -10
- 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} +10 -10
- 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} +176 -44
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- 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} +19 -20
- 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} +5 -5
- 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} +34 -18
- 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} +9 -9
- 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} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- 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} +12 -11
- 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 -100
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
- 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} +26 -21
- 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} +40 -41
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
- 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} +136 -122
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
- 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} +125 -243
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
- 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} +20 -20
- 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} +126 -107
- 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} +34 -25
- package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
- 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} +46 -54
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
- 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} +207 -129
- 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 +20 -18
- 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 +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- 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/{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/errors/ErrorHelpers.js +222 -0
- 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/{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 +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- 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} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
- package/lib/{util → graph}/findGraphRoots.js +20 -21
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +34 -26
- package/lib/html/HtmlGenerator.js +168 -125
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +260 -215
- package/lib/html/HtmlParser.js +598 -292
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +23 -1
- package/lib/html/htmlMinify.js +120 -51
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -14062
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- 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 +348 -99
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +25 -18
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +458 -256
- package/lib/javascript/JavascriptParser.js +916 -287
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- 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 +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -10946
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +17 -11
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- 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 +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +207 -285
- 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 +27 -2
- package/lib/loaders/LoaderRunner.js +160 -22
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- 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} +38 -14
- package/lib/{Module.js → module/Module.js} +122 -54
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- 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 +61 -15
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +5 -7
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +305 -309
- 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} +25 -30
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +17 -23
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +21 -15
- package/lib/optimize/MangleExportsPlugin.js +8 -9
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
- package/lib/optimize/SplitChunksPlugin.js +715 -159
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +25 -30
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- 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 +5 -7
- 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 +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- 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 +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +13 -16
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- 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 +7 -9
- 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 +82 -65
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- 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/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
- 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 +9 -10
- 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 +5 -7
- 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 +135 -102
- 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} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -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 +4 -7
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/BinaryMiddleware.js +9 -9
- package/lib/serialization/FileMiddleware.js +19 -19
- package/lib/serialization/ObjectMiddleware.js +77 -49
- package/lib/serialization/SerializerMiddleware.js +2 -2
- 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 +19 -19
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -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} +178 -106
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
- package/lib/typescript/TypeScriptPlugin.js +5 -6
- package/lib/util/LocConverter.js +4 -7
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +364 -66
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +32 -151
- package/lib/util/createHooksRegistry.js +1 -2
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -18
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/hash/wasm-hash.js +3 -4
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +295 -103
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- 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 +4 -1
- 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 +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
- 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 +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- 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 +70 -40
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- 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 +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +13915 -8414
- package/lib/ErrorHelpers.js +0 -107
- 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 -71
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1494
- 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}/conventions.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
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const { RawSource, ReplaceSource } = require("webpack-sources");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const CssModulesPlugin = require("../css/CssModulesPlugin");
|
|
9
|
+
const WebpackError = require("../errors/WebpackError");
|
|
10
|
+
const Generator = require("../module/Generator");
|
|
10
11
|
const {
|
|
11
12
|
HTML_TYPE,
|
|
12
13
|
HTML_TYPES,
|
|
13
14
|
JAVASCRIPT_TYPE,
|
|
14
15
|
JAVASCRIPT_TYPES
|
|
15
|
-
} = require("../ModuleSourceTypeConstants");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const WebpackError = require("../errors/WebpackError");
|
|
16
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
17
|
+
const ConcatenationScope = require("../optimize/ConcatenationScope");
|
|
18
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
19
|
+
const Template = require("../template/Template");
|
|
20
20
|
const { getUndoPath } = require("../util/identifier");
|
|
21
21
|
const memoize = require("../util/memoize");
|
|
22
22
|
const { PUBLIC_PATH_AUTO } = require("../util/publicPathPlaceholder");
|
|
@@ -24,7 +24,9 @@ const { VOID } = require("./data");
|
|
|
24
24
|
|
|
25
25
|
const getCreateNodeHash = memoize(() => require("crypto").createHash);
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const getCssParser = memoize(() => require("../css/syntax-parser"));
|
|
28
|
+
|
|
29
|
+
const getHtmlParser = memoize(() => require("./syntax-parser"));
|
|
28
30
|
|
|
29
31
|
const getHtmlSyntax = memoize(() => require("./syntax"));
|
|
30
32
|
|
|
@@ -48,7 +50,7 @@ const getHtmlSyntax = memoize(() => require("./syntax"));
|
|
|
48
50
|
const serializeAttrs = (attrs) => {
|
|
49
51
|
let out = "";
|
|
50
52
|
if (attrs) {
|
|
51
|
-
const { escapeAttribute } =
|
|
53
|
+
const { escapeAttribute } = getHtmlParser();
|
|
52
54
|
for (const name of Object.keys(attrs)) {
|
|
53
55
|
const value = attrs[name];
|
|
54
56
|
if (value === false || value === undefined || value === null) continue;
|
|
@@ -128,6 +130,7 @@ const metaIsCsp = (attrs) => {
|
|
|
128
130
|
/** @import { Source } from "webpack-sources" */
|
|
129
131
|
/** @import { HtmlGeneratorOptions } from "../../declarations/WebpackOptions" */
|
|
130
132
|
/** @typedef {import("../../declarations/WebpackOptions").OutputHtmlOptions["csp"]} CspOption */
|
|
133
|
+
/** @typedef {import("../../declarations/WebpackOptions").OutputNormalized["html"]} HtmlOption */
|
|
131
134
|
/** @import { HtmlTagDescriptor, HtmlMutableTag } from "./HtmlModulesPlugin" */
|
|
132
135
|
/** @typedef {"head" | "body"} HtmlTagLocation */
|
|
133
136
|
/**
|
|
@@ -142,29 +145,29 @@ const metaIsCsp = (attrs) => {
|
|
|
142
145
|
*/
|
|
143
146
|
/** @typedef {{ headOpen: number, headEnd: number, bodyOpen: number, bodyEnd: number }} HtmlAnchors */
|
|
144
147
|
/** @typedef {{ tags: HtmlMutableTag[], spans: (HtmlTagSpan | null)[], originals: (string | null)[], descriptors: (HtmlTagDescriptor | null)[], anchors: HtmlAnchors }} HtmlModel */
|
|
145
|
-
/** @import Chunk from "../Chunk" */
|
|
148
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
146
149
|
/** @import Compilation, { DependencyConstructor } from "../Compilation" */
|
|
147
150
|
/** @typedef {boolean | string[] | ((asset: { chunk: Chunk, filename: string }) => string[] | false)} HtmlIntegrity */
|
|
148
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
149
|
-
/** @import Dependency from "../Dependency" */
|
|
150
|
-
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
151
|
-
/** @import { GenerateContext, UpdateHashContext } from "../Generator" */
|
|
151
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
152
|
+
/** @import Dependency from "../graph/Dependency" */
|
|
153
|
+
/** @import { DependencyTemplateContext } from "../template/DependencyTemplate" */
|
|
154
|
+
/** @import { GenerateContext, UpdateHashContext } from "../module/Generator" */
|
|
152
155
|
/**
|
|
153
156
|
* @import Module, {
|
|
154
157
|
* SourceType,
|
|
155
158
|
* SourceTypes,
|
|
156
159
|
* ConcatenationBailoutReasonContext,
|
|
157
160
|
* RuntimeRequirements
|
|
158
|
-
* } from "../Module"
|
|
161
|
+
* } from "../module/Module"
|
|
159
162
|
*/
|
|
160
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
161
|
-
/** @import NormalModule from "../NormalModule" */
|
|
163
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
164
|
+
/** @import NormalModule from "../module/NormalModule" */
|
|
162
165
|
/** @import { HtmlModuleBuildInfo } from "./HtmlModule" */
|
|
163
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
166
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
164
167
|
/** @import Hash from "../util/Hash" */
|
|
165
168
|
/**
|
|
166
169
|
* @template T
|
|
167
|
-
* @typedef {import("../InitFragment")<T>} InitFragment
|
|
170
|
+
* @typedef {import("../template/InitFragment")<T>} InitFragment
|
|
168
171
|
*/
|
|
169
172
|
|
|
170
173
|
/**
|
|
@@ -226,12 +229,9 @@ const CHUNK_URL_SENTINEL_REGEXP =
|
|
|
226
229
|
const HTML_PAGE_URL_SENTINEL_REGEXP =
|
|
227
230
|
/__WEBPACK_HTML_PAGE_URL__([0-9a-f]+)__END__/g;
|
|
228
231
|
|
|
229
|
-
// Sentinel for a URL-referenced asset
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
// HtmlEntry deps run *while* the HTML module is being codegen'd — the asset
|
|
233
|
-
// module's own codegen might not have completed yet. Keyed by the asset
|
|
234
|
-
// module's identifier, hex-encoded so any character in it is safe in a URL.
|
|
232
|
+
// Sentinel for a URL-referenced asset in a resource-hint `<link>`, resolved at
|
|
233
|
+
// `HtmlModulesPlugin` render because HtmlEntry deps run while the HTML module
|
|
234
|
+
// is codegen'd, before the asset's own. Keyed by hex-encoded identifier.
|
|
235
235
|
const ASSET_URL_SENTINEL_REGEXP =
|
|
236
236
|
/__WEBPACK_HTML_ASSET_URL__([0-9a-f]+)__END__/g;
|
|
237
237
|
|
|
@@ -240,11 +240,9 @@ const ASSET_URL_SENTINEL_REGEXP =
|
|
|
240
240
|
/** @type {WeakSet<Compilation>} */
|
|
241
241
|
const integritySentinelCompilations = new WeakSet();
|
|
242
242
|
|
|
243
|
-
// Matches the whole ` integrity="<sentinel>"
|
|
244
|
-
//
|
|
245
|
-
//
|
|
246
|
-
// optional and back-referenced to keep the pair matched; the replacement always
|
|
247
|
-
// re-quotes, since an SRI list carries spaces and `=` padding.
|
|
243
|
+
// Matches the whole ` integrity="<sentinel>"`, so the attribute can be dropped
|
|
244
|
+
// when the per-asset `integrity` returns `false`. Minification runs first and
|
|
245
|
+
// may have unquoted it, hence the optional back-referenced quote.
|
|
248
246
|
const INTEGRITY_SENTINEL_REGEXP =
|
|
249
247
|
/ integrity=(["']?)__WEBPACK_HTML_INTEGRITY__([0-9a-f]+)__([a-z]+)__END__\1/g;
|
|
250
248
|
|
|
@@ -253,12 +251,15 @@ const INTEGRITY_SENTINEL_REGEXP =
|
|
|
253
251
|
const INTEGRITY_SENTINEL_STRIP_REGEXP =
|
|
254
252
|
/ integrity=(\\?["']|)__WEBPACK_HTML_INTEGRITY__[0-9a-f]+__[a-z]+__END__\1/g;
|
|
255
253
|
|
|
256
|
-
// The trailing `(?:__<hash>)?` is the inlined chunk's content hash, embedded
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
// resolver ignores it.
|
|
254
|
+
// The trailing `(?:__<hash>)?` is the inlined chunk's content hash, embedded so
|
|
255
|
+
// the host page's bytes and `[contenthash]` change with the inlined content.
|
|
256
|
+
// The resolver ignores it.
|
|
260
257
|
const INLINE_SENTINEL_REGEXP =
|
|
261
258
|
/__WEBPACK_HTML_INLINE__([0-9a-f]+)__([a-z]+)(?:__[0-9a-f]+)?__END__/g;
|
|
259
|
+
// The same, with the `;` a minifier ends the sentinel's statement with, which a
|
|
260
|
+
// chunk ending in its own `;` would double.
|
|
261
|
+
const INLINE_SENTINEL_STATEMENT_REGEXP =
|
|
262
|
+
/__WEBPACK_HTML_INLINE__([0-9a-f]+)__([a-z]+)(?:__[0-9a-f]+)?__END__(;?)/g;
|
|
262
263
|
|
|
263
264
|
/**
|
|
264
265
|
* Rewrite relative `url(...)` references in a CSS chunk so they still resolve
|
|
@@ -278,7 +279,7 @@ const rebaseCssUrls = (css, fromFile, toFile, outputPath) => {
|
|
|
278
279
|
const fromUndo = getUndoPath(fromFile, outputPath, false);
|
|
279
280
|
const toUndo = getUndoPath(toFile, outputPath, false);
|
|
280
281
|
if (fromUndo === toUndo) return css;
|
|
281
|
-
const { readToken,
|
|
282
|
+
const { readToken, TokenType } = getCssParser();
|
|
282
283
|
const token = {
|
|
283
284
|
type: 0,
|
|
284
285
|
start: 0,
|
|
@@ -293,7 +294,7 @@ const rebaseCssUrls = (css, fromFile, toFile, outputPath) => {
|
|
|
293
294
|
let out = "";
|
|
294
295
|
while (readToken(css, pos, token) !== undefined) {
|
|
295
296
|
pos = token.end;
|
|
296
|
-
if (token.type !==
|
|
297
|
+
if (token.type !== TokenType.Url) continue;
|
|
297
298
|
const url = css.slice(token.contentStart, token.contentEnd);
|
|
298
299
|
// Rebase only the undo-path-relative urls; a root-relative (`/`), fragment
|
|
299
300
|
// (`#`) or scheme (`data:`, …, a `:` before any `/`) url is absolute.
|
|
@@ -365,7 +366,7 @@ class HtmlGenerator extends Generator {
|
|
|
365
366
|
);
|
|
366
367
|
}
|
|
367
368
|
const filename = compilation.getPath(
|
|
368
|
-
/** @type {import("../TemplatedPathPlugin").TemplatePath} */
|
|
369
|
+
/** @type {import("../template/TemplatedPathPlugin").TemplatePath} */
|
|
369
370
|
(filenameTemplate),
|
|
370
371
|
{
|
|
371
372
|
chunk,
|
|
@@ -436,7 +437,7 @@ class HtmlGenerator extends Generator {
|
|
|
436
437
|
if (!content.includes("__WEBPACK_HTML_ASSET_URL__")) return content;
|
|
437
438
|
const byIdentifier = getModulesByIdentifier(compilation);
|
|
438
439
|
const codeGenerationResults =
|
|
439
|
-
/** @type {import("../CodeGenerationResults")} */
|
|
440
|
+
/** @type {import("../module/CodeGenerationResults")} */
|
|
440
441
|
(compilation.codeGenerationResults);
|
|
441
442
|
return content.replace(ASSET_URL_SENTINEL_REGEXP, (_, hex) => {
|
|
442
443
|
const id = Buffer.from(hex, "hex").toString("utf8");
|
|
@@ -449,12 +450,9 @@ class HtmlGenerator extends Generator {
|
|
|
449
450
|
const url =
|
|
450
451
|
/** @type {Record<string, string | undefined> | undefined} */
|
|
451
452
|
(data.get("url"));
|
|
452
|
-
// Prefer the `asset-url` channel
|
|
453
|
-
//
|
|
454
|
-
//
|
|
455
|
-
// `__webpack_require__.p + "…"`); for those we reconstruct the URL
|
|
456
|
-
// from the emitted `filename` + `PUBLIC_PATH_AUTO` so the same
|
|
457
|
-
// undo-path substitution runs at asset render.
|
|
453
|
+
// Prefer the `asset-url` channel, which is the real URL string. An asset
|
|
454
|
+
// reached only from JS has none — its URL is a JS expression — so rebuild
|
|
455
|
+
// one from `filename` and let the undo-path substitution run.
|
|
458
456
|
if (url && url["asset-url"]) return url["asset-url"];
|
|
459
457
|
const filename = /** @type {string | undefined} */ (data.get("filename"));
|
|
460
458
|
if (filename) return `${PUBLIC_PATH_AUTO}${filename}`;
|
|
@@ -584,6 +582,51 @@ class HtmlGenerator extends Generator {
|
|
|
584
582
|
);
|
|
585
583
|
}
|
|
586
584
|
|
|
585
|
+
/**
|
|
586
|
+
* Whether a chunk's content may be written into the page at all. An ES
|
|
587
|
+
* module chunk another group loads the runtime from must stay a file, or
|
|
588
|
+
* the page would run two copies of it.
|
|
589
|
+
* @param {Compilation} compilation the compilation
|
|
590
|
+
* @param {Chunk} chunk chunk to test
|
|
591
|
+
* @returns {boolean} false when the chunk has to stay a separate file
|
|
592
|
+
*/
|
|
593
|
+
static canInlineChunk(compilation, chunk) {
|
|
594
|
+
if (compilation.outputOptions.module !== true) return true;
|
|
595
|
+
for (const group of chunk.groupsIterable) {
|
|
596
|
+
if (group.getChildren().length > 0) return false;
|
|
597
|
+
}
|
|
598
|
+
return true;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Whether `output.html.inline` writes a chunk's content into the page rather
|
|
603
|
+
* than referencing it. The string forms select by asset type, since a
|
|
604
|
+
* chunk's JavaScript and CSS share one name.
|
|
605
|
+
* @param {HtmlOption} htmlOption the `output.html` option
|
|
606
|
+
* @param {Chunk} chunk chunk to test
|
|
607
|
+
* @param {"javascript" | "css"} contentType which asset of the chunk is emitted
|
|
608
|
+
* @returns {boolean} true when that content is written into the page
|
|
609
|
+
*/
|
|
610
|
+
static isChunkInlined(htmlOption, chunk, contentType) {
|
|
611
|
+
const inlineOption =
|
|
612
|
+
typeof htmlOption === "object" ? htmlOption.inline : undefined;
|
|
613
|
+
if (!inlineOption) return false;
|
|
614
|
+
if (inlineOption === true) return true;
|
|
615
|
+
if (inlineOption === "script") return contentType === "javascript";
|
|
616
|
+
if (inlineOption === "style") return contentType === "css";
|
|
617
|
+
// A tag's chunk is named after its page, so the template it emits under is
|
|
618
|
+
// matched too; a global pattern carries `lastIndex`, so it is reset.
|
|
619
|
+
const name = chunk.name || String(chunk.id);
|
|
620
|
+
const { filenameTemplate } = chunk;
|
|
621
|
+
return inlineOption.some((re) => {
|
|
622
|
+
re.lastIndex = 0;
|
|
623
|
+
if (re.test(name)) return true;
|
|
624
|
+
if (typeof filenameTemplate !== "string") return false;
|
|
625
|
+
re.lastIndex = 0;
|
|
626
|
+
return re.test(filenameTemplate);
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
|
|
587
630
|
/**
|
|
588
631
|
* @param {Chunk} chunk chunk
|
|
589
632
|
* @param {"javascript" | "css"} contentHashType which chunk asset to inline
|
|
@@ -614,11 +657,11 @@ class HtmlGenerator extends Generator {
|
|
|
614
657
|
const chunksById = getChunksById(compilation);
|
|
615
658
|
const outputPath = /** @type {string} */ (compilation.outputOptions.path);
|
|
616
659
|
return content.replace(
|
|
617
|
-
|
|
618
|
-
(_, hexId, contentHashType) => {
|
|
660
|
+
INLINE_SENTINEL_STATEMENT_REGEXP,
|
|
661
|
+
(_, hexId, contentHashType, terminator) => {
|
|
619
662
|
const chunkId = Buffer.from(hexId, "hex").toString("utf8");
|
|
620
663
|
const chunk = chunksById.get(chunkId);
|
|
621
|
-
if (!chunk) return
|
|
664
|
+
if (!chunk) return terminator;
|
|
622
665
|
const isCss = contentHashType === "css";
|
|
623
666
|
let out = "";
|
|
624
667
|
for (const file of chunk.files) {
|
|
@@ -644,7 +687,7 @@ class HtmlGenerator extends Generator {
|
|
|
644
687
|
out += raw;
|
|
645
688
|
if (inlinedFiles) inlinedFiles.add(file);
|
|
646
689
|
}
|
|
647
|
-
return out;
|
|
690
|
+
return out.endsWith(";") ? out : out + terminator;
|
|
648
691
|
}
|
|
649
692
|
);
|
|
650
693
|
}
|
|
@@ -679,26 +722,36 @@ class HtmlGenerator extends Generator {
|
|
|
679
722
|
// `skip.text` populates `contentEnd` (raw-text body end) without
|
|
680
723
|
// materializing text nodes; `</script` stays escaped, so CSP hashes match
|
|
681
724
|
// the exact bytes the browser sees.
|
|
682
|
-
const { NodeType,
|
|
725
|
+
const { Field, Flag, NodeType, Part } = getHtmlParser();
|
|
726
|
+
const { SourceProcessor } = getHtmlSyntax();
|
|
727
|
+
/**
|
|
728
|
+
* Where an element's content starts; a parser-inserted one has no tag, so
|
|
729
|
+
* its content starts where it does.
|
|
730
|
+
* @param {import("./syntax-parser").HtmlPath} path the element's path
|
|
731
|
+
* @returns {number} the offset
|
|
732
|
+
*/
|
|
733
|
+
const contentStart = (path) => {
|
|
734
|
+
const start = path.startOf(Part.content);
|
|
735
|
+
return start === -1 ? path.start() : start;
|
|
736
|
+
};
|
|
683
737
|
new SourceProcessor()
|
|
684
738
|
.use({
|
|
685
739
|
[NodeType.Element]: {
|
|
686
740
|
enter: (path) => {
|
|
687
|
-
const name = path.
|
|
741
|
+
const name = path.name();
|
|
688
742
|
if (name === "head") {
|
|
689
|
-
if (headOpen < 0) headOpen = headEnd = path
|
|
743
|
+
if (headOpen < 0) headOpen = headEnd = contentStart(path);
|
|
690
744
|
headDepth++;
|
|
691
745
|
} else if (name === "body") {
|
|
692
|
-
if (bodyOpen < 0) bodyOpen = bodyEnd = path
|
|
746
|
+
if (bodyOpen < 0) bodyOpen = bodyEnd = contentStart(path);
|
|
693
747
|
bodyDepth++;
|
|
694
748
|
}
|
|
695
749
|
},
|
|
696
|
-
// Collected on exit
|
|
697
|
-
// closes
|
|
698
|
-
//
|
|
699
|
-
// exiting keeps them in source order.
|
|
750
|
+
// Collected on exit, since an element's `end` is final only once it
|
|
751
|
+
// closes. `script`, `style`, `link` and `meta` never nest in each
|
|
752
|
+
// other, so exiting keeps them in source order.
|
|
700
753
|
exit: (path) => {
|
|
701
|
-
const name = path.
|
|
754
|
+
const name = path.name();
|
|
702
755
|
if (name === "head") {
|
|
703
756
|
if (headDepth > 0) headDepth--;
|
|
704
757
|
return;
|
|
@@ -720,13 +773,14 @@ class HtmlGenerator extends Generator {
|
|
|
720
773
|
}
|
|
721
774
|
/** @type {Record<string, string | boolean | undefined>} */
|
|
722
775
|
const attrs = {};
|
|
723
|
-
const count = path.
|
|
776
|
+
const count = path.fieldCount(Field.attributes);
|
|
724
777
|
for (let i = 0; i < count; i++) {
|
|
725
|
-
const attr = path.
|
|
726
|
-
|
|
727
|
-
|
|
778
|
+
const attr = path.field(i, Field.attributes);
|
|
779
|
+
const valueStart = path.startOf(Part.value, attr);
|
|
780
|
+
attrs[path.name(attr)] =
|
|
781
|
+
valueStart === -1
|
|
728
782
|
? true
|
|
729
|
-
: path.
|
|
783
|
+
: path.source(valueStart, path.endOf(Part.value, attr));
|
|
730
784
|
}
|
|
731
785
|
const isRawText = name === "script" || name === "style";
|
|
732
786
|
tags.push({
|
|
@@ -736,12 +790,12 @@ class HtmlGenerator extends Generator {
|
|
|
736
790
|
});
|
|
737
791
|
spans.push({
|
|
738
792
|
start: path.start(),
|
|
739
|
-
openEnd: path.
|
|
793
|
+
openEnd: path.startOf(Part.content),
|
|
740
794
|
end,
|
|
741
795
|
location: bodyDepth > 0 ? "body" : "head",
|
|
742
|
-
nameEnd: isRawText ? path.
|
|
743
|
-
contentEnd: isRawText ? path.
|
|
744
|
-
selfClosing: path.selfClosing
|
|
796
|
+
nameEnd: isRawText ? path.endOf(Part.name) : -1,
|
|
797
|
+
contentEnd: isRawText ? path.endOf(Part.content) : -1,
|
|
798
|
+
selfClosing: path.flag(Flag.selfClosing)
|
|
745
799
|
});
|
|
746
800
|
originals.push(snapshotAttrs(attrs));
|
|
747
801
|
descriptors.push(null);
|
|
@@ -796,7 +850,7 @@ class HtmlGenerator extends Generator {
|
|
|
796
850
|
* @returns {string} the rendered HTML
|
|
797
851
|
*/
|
|
798
852
|
static renderHtml(content, model, csp) {
|
|
799
|
-
const { escapeAttribute } =
|
|
853
|
+
const { escapeAttribute } = getHtmlParser();
|
|
800
854
|
const { tags, spans, originals, descriptors, anchors } = model;
|
|
801
855
|
// CSP setup: an author-declared policy (page's own or injected) wins.
|
|
802
856
|
const options = csp ? (csp === true ? {} : csp) : undefined;
|
|
@@ -1058,12 +1112,9 @@ class HtmlGenerator extends Generator {
|
|
|
1058
1112
|
this._moduleGraph = moduleGraph;
|
|
1059
1113
|
/** @type {((module: NormalModule) => boolean) | undefined} */
|
|
1060
1114
|
this._isPageOnly = isPageOnly;
|
|
1061
|
-
// Raw
|
|
1062
|
-
//
|
|
1063
|
-
// `
|
|
1064
|
-
// Set — created once per call and passed to every type's `generate()`,
|
|
1065
|
-
// so it uniquely scopes the cache to one module's one code generation
|
|
1066
|
-
// and releases with it. The two passes differ only in `undoPath`.
|
|
1115
|
+
// Raw render shared between the JS and HTML passes of one `codeGeneration()`
|
|
1116
|
+
// call, which differ only in `undoPath`. Keyed by that call's
|
|
1117
|
+
// `runtimeRequirements` Set, so the entry is scoped to it and releases with it.
|
|
1067
1118
|
/** @type {WeakMap<RuntimeRequirements, string>} */
|
|
1068
1119
|
this._rawRenderCache = new WeakMap();
|
|
1069
1120
|
}
|
|
@@ -1075,11 +1126,9 @@ class HtmlGenerator extends Generator {
|
|
|
1075
1126
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
1076
1127
|
*/
|
|
1077
1128
|
getConcatenationBailoutReason(module, context) {
|
|
1078
|
-
// The HMR shim references the per-module `module.hot
|
|
1079
|
-
//
|
|
1080
|
-
//
|
|
1081
|
-
// would target the wrong module id. Bail out of concatenation so the
|
|
1082
|
-
// HMR-aware HTML module keeps its own module scope.
|
|
1129
|
+
// The HMR shim references the per-module `module.hot`, and a concatenated
|
|
1130
|
+
// file shares one `module`, so the self-accept wiring would target the wrong
|
|
1131
|
+
// id. Bail out, keeping the module's own scope.
|
|
1083
1132
|
if (module.hot) {
|
|
1084
1133
|
return "HTML module needs its own module scope for HMR";
|
|
1085
1134
|
}
|
|
@@ -1191,7 +1240,7 @@ class HtmlGenerator extends Generator {
|
|
|
1191
1240
|
|
|
1192
1241
|
/**
|
|
1193
1242
|
* Processes the provided dependencies block.
|
|
1194
|
-
* @param {import("../DependenciesBlock")} block the dependencies block which will be processed
|
|
1243
|
+
* @param {import("../graph/DependenciesBlock")} block the dependencies block which will be processed
|
|
1195
1244
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
1196
1245
|
* @param {DependencyTemplateContext} templateContext the template context
|
|
1197
1246
|
* @returns {void}
|
|
@@ -1278,10 +1327,9 @@ class HtmlGenerator extends Generator {
|
|
|
1278
1327
|
* @returns {string} the rewritten HTML
|
|
1279
1328
|
*/
|
|
1280
1329
|
_renderHtml(module, generateContext, undoPath) {
|
|
1281
|
-
//
|
|
1282
|
-
//
|
|
1283
|
-
//
|
|
1284
|
-
// passes diverge only in the `[webpack/auto]` substitution below.
|
|
1330
|
+
// No dependency template branches on `type` or writes
|
|
1331
|
+
// `runtimeRequirements`, so the raw render is computed once per
|
|
1332
|
+
// `codeGeneration()`; the passes diverge only in the substitution below.
|
|
1285
1333
|
const cacheKey = generateContext.runtimeRequirements;
|
|
1286
1334
|
let rawContent = this._rawRenderCache.get(cacheKey);
|
|
1287
1335
|
if (rawContent === undefined) {
|
|
@@ -1345,11 +1393,9 @@ class HtmlGenerator extends Generator {
|
|
|
1345
1393
|
|
|
1346
1394
|
/** @type {string} */
|
|
1347
1395
|
let sourceContent;
|
|
1348
|
-
// `module.hot`
|
|
1349
|
-
//
|
|
1350
|
-
//
|
|
1351
|
-
// would target the wrong id) — `getConcatenationBailoutReason` keeps
|
|
1352
|
-
// us out of concatenation in that case.
|
|
1396
|
+
// `module.hot` marks HMR being enabled, and concatenation merges into a
|
|
1397
|
+
// parent's scope where `module.hot.accept` would target the wrong id.
|
|
1398
|
+
// `getConcatenationBailoutReason` keeps such a module out of it.
|
|
1353
1399
|
if (generateContext.concatenationScope && !module.hot) {
|
|
1354
1400
|
generateContext.concatenationScope.registerNamespaceExport(
|
|
1355
1401
|
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
|
@@ -1423,15 +1469,11 @@ class HtmlGenerator extends Generator {
|
|
|
1423
1469
|
const acceptBlock = extracting
|
|
1424
1470
|
? [
|
|
1425
1471
|
"module.hot.accept();",
|
|
1426
|
-
//
|
|
1427
|
-
//
|
|
1428
|
-
//
|
|
1429
|
-
//
|
|
1430
|
-
//
|
|
1431
|
-
// `<body>`/`</body>`/`<title>` inside a comment can no
|
|
1432
|
-
// longer fool the tag regexes (the non-greedy `*?` would
|
|
1433
|
-
// otherwise stop at the FIRST `</body>` it sees, even one
|
|
1434
|
-
// inside a comment).
|
|
1472
|
+
// WHY: a `</body>` inside a comment stops the non-greedy `*?` at the
|
|
1473
|
+
// wrong place, so comments are masked before any tag regex runs.
|
|
1474
|
+
// Masking rather than deleting keeps offsets stable, so the body and
|
|
1475
|
+
// title can still be sliced out of the original HTML with their
|
|
1476
|
+
// comments intact.
|
|
1435
1477
|
`${declare} __webpack_mask_comments__ = ${runtimeTemplate.returningFunction(
|
|
1436
1478
|
`h.replace(/<!--[\\s\\S]*?-->/g, ${runtimeTemplate.returningFunction(
|
|
1437
1479
|
'c.replace(/[^\\n]/g, " ")',
|
|
@@ -1475,9 +1517,8 @@ class HtmlGenerator extends Generator {
|
|
|
1475
1517
|
]
|
|
1476
1518
|
)};`,
|
|
1477
1519
|
// A `<script>` parsed out of a string carries the already-started flag,
|
|
1478
|
-
// so appending
|
|
1479
|
-
//
|
|
1480
|
-
// replaces would have done.
|
|
1520
|
+
// so appending it would never run. A fresh one with the same attributes
|
|
1521
|
+
// and body does, as the reload this replaces would have.
|
|
1481
1522
|
`${declare} __webpack_revive_script__ = ${runtimeTemplate.basicFunction(
|
|
1482
1523
|
"node",
|
|
1483
1524
|
[
|
|
@@ -1493,11 +1534,9 @@ class HtmlGenerator extends Generator {
|
|
|
1493
1534
|
"return script;"
|
|
1494
1535
|
]
|
|
1495
1536
|
)};`,
|
|
1496
|
-
// Apply only the difference between the two authored heads
|
|
1497
|
-
//
|
|
1498
|
-
//
|
|
1499
|
-
// tear them down while a delta never touches them. Reports whether it
|
|
1500
|
-
// could — the caller reloads when it could not.
|
|
1537
|
+
// Apply only the difference between the two authored heads: the
|
|
1538
|
+
// runtime's own injected tags are in neither string, so replacing
|
|
1539
|
+
// `document.head` wholesale would tear them down where a delta cannot.
|
|
1501
1540
|
`${declare} __webpack_patch_head__ = ${runtimeTemplate.basicFunction(
|
|
1502
1541
|
"oldHtml, newHtml",
|
|
1503
1542
|
[
|
|
@@ -1533,14 +1572,12 @@ class HtmlGenerator extends Generator {
|
|
|
1533
1572
|
`${declare} removed = surplus(oldChildren, newChildren);`,
|
|
1534
1573
|
`${declare} added = surplus(newChildren, oldChildren);`,
|
|
1535
1574
|
"if (removed.length === 0 && added.length === 0) return true;",
|
|
1536
|
-
//
|
|
1537
|
-
//
|
|
1538
|
-
// `type` that is neither a JavaScript MIME
|
|
1539
|
-
// `importmap`
|
|
1540
|
-
//
|
|
1541
|
-
//
|
|
1542
|
-
// Every JavaScript MIME essence ends in `script`, and a type
|
|
1543
|
-
// nothing here recognizes falls back to the reload.
|
|
1575
|
+
// WHY: a script that has run cannot be un-run, so dropping one is the
|
|
1576
|
+
// single edit still worth a reload — but only a script that ran. A
|
|
1577
|
+
// `type` that is neither a JavaScript MIME essence, all of which end
|
|
1578
|
+
// in `script`, nor `module`, `importmap` or `speculationrules` is a
|
|
1579
|
+
// data block the browser never executed, as safe to remove as a
|
|
1580
|
+
// `<meta>`. An unrecognized type falls back to the reload.
|
|
1544
1581
|
`if (removed.some(${runtimeTemplate.basicFunction("node", [
|
|
1545
1582
|
'if (node.nodeName !== "SCRIPT") return false;',
|
|
1546
1583
|
`${declare} type = (node.getAttribute("type") || "").trim().toLowerCase();`,
|
|
@@ -1564,11 +1601,9 @@ class HtmlGenerator extends Generator {
|
|
|
1564
1601
|
]),
|
|
1565
1602
|
"}",
|
|
1566
1603
|
`for (${mutable} i = 0; i < live.length; i++) document.head.removeChild(live[i]);`,
|
|
1567
|
-
// Pair each retained element with its live node, scanning
|
|
1568
|
-
//
|
|
1569
|
-
//
|
|
1570
|
-
// cannot express falls back to the reload. Injected nodes simply
|
|
1571
|
-
// never match, so they neither anchor nor block anything.
|
|
1604
|
+
// Pair each retained element with its live node, scanning forward
|
|
1605
|
+
// only: a moved element then finds no match and falls back to the
|
|
1606
|
+
// reload, while an injected node never matches either way.
|
|
1572
1607
|
`${declare} liveByNew = [];`,
|
|
1573
1608
|
`${mutable} searchFrom = 0;`,
|
|
1574
1609
|
`for (${mutable} i = 0; i < newChildren.length; i++) {`,
|
|
@@ -1648,13 +1683,22 @@ class HtmlGenerator extends Generator {
|
|
|
1648
1683
|
*/
|
|
1649
1684
|
generateError(error, module, generateContext) {
|
|
1650
1685
|
if (generateContext.type === HTML_TYPE) {
|
|
1651
|
-
// Strip `<`, `>`, `--` runs from
|
|
1652
|
-
const safe =
|
|
1686
|
+
// Strip `<`, `>`, `--` runs from the message so it can't escape the comment.
|
|
1687
|
+
const safe = Generator.buildErrorMessage(
|
|
1688
|
+
error,
|
|
1689
|
+
generateContext.runtimeTemplate.requestShortener
|
|
1690
|
+
)
|
|
1653
1691
|
.replace(/[<>]/g, "")
|
|
1654
1692
|
.replace(/-{2,}/g, (m) => `${"-".repeat(m.length - 1)} `);
|
|
1655
1693
|
return new RawSource(`<!-- webpack error: ${safe} -->`);
|
|
1656
1694
|
}
|
|
1657
|
-
return new RawSource(
|
|
1695
|
+
return new RawSource(
|
|
1696
|
+
Generator.throwBuildErrorCode(
|
|
1697
|
+
error,
|
|
1698
|
+
undefined,
|
|
1699
|
+
generateContext.runtimeTemplate.requestShortener
|
|
1700
|
+
)
|
|
1701
|
+
);
|
|
1658
1702
|
}
|
|
1659
1703
|
|
|
1660
1704
|
/**
|
|
@@ -1664,10 +1708,9 @@ class HtmlGenerator extends Generator {
|
|
|
1664
1708
|
*/
|
|
1665
1709
|
updateHash(hash, updateHashContext) {
|
|
1666
1710
|
hash.update("html");
|
|
1667
|
-
//
|
|
1668
|
-
// `extracting` branch
|
|
1669
|
-
//
|
|
1670
|
-
// One `_shouldExtract` walk covers both checks (expose = extract ∪ inline).
|
|
1711
|
+
// The source-type set turns on html-type exposure and the HMR shim's
|
|
1712
|
+
// `extracting` branch on the emit decision. They differ only for
|
|
1713
|
+
// `"inline"`, which exposes html without emitting, so hash both.
|
|
1671
1714
|
const extract = this._shouldExtract(updateHashContext.module);
|
|
1672
1715
|
if (extract || this.options.extract === "inline") {
|
|
1673
1716
|
hash.update("html-type");
|
package/lib/html/HtmlModule.js
CHANGED
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const NormalModule = require("../NormalModule");
|
|
7
|
+
const NormalModule = require("../module/NormalModule");
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @import {
|
|
12
12
|
* NormalModuleBuildInfo,
|
|
13
13
|
* NormalModuleCreateData
|
|
14
|
-
* } from "../NormalModule"
|
|
14
|
+
* } from "../module/NormalModule"
|
|
15
15
|
*/
|
|
16
16
|
/** @import { HtmlEntryInfo } from "./HtmlModulesPlugin" */
|
|
17
|
+
/** @import { ModuleKinds } from "../module/Module" */
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Defines the build info properties specific to html modules.
|
|
@@ -42,4 +43,7 @@ class HtmlModule extends NormalModule {
|
|
|
42
43
|
|
|
43
44
|
makeSerializable(HtmlModule, "webpack/lib/html/HtmlModule");
|
|
44
45
|
|
|
46
|
+
/** @type {Set<keyof ModuleKinds>} */
|
|
47
|
+
HtmlModule.KINDS = new Set([...NormalModule.KINDS, "html"]);
|
|
48
|
+
|
|
45
49
|
module.exports = HtmlModule;
|