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/css/CssGenerator.js
CHANGED
|
@@ -12,10 +12,10 @@ const {
|
|
|
12
12
|
ReplaceSource,
|
|
13
13
|
SourceMapSource
|
|
14
14
|
} = require("webpack-sources");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
15
|
+
const ModuleFilenameHelpers = require("../devtool/ModuleFilenameHelpers");
|
|
16
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
17
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
18
|
+
const Generator = require("../module/Generator");
|
|
19
19
|
const {
|
|
20
20
|
CSS_TEXT_TYPE,
|
|
21
21
|
CSS_TEXT_TYPES,
|
|
@@ -26,13 +26,11 @@ const {
|
|
|
26
26
|
JAVASCRIPT_TYPE,
|
|
27
27
|
JAVASCRIPT_TYPES,
|
|
28
28
|
NO_TYPES
|
|
29
|
-
} = require("../ModuleSourceTypeConstants");
|
|
30
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
|
|
35
|
-
const LoaderImportDependency = require("../dependencies/LoaderImportDependency");
|
|
29
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
30
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
31
|
+
const InitFragment = require("../template/InitFragment");
|
|
32
|
+
const Template = require("../template/Template");
|
|
33
|
+
const { getPresentKinds } = require("../template/TemplatedPathPlugin");
|
|
36
34
|
|
|
37
35
|
const { encodeMappings } = require("../util/createMappings");
|
|
38
36
|
const {
|
|
@@ -51,6 +49,7 @@ const CSS_TYPE_PREFIX = `${CSS_TYPE}/`;
|
|
|
51
49
|
|
|
52
50
|
const URL_SCHEME_REGEXP = /^(?:data|https?):/;
|
|
53
51
|
|
|
52
|
+
/** @import CssModule, { BuiltCssModule, CssNormalModule } from "./CssModule" */
|
|
54
53
|
/** @import { Source, RawSourceMap } from "webpack-sources" */
|
|
55
54
|
/**
|
|
56
55
|
* @import {
|
|
@@ -58,33 +57,27 @@ const URL_SCHEME_REGEXP = /^(?:data|https?):/;
|
|
|
58
57
|
* } from "../../declarations/WebpackOptions"
|
|
59
58
|
*/
|
|
60
59
|
/** @import { DependencyConstructor } from "../Compilation" */
|
|
61
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
62
|
-
/** @import Dependency from "../Dependency" */
|
|
60
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
61
|
+
/** @import Dependency from "../graph/Dependency" */
|
|
63
62
|
/**
|
|
64
63
|
* @import {
|
|
65
64
|
* CssData,
|
|
66
65
|
* DependencyTemplateContext,
|
|
67
66
|
* CssDependencyTemplateContext
|
|
68
|
-
* } from "../DependencyTemplate"
|
|
67
|
+
* } from "../template/DependencyTemplate"
|
|
69
68
|
*/
|
|
70
|
-
/** @import { GenerateContext, UpdateHashContext } from "../Generator" */
|
|
69
|
+
/** @import { GenerateContext, UpdateHashContext } from "../module/Generator" */
|
|
71
70
|
/**
|
|
72
71
|
* @import {
|
|
73
72
|
* ConcatenationBailoutReasonContext,
|
|
74
73
|
* SourceType,
|
|
75
74
|
* SourceTypes
|
|
76
|
-
* } from "../Module"
|
|
75
|
+
* } from "../module/Module"
|
|
77
76
|
*/
|
|
78
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
79
|
-
/** @import NormalModule from "../NormalModule" */
|
|
77
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
78
|
+
/** @import NormalModule from "../module/NormalModule" */
|
|
80
79
|
/** @import Hash from "../util/Hash" */
|
|
81
80
|
/** @import { ModuleFactoryCacheEntry } from "./CssModulesPlugin" */
|
|
82
|
-
/**
|
|
83
|
-
* @import CssModule, {
|
|
84
|
-
* CssModuleBuildInfo,
|
|
85
|
-
* CssModuleBuildMeta
|
|
86
|
-
* } from "./CssModule"
|
|
87
|
-
*/
|
|
88
81
|
|
|
89
82
|
/** @typedef {{ line: number, column: number }} SourcePosition */
|
|
90
83
|
/** @typedef {Map<string, SourcePosition>} ExportLocsMap */
|
|
@@ -154,6 +147,14 @@ const buildExportsSourceMap = (
|
|
|
154
147
|
};
|
|
155
148
|
};
|
|
156
149
|
|
|
150
|
+
/**
|
|
151
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
152
|
+
* @typedef {CssNormalModule} TModule
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @extends {Generator<TModule>}
|
|
157
|
+
*/
|
|
157
158
|
class CssGenerator extends Generator {
|
|
158
159
|
/**
|
|
159
160
|
* Creates an instance of CssGenerator.
|
|
@@ -191,7 +192,7 @@ class CssGenerator extends Generator {
|
|
|
191
192
|
|
|
192
193
|
/**
|
|
193
194
|
* Returns the reason this module cannot be concatenated, when one exists.
|
|
194
|
-
* @param {
|
|
195
|
+
* @param {TModule} module module for which the bailout reason should be determined
|
|
195
196
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
196
197
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
197
198
|
*/
|
|
@@ -226,7 +227,7 @@ class CssGenerator extends Generator {
|
|
|
226
227
|
|
|
227
228
|
/**
|
|
228
229
|
* Processes the provided module.
|
|
229
|
-
* @param {
|
|
230
|
+
* @param {TModule} module the module to generate
|
|
230
231
|
* @param {InitFragment<GenerateContext>[]} initFragments mutable list of init fragments
|
|
231
232
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
232
233
|
* @param {GenerateContext & { cssData: CssData }} generateContext the generateContext
|
|
@@ -235,7 +236,7 @@ class CssGenerator extends Generator {
|
|
|
235
236
|
sourceModule(module, initFragments, source, generateContext) {
|
|
236
237
|
// Only `dependency` varies across `template.apply` calls, so one context
|
|
237
238
|
// (and one lazy `chunkInitFragments` getter) serves the whole module.
|
|
238
|
-
/** @type {InitFragment<
|
|
239
|
+
/** @type {InitFragment<import("../javascript/JavascriptModulesPlugin").ChunkRenderContext>[] | undefined} */
|
|
239
240
|
let chunkInitFragments;
|
|
240
241
|
/** @type {CssDependencyTemplateContext} */
|
|
241
242
|
const templateContext = {
|
|
@@ -282,12 +283,13 @@ class CssGenerator extends Generator {
|
|
|
282
283
|
|
|
283
284
|
/**
|
|
284
285
|
* Generates generated code for this runtime module.
|
|
285
|
-
* @param {
|
|
286
|
+
* @param {TModule} module module for which the code should be generated
|
|
286
287
|
* @param {GenerateContext} generateContext context for generate
|
|
287
288
|
* @returns {Source | null} generated code
|
|
288
289
|
*/
|
|
289
290
|
generate(module, generateContext) {
|
|
290
291
|
const exportType = /** @type {CssModule} */ (module).exportType || "link";
|
|
292
|
+
const { buildInfo, buildMeta } = /** @type {BuiltCssModule} */ (module);
|
|
291
293
|
const source =
|
|
292
294
|
generateContext.type === JAVASCRIPT_TYPE && exportType === "link"
|
|
293
295
|
? new ReplaceSource(new RawSource(""))
|
|
@@ -298,7 +300,13 @@ class CssGenerator extends Generator {
|
|
|
298
300
|
const cssData = {
|
|
299
301
|
esModule: /** @type {boolean} */ (this._esModule),
|
|
300
302
|
exports: new Map(),
|
|
301
|
-
|
|
303
|
+
// Read only to map the exports code back to the CSS, so a build that
|
|
304
|
+
// asks for no source map neither fills nor keeps it.
|
|
305
|
+
exportLocs:
|
|
306
|
+
generateContext.type === JAVASCRIPT_TYPE &&
|
|
307
|
+
(module.useSourceMap || module.useSimpleSourceMap)
|
|
308
|
+
? new Map()
|
|
309
|
+
: undefined
|
|
302
310
|
};
|
|
303
311
|
|
|
304
312
|
this.sourceModule(module, initFragments, source, {
|
|
@@ -310,8 +318,7 @@ class CssGenerator extends Generator {
|
|
|
310
318
|
case JAVASCRIPT_TYPE: {
|
|
311
319
|
const compilation = generateContext.runtimeTemplate.compilation;
|
|
312
320
|
const devtool = compilation.options.devtool;
|
|
313
|
-
const isCssModule =
|
|
314
|
-
.isCssModule;
|
|
321
|
+
const isCssModule = buildMeta.isCssModule;
|
|
315
322
|
|
|
316
323
|
const generateContentCode = () => {
|
|
317
324
|
switch (exportType) {
|
|
@@ -408,8 +415,7 @@ class CssGenerator extends Generator {
|
|
|
408
415
|
/** @type {Source | null} */
|
|
409
416
|
const defaultExport = generateJSDefaultExport();
|
|
410
417
|
|
|
411
|
-
|
|
412
|
-
(module.buildInfo).cssData = cssData;
|
|
418
|
+
buildInfo.cssData = cssData;
|
|
413
419
|
|
|
414
420
|
// Required for HMR
|
|
415
421
|
if (module.hot) {
|
|
@@ -571,21 +577,17 @@ class CssGenerator extends Generator {
|
|
|
571
577
|
// `SourceMapDevToolPlugin` can match the module and apply the
|
|
572
578
|
// devtool filename template instead of leaking this raw name
|
|
573
579
|
const sourceName = contextifySourceUrl(
|
|
574
|
-
|
|
580
|
+
compilation.options.context,
|
|
575
581
|
module.identifier(),
|
|
576
582
|
compilation.compiler.root
|
|
577
583
|
);
|
|
578
584
|
|
|
579
|
-
if (
|
|
580
|
-
/** @type {ExportLocsMap} */
|
|
581
|
-
(cssData.exportLocs).size > 0
|
|
582
|
-
) {
|
|
585
|
+
if (cssData.exportLocs !== undefined && cssData.exportLocs.size > 0) {
|
|
583
586
|
const cssOriginal = module.originalSource();
|
|
584
587
|
if (cssOriginal) {
|
|
585
588
|
const sourceMap = buildExportsSourceMap(
|
|
586
589
|
generatedJs,
|
|
587
|
-
|
|
588
|
-
(cssData.exportLocs),
|
|
590
|
+
cssData.exportLocs,
|
|
589
591
|
/** @type {string} */ (cssOriginal.source()),
|
|
590
592
|
sourceName
|
|
591
593
|
);
|
|
@@ -611,7 +613,7 @@ class CssGenerator extends Generator {
|
|
|
611
613
|
/**
|
|
612
614
|
* Generates fallback output for the provided error condition.
|
|
613
615
|
* @param {Error} error the error
|
|
614
|
-
* @param {
|
|
616
|
+
* @param {TModule} module module for which the code should be generated
|
|
615
617
|
* @param {GenerateContext} generateContext context for generate
|
|
616
618
|
* @returns {Source | null} generated code
|
|
617
619
|
*/
|
|
@@ -641,7 +643,7 @@ class CssGenerator extends Generator {
|
|
|
641
643
|
|
|
642
644
|
/**
|
|
643
645
|
* Returns the source types available for this module.
|
|
644
|
-
* @param {
|
|
646
|
+
* @param {TModule} module fresh module
|
|
645
647
|
* @returns {SourceTypes} available types (do not mutate)
|
|
646
648
|
*/
|
|
647
649
|
getTypes(module) {
|
|
@@ -661,12 +663,16 @@ class CssGenerator extends Generator {
|
|
|
661
663
|
if (hasJs && (hasCssText || !needsCssText)) break;
|
|
662
664
|
if (
|
|
663
665
|
exportType === "link" &&
|
|
664
|
-
connection.dependency
|
|
666
|
+
connection.dependency !== null &&
|
|
667
|
+
isDependencyKind(connection.dependency, "css-import")
|
|
665
668
|
) {
|
|
666
669
|
continue;
|
|
667
670
|
}
|
|
668
671
|
|
|
669
|
-
if (
|
|
672
|
+
if (
|
|
673
|
+
connection.dependency !== null &&
|
|
674
|
+
isDependencyKind(connection.dependency, "esm-side-effect-import")
|
|
675
|
+
) {
|
|
670
676
|
continue;
|
|
671
677
|
}
|
|
672
678
|
|
|
@@ -682,7 +688,10 @@ class CssGenerator extends Generator {
|
|
|
682
688
|
|
|
683
689
|
// `importModule()` executes the module as JavaScript, and its dependency
|
|
684
690
|
// carries no origin module (`connectOrigin: false` in `LoaderPlugin`).
|
|
685
|
-
if (
|
|
691
|
+
if (
|
|
692
|
+
connection.dependency !== null &&
|
|
693
|
+
isDependencyKind(connection.dependency, "loader-import")
|
|
694
|
+
) {
|
|
686
695
|
hasJs = true;
|
|
687
696
|
continue;
|
|
688
697
|
}
|
|
@@ -723,22 +732,20 @@ class CssGenerator extends Generator {
|
|
|
723
732
|
|
|
724
733
|
/**
|
|
725
734
|
* Returns the estimated size for the requested source type.
|
|
726
|
-
* @param {
|
|
735
|
+
* @param {TModule} module the module
|
|
727
736
|
* @param {SourceType=} type source type
|
|
728
737
|
* @returns {number} estimate size of the module
|
|
729
738
|
*/
|
|
730
739
|
getSize(module, type) {
|
|
731
740
|
switch (type) {
|
|
732
741
|
case JAVASCRIPT_TYPE: {
|
|
733
|
-
const
|
|
734
|
-
|
|
742
|
+
const { buildInfo, buildMeta } = /** @type {BuiltCssModule} */ (module);
|
|
743
|
+
const cssData = buildInfo.cssData;
|
|
735
744
|
if (!cssData) {
|
|
736
745
|
return 42;
|
|
737
746
|
}
|
|
738
747
|
if (cssData.exports.size === 0) {
|
|
739
|
-
if (
|
|
740
|
-
/** @type {CssModuleBuildMeta} */ (module.buildMeta).isCssModule
|
|
741
|
-
) {
|
|
748
|
+
if (buildMeta.isCssModule) {
|
|
742
749
|
return 42;
|
|
743
750
|
}
|
|
744
751
|
return 0;
|
|
@@ -771,7 +778,7 @@ class CssGenerator extends Generator {
|
|
|
771
778
|
/**
|
|
772
779
|
* Updates the hash with the data contributed by this instance.
|
|
773
780
|
* @param {Hash} hash hash that will be modified
|
|
774
|
-
* @param {UpdateHashContext} updateHashContext context for updating hash
|
|
781
|
+
* @param {UpdateHashContext<TModule>} updateHashContext context for updating hash
|
|
775
782
|
*/
|
|
776
783
|
updateHash(hash, { module, runtimeTemplate }) {
|
|
777
784
|
hash.update(/** @type {boolean} */ (this._esModule).toString());
|
|
@@ -798,7 +805,7 @@ class CssGenerator extends Generator {
|
|
|
798
805
|
|
|
799
806
|
/**
|
|
800
807
|
* Resolve the effective `@charset` by walking text imports.
|
|
801
|
-
* @param {
|
|
808
|
+
* @param {TModule} module the module
|
|
802
809
|
* @param {ModuleGraph} moduleGraph module graph
|
|
803
810
|
* @param {WeakSet<NormalModule>=} visited cycle guard
|
|
804
811
|
* @returns {string | undefined} the effective charset
|
|
@@ -810,14 +817,12 @@ class CssGenerator extends Generator {
|
|
|
810
817
|
return undefined;
|
|
811
818
|
}
|
|
812
819
|
visited.add(module);
|
|
813
|
-
const own =
|
|
814
|
-
module.buildInfo &&
|
|
815
|
-
/** @type {CssModuleBuildInfo} */ (module.buildInfo).charset;
|
|
820
|
+
const own = module.buildInfo && module.buildInfo.charset;
|
|
816
821
|
if (own !== undefined) return own;
|
|
817
822
|
if (exportType !== "text") return undefined;
|
|
818
823
|
for (const dep of module.dependencies) {
|
|
819
|
-
if (dep
|
|
820
|
-
const depModule = /** @type {
|
|
824
|
+
if (isDependencyKind(dep, "css-import")) {
|
|
825
|
+
const depModule = /** @type {BuiltCssModule} */ (
|
|
821
826
|
moduleGraph.getModule(dep)
|
|
822
827
|
);
|
|
823
828
|
const inherited = this._getEffectiveCharset(
|
|
@@ -833,7 +838,7 @@ class CssGenerator extends Generator {
|
|
|
833
838
|
|
|
834
839
|
/**
|
|
835
840
|
* Generate JS expressions for `@import` side effects (`style` exportType only).
|
|
836
|
-
* @param {
|
|
841
|
+
* @param {TModule} module the module to generate CSS text for
|
|
837
842
|
* @param {GenerateContext} generateContext the generate context
|
|
838
843
|
* @returns {string[]} JS expressions, one per `@import` dependency
|
|
839
844
|
*/
|
|
@@ -842,8 +847,11 @@ class CssGenerator extends Generator {
|
|
|
842
847
|
const parts = [];
|
|
843
848
|
|
|
844
849
|
for (const dep of module.dependencies) {
|
|
845
|
-
if (!(dep
|
|
846
|
-
const depModule = /** @type {CssModule} */ (
|
|
850
|
+
if (!isDependencyKind(dep, "css-import")) continue;
|
|
851
|
+
const depModule = /** @type {CssModule & BuiltCssModule} */ (
|
|
852
|
+
moduleGraph.getModule(dep)
|
|
853
|
+
);
|
|
854
|
+
if (!depModule) continue;
|
|
847
855
|
if (concatenationScope && concatenationScope.isModuleInScope(depModule)) {
|
|
848
856
|
continue;
|
|
849
857
|
}
|
|
@@ -863,7 +871,7 @@ class CssGenerator extends Generator {
|
|
|
863
871
|
|
|
864
872
|
/**
|
|
865
873
|
* Recursively merge `@import`'d CSS into a single Source (text/css-style-sheet only).
|
|
866
|
-
* @param {
|
|
874
|
+
* @param {TModule} module the module to render
|
|
867
875
|
* @param {GenerateContext} generateContext the generate context
|
|
868
876
|
* @param {Set<NormalModule>} ancestors modules on the current path (cycle guard)
|
|
869
877
|
* @returns {Source | null} merged CSS source, or null when the module has no content
|
|
@@ -877,8 +885,10 @@ class CssGenerator extends Generator {
|
|
|
877
885
|
const parts = [];
|
|
878
886
|
|
|
879
887
|
for (const dep of module.dependencies) {
|
|
880
|
-
if (!(dep
|
|
881
|
-
const depModule = /** @type {CssModule} */ (
|
|
888
|
+
if (!isDependencyKind(dep, "css-import")) continue;
|
|
889
|
+
const depModule = /** @type {CssModule & BuiltCssModule} */ (
|
|
890
|
+
moduleGraph.getModule(dep)
|
|
891
|
+
);
|
|
882
892
|
if (!depModule) continue;
|
|
883
893
|
const depExportType = depModule.exportType;
|
|
884
894
|
if (depExportType !== "text" && depExportType !== "css-style-sheet") {
|
|
@@ -905,7 +915,7 @@ class CssGenerator extends Generator {
|
|
|
905
915
|
|
|
906
916
|
/**
|
|
907
917
|
* Generate CSS source for the current module
|
|
908
|
-
* @param {
|
|
918
|
+
* @param {TModule} module the module to generate CSS source for
|
|
909
919
|
* @param {GenerateContext} generateContext the generate context
|
|
910
920
|
* @returns {Source | null} the CSS source
|
|
911
921
|
*/
|
|
@@ -950,7 +960,7 @@ class CssGenerator extends Generator {
|
|
|
950
960
|
const { compilation } = runtimeTemplate;
|
|
951
961
|
const outputOptions = compilation.outputOptions;
|
|
952
962
|
const absolutify = makePathsAbsolute.bindContextCache(
|
|
953
|
-
|
|
963
|
+
compilation.options.context,
|
|
954
964
|
compilation.compiler.root
|
|
955
965
|
);
|
|
956
966
|
const options = {
|
|
@@ -1006,7 +1016,7 @@ class CssGenerator extends Generator {
|
|
|
1006
1016
|
* Offer CSS bound for a JS string literal to `renderEmbeddedSource`. No `.css`
|
|
1007
1017
|
* asset carries this text, so an asset-level minimizer never sees it.
|
|
1008
1018
|
* @param {Source} cssSource the CSS source
|
|
1009
|
-
* @param {
|
|
1019
|
+
* @param {TModule} module the module
|
|
1010
1020
|
* @param {GenerateContext} generateContext the generate context
|
|
1011
1021
|
* @returns {Source} the source a tap returned, or the original
|
|
1012
1022
|
*/
|
|
@@ -1070,7 +1080,7 @@ class CssGenerator extends Generator {
|
|
|
1070
1080
|
/**
|
|
1071
1081
|
* Generate the merged CSS text for a module, optionally wrapped as a
|
|
1072
1082
|
* JS string literal for embedding in JavaScript output.
|
|
1073
|
-
* @param {
|
|
1083
|
+
* @param {TModule} module the module
|
|
1074
1084
|
* @param {GenerateContext} generateContext the generate context
|
|
1075
1085
|
* @param {boolean} asJsLiteral wrap the result as a JS string literal
|
|
1076
1086
|
* @returns {Source} the CSS text source
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
const { SyncWaterfallHook } = require("tapable");
|
|
9
9
|
/** @import Compilation from "../Compilation" */
|
|
10
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
11
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
12
|
-
const Template = require("../Template");
|
|
10
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
11
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
12
|
+
const Template = require("../template/Template");
|
|
13
13
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
14
14
|
|
|
15
|
-
/** @import Chunk from "../Chunk" */
|
|
16
|
-
/** @import { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
15
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
16
|
+
/** @import { ReadOnlyRuntimeRequirements } from "../module/Module" */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @typedef {object} CssInjectCompilationHooks
|
|
@@ -66,31 +66,37 @@ class CssInjectStyleRuntimeModule extends RuntimeModule {
|
|
|
66
66
|
|
|
67
67
|
const cst = runtimeTemplate.renderConst();
|
|
68
68
|
const isNeutralPlatform = runtimeTemplate.isNeutralPlatform();
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
69
|
+
// a node platform has no DOM, so it always collects; the neutral platform has
|
|
70
|
+
// to decide at runtime because the same bundle also runs in a browser
|
|
71
|
+
const withoutDocument =
|
|
72
|
+
!outputOptions.environment.document &&
|
|
73
|
+
compilation.compiler.platform.node === true;
|
|
74
|
+
const collectStyle = [
|
|
75
|
+
// "module-" keeps numeric module ids from enumerating in ascending
|
|
76
|
+
// order instead of the order the styles were applied in
|
|
77
|
+
`${runtimeTemplate.cssServerStyleRegistry()}["module-" + identifier] = css;`,
|
|
78
|
+
"return;"
|
|
79
|
+
];
|
|
80
|
+
const dropStyles = [
|
|
81
|
+
`${cst} styles = ${runtimeTemplate.cssServerStyleRegistry()};`,
|
|
82
|
+
'for (var i = 0; i < identifiers.length; i++) delete styles["module-" + identifiers[i]];',
|
|
83
|
+
"return;"
|
|
84
|
+
];
|
|
85
|
+
/**
|
|
86
|
+
* @param {string[]} body the no-DOM branch
|
|
87
|
+
* @returns {string[]} the branch, guarded when the platform is only maybe DOM-less
|
|
88
|
+
*/
|
|
89
|
+
const withoutDocumentGuard = (body) => {
|
|
90
|
+
if (withoutDocument) return body;
|
|
91
|
+
if (!isNeutralPlatform) return [];
|
|
92
|
+
return [
|
|
93
|
+
"if (typeof document === 'undefined') {",
|
|
94
|
+
Template.indent(body),
|
|
95
|
+
"}"
|
|
96
|
+
];
|
|
97
|
+
};
|
|
98
|
+
const injectGuard = withoutDocumentGuard(collectStyle);
|
|
99
|
+
const removeGuard = withoutDocumentGuard(dropStyles);
|
|
94
100
|
|
|
95
101
|
const createStyleElementCode = Template.asString([
|
|
96
102
|
`${cst} style = document.createElement('style');`,
|
|
@@ -7,16 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
const { SyncWaterfallHook } = require("tapable");
|
|
9
9
|
/** @import Compilation from "../Compilation" */
|
|
10
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
11
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
12
|
-
const Template = require("../Template");
|
|
10
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
11
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
12
|
+
const Template = require("../template/Template");
|
|
13
13
|
const compileBooleanMatcher = require("../util/compileBooleanMatcher");
|
|
14
14
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
15
15
|
const { chunkHasCss } = require("./CssModulesPlugin");
|
|
16
16
|
|
|
17
|
-
/** @import Chunk, { ChunkId } from "../Chunk" */
|
|
18
|
-
/** @import ChunkGraph from "../ChunkGraph" */
|
|
19
|
-
/** @import { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
17
|
+
/** @import Chunk, { ChunkId } from "../graph/Chunk" */
|
|
18
|
+
/** @import ChunkGraph from "../graph/ChunkGraph" */
|
|
19
|
+
/** @import { ReadOnlyRuntimeRequirements } from "../module/Module" */
|
|
20
20
|
|
|
21
21
|
const createCompilationHooks = () => ({
|
|
22
22
|
/**
|
|
@@ -65,18 +65,20 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
65
65
|
_getLoadableChunks() {
|
|
66
66
|
const chunk = /** @type {Chunk} */ (this.chunk);
|
|
67
67
|
const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph);
|
|
68
|
+
const asyncChunks = chunk.getAllAsyncChunks();
|
|
68
69
|
/** @type {Set<ChunkId>} */
|
|
69
70
|
const initialChunkIds = new Set();
|
|
71
|
+
// A shared runtime can reach a stylesheet initially through one entry and
|
|
72
|
+
// asynchronously through another, where it still needs to be loaded.
|
|
70
73
|
for (const c of chunk.getAllInitialChunks()) {
|
|
71
|
-
if (chunkHasCss(c, chunkGraph)) {
|
|
74
|
+
if (chunkHasCss(c, chunkGraph) && !asyncChunks.has(c)) {
|
|
72
75
|
initialChunkIds.add(/** @type {ChunkId} */ (c.id));
|
|
73
76
|
}
|
|
74
77
|
}
|
|
75
78
|
// The predicate the stylesheet is emitted from: an `@import` external gives a
|
|
76
79
|
// chunk a css asset without a `CSS_TYPE` module, and it still has to load.
|
|
77
80
|
const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasCss);
|
|
78
|
-
//
|
|
79
|
-
// reaches the loading path — with no other one there is nothing to load.
|
|
81
|
+
// With no stylesheets left to request asynchronously, the handler is unused.
|
|
80
82
|
const loadableConditionMap = { ...conditionMap };
|
|
81
83
|
for (const id of initialChunkIds) {
|
|
82
84
|
loadableConditionMap[id] = false;
|
|
@@ -169,6 +171,15 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
169
171
|
|
|
170
172
|
const environment = compilation.outputOptions.environment;
|
|
171
173
|
const isNeutralPlatform = runtimeTemplate.isNeutralPlatform();
|
|
174
|
+
// only a node platform can read the stylesheet from disk; other document-less
|
|
175
|
+
// platforms (`target: "webworker"`) have no `fs`, so they keep the link code
|
|
176
|
+
const withoutDocument =
|
|
177
|
+
!environment.document && compilation.compiler.platform.node === true;
|
|
178
|
+
// Only a build that renders on a server meets a stylesheet it did not
|
|
179
|
+
// create, so every other build keeps the shorter adoption check.
|
|
180
|
+
const withServerRenderedLinks = this._runtimeRequirements.has(
|
|
181
|
+
RuntimeGlobals.hasServerRenderedStylesheets
|
|
182
|
+
);
|
|
172
183
|
const withPrefetch =
|
|
173
184
|
this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers) &&
|
|
174
185
|
(environment.document || isNeutralPlatform) &&
|
|
@@ -238,6 +249,35 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
238
249
|
|
|
239
250
|
const cst = runtimeTemplate.renderConst();
|
|
240
251
|
const lt = runtimeTemplate.renderLet();
|
|
252
|
+
// Whether an existing link still has rules on the way, and what its timeout
|
|
253
|
+
// then means: only a webpack-created link is an error, never an adopted one.
|
|
254
|
+
const adoptedLinkIsPending = withServerRenderedLinks
|
|
255
|
+
? 'fetching || (!link.sheet && link.href.indexOf(location.origin + "/") == 0)'
|
|
256
|
+
: "link.getAttribute(loadingAttribute)";
|
|
257
|
+
const timeoutEventType = withServerRenderedLinks
|
|
258
|
+
? "fetching ? 'timeout' : 'load'"
|
|
259
|
+
: "'timeout'";
|
|
260
|
+
// no DOM: read the emitted CSS via dynamic import('fs') (works on every node),
|
|
261
|
+
// collect it; never reject on a missing file
|
|
262
|
+
const readCssFromDisk =
|
|
263
|
+
withoutDocument || isNeutralPlatform
|
|
264
|
+
? `Promise.all([import('fs'), import('url')]).then(${runtimeTemplate.basicFunction(
|
|
265
|
+
"[{ readFile }, { URL }]",
|
|
266
|
+
[
|
|
267
|
+
`readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
|
|
268
|
+
"err, content",
|
|
269
|
+
[
|
|
270
|
+
`if (!err) ${runtimeTemplate.cssServerStyleRegistry()}["chunk-" + chunkId] = content;`,
|
|
271
|
+
"loadingEnded({ type: 'load' });"
|
|
272
|
+
]
|
|
273
|
+
)});`
|
|
274
|
+
]
|
|
275
|
+
// No fs to import, or a url `readFile` rejects on sight (a CDN public
|
|
276
|
+
// path): nothing to collect, which is what a missing file already means.
|
|
277
|
+
)}).catch(${runtimeTemplate.expressionFunction(
|
|
278
|
+
"loadingEnded({ type: 'load' })"
|
|
279
|
+
)});`
|
|
280
|
+
: "";
|
|
241
281
|
const installedChunksObject = `{\n${Template.indent(
|
|
242
282
|
Array.from(initialChunkIds, (id) => `${JSON.stringify(id)}: 0`).join(
|
|
243
283
|
",\n"
|
|
@@ -279,7 +319,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
279
319
|
runtimeTemplate.outputOptions.uniqueName
|
|
280
320
|
)};`
|
|
281
321
|
: "// data-webpack is not used as build has no uniqueName",
|
|
282
|
-
withLoading || withHmr
|
|
322
|
+
(withLoading && !withoutDocument) || withHmr
|
|
283
323
|
? Template.asString([
|
|
284
324
|
`${cst} loadingAttribute = "data-webpack-loading";`,
|
|
285
325
|
`${cst} loadStylesheet = ${runtimeTemplate.basicFunction(
|
|
@@ -324,13 +364,20 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
324
364
|
"if(prev) return prev(event);"
|
|
325
365
|
])
|
|
326
366
|
)};`,
|
|
327
|
-
|
|
367
|
+
...(withServerRenderedLinks
|
|
368
|
+
? [`${cst} fetching = link.getAttribute(loadingAttribute);`]
|
|
369
|
+
: []),
|
|
370
|
+
// An adopted stylesheet without a `sheet` has not applied yet, so a streamed
|
|
371
|
+
// server render no longer resolves before its rules are in.
|
|
372
|
+
`if(${adoptedLinkIsPending}) {`,
|
|
328
373
|
Template.indent([
|
|
329
|
-
|
|
374
|
+
// An adopted link that already failed replays no event, so its timeout
|
|
375
|
+
// resolves as a load: webpack did not create it and must not remove it.
|
|
376
|
+
`timeout = setTimeout(onLinkComplete.bind(null, undefined, { type: ${timeoutEventType}, target: link }), ${loadTimeout});`,
|
|
330
377
|
"link.onerror = onLinkComplete.bind(null, link.onerror);",
|
|
331
378
|
"link.onload = onLinkComplete.bind(null, link.onload);"
|
|
332
379
|
]),
|
|
333
|
-
"} else onLinkComplete(undefined, { type: 'load', target: link });", //
|
|
380
|
+
"} else onLinkComplete(undefined, { type: 'load', target: link });", // a cross-origin sheet never exposes `sheet`, so it keeps the render-blocking assumption
|
|
334
381
|
withHmr && withFetchPriority
|
|
335
382
|
? 'if (hmr && hmr.getAttribute("fetchpriority")) link.setAttribute("fetchpriority", hmr.getAttribute("fetchpriority"));'
|
|
336
383
|
: "",
|
|
@@ -419,39 +466,25 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
419
466
|
"}"
|
|
420
467
|
]
|
|
421
468
|
)};`,
|
|
422
|
-
|
|
423
|
-
?
|
|
424
|
-
:
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
});`
|
|
429
|
-
]),
|
|
430
|
-
isNeutralPlatform
|
|
431
|
-
? Template.asString([
|
|
432
|
-
"} else {",
|
|
469
|
+
withoutDocument
|
|
470
|
+
? readCssFromDisk
|
|
471
|
+
: Template.asString([
|
|
472
|
+
isNeutralPlatform
|
|
473
|
+
? "if (typeof document !== 'undefined') {"
|
|
474
|
+
: "",
|
|
433
475
|
Template.indent([
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
[
|
|
438
|
-
`readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
|
|
439
|
-
"err, content",
|
|
440
|
-
[
|
|
441
|
-
`if (!err) ${runtimeTemplate.cssServerStyleRegistry()}["chunk-" + chunkId] = content;`,
|
|
442
|
-
"loadingEnded({ type: 'load' });"
|
|
443
|
-
]
|
|
444
|
-
)});`
|
|
445
|
-
]
|
|
446
|
-
// No fs to import, or a url `readFile` rejects on sight (a CDN public
|
|
447
|
-
// path): nothing to collect, which is what a missing file already means.
|
|
448
|
-
)}).catch(${runtimeTemplate.expressionFunction(
|
|
449
|
-
"loadingEnded({ type: 'load' })"
|
|
450
|
-
)});`
|
|
476
|
+
`loadStylesheet(chunkId, url, loadingEnded${
|
|
477
|
+
withFetchPriority ? ", fetchPriority" : ""
|
|
478
|
+
});`
|
|
451
479
|
]),
|
|
452
|
-
|
|
480
|
+
isNeutralPlatform
|
|
481
|
+
? Template.asString([
|
|
482
|
+
"} else {",
|
|
483
|
+
Template.indent([readCssFromDisk]),
|
|
484
|
+
"}"
|
|
485
|
+
])
|
|
486
|
+
: ""
|
|
453
487
|
])
|
|
454
|
-
: ""
|
|
455
488
|
]),
|
|
456
489
|
"} else installedChunks[chunkId] = 0;"
|
|
457
490
|
]),
|
|
@@ -598,7 +631,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
|
|
|
598
631
|
}.css = ${runtimeTemplate.basicFunction(
|
|
599
632
|
"chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList, css",
|
|
600
633
|
[
|
|
601
|
-
isNeutralPlatform
|
|
634
|
+
isNeutralPlatform || withoutDocument
|
|
602
635
|
? Template.asString([
|
|
603
636
|
"if (typeof document === 'undefined') {",
|
|
604
637
|
Template.indent([
|