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,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
9
9
|
const lazyModule = require("../util/lazyModule");
|
|
10
10
|
|
|
11
11
|
/** @import Compiler from "../Compiler" */
|
|
@@ -83,10 +83,9 @@ class ChunkPrefetchPreloadPlugin {
|
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
if (chunkMap.cssPreload) {
|
|
86
|
-
// CSS-only preload
|
|
87
|
-
// the
|
|
88
|
-
//
|
|
89
|
-
// alone — nothing here calls the one that fans out over them.
|
|
86
|
+
// A CSS-only preload reaches the CSS handler itself, so it asks for
|
|
87
|
+
// the handlers alone: nothing here calls the function fanning out
|
|
88
|
+
// across them.
|
|
90
89
|
set.add(RuntimeGlobals.preloadChunkHandlers);
|
|
91
90
|
compilation.addLazyRuntimeModule(
|
|
92
91
|
chunk,
|
|
@@ -96,10 +95,9 @@ class ChunkPrefetchPreloadPlugin {
|
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
);
|
|
99
|
-
// The handlers object
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
// `create`, which runs after the requirement pass is over.
|
|
98
|
+
// The handlers object carries the runtime module, so a chunk asking only for
|
|
99
|
+
// it ships no fan-out function. That is read here rather than in `create`,
|
|
100
|
+
// which runs once the requirement pass is over.
|
|
103
101
|
for (const [type, fn, handlers] of /** @type {const} */ ([
|
|
104
102
|
[
|
|
105
103
|
"prefetch",
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
9
|
-
const Template = require("../Template");
|
|
7
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
8
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
9
|
+
const Template = require("../template/Template");
|
|
10
10
|
|
|
11
|
-
/** @import Chunk, { ChunkChildOfTypeInOrder } from "../Chunk" */
|
|
11
|
+
/** @import Chunk, { ChunkChildOfTypeInOrder } from "../graph/Chunk" */
|
|
12
12
|
/** @import Compilation from "../Compilation" */
|
|
13
13
|
|
|
14
14
|
class ChunkPrefetchStartupRuntimeModule extends RuntimeModule {
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
9
|
-
const Template = require("../Template");
|
|
7
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
8
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
9
|
+
const Template = require("../template/Template");
|
|
10
10
|
|
|
11
11
|
/** @import Compilation from "../Compilation" */
|
|
12
|
-
/** @import { ChunkChildIdsByOrdersMap } from "../Chunk" */
|
|
12
|
+
/** @import { ChunkChildIdsByOrdersMap } from "../graph/Chunk" */
|
|
13
13
|
|
|
14
14
|
class ChunkPrefetchTriggerRuntimeModule extends RuntimeModule {
|
|
15
15
|
/**
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
9
|
-
const Template = require("../Template");
|
|
7
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
8
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
9
|
+
const Template = require("../template/Template");
|
|
10
10
|
|
|
11
11
|
/** @import Compilation from "../Compilation" */
|
|
12
|
-
/** @import { ChunkChildIdsByOrdersMap } from "../Chunk" */
|
|
12
|
+
/** @import { ChunkChildIdsByOrdersMap } from "../graph/Chunk" */
|
|
13
13
|
|
|
14
14
|
class ChunkPreloadTriggerRuntimeModule extends RuntimeModule {
|
|
15
15
|
/**
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const PrefetchDependency = require("./
|
|
8
|
+
const PrefetchDependency = require("./PrefetchDependency");
|
|
9
9
|
|
|
10
|
-
/** @import Compiler from "
|
|
10
|
+
/** @import Compiler from "../Compiler" */
|
|
11
11
|
|
|
12
12
|
const PLUGIN_NAME = "PrefetchPlugin";
|
|
13
13
|
|
|
@@ -5,18 +5,13 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const { RawSource } = require("webpack-sources");
|
|
8
|
-
const
|
|
8
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
9
9
|
const {
|
|
10
10
|
ASSET_URL_TYPE,
|
|
11
11
|
JAVASCRIPT_TYPE
|
|
12
|
-
} = require("../ModuleSourceTypeConstants");
|
|
13
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
14
|
-
const CssUrlDependency = require("../dependencies/CssUrlDependency");
|
|
15
|
-
const HtmlSourceDependency = require("../dependencies/HtmlSourceDependency");
|
|
16
|
-
const URLDependency = require("../dependencies/URLDependency");
|
|
17
|
-
const WorkerDependency = require("../dependencies/WorkerDependency");
|
|
12
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
13
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
18
14
|
const lazyModule = require("../util/lazyModule");
|
|
19
|
-
const memoize = require("../util/memoize");
|
|
20
15
|
const {
|
|
21
16
|
PUBLIC_PATH_AUTO,
|
|
22
17
|
PUBLIC_PATH_FULL_HASH
|
|
@@ -24,12 +19,15 @@ const {
|
|
|
24
19
|
const { guessAsAttribute } = require("./parseResourceHintOptions");
|
|
25
20
|
const parseResourceHintOptions = require("./parseResourceHintOptions");
|
|
26
21
|
|
|
27
|
-
/** @import Chunk from "../Chunk" */
|
|
28
|
-
/** @import
|
|
29
|
-
/** @import
|
|
22
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
23
|
+
/** @import CssUrlDependency from "../dependencies/css/CssUrlDependency" */
|
|
24
|
+
/** @import HtmlSourceDependency from "../dependencies/html/HtmlSourceDependency" */
|
|
25
|
+
/** @import URLDependency from "../dependencies/url/URLDependency" */
|
|
26
|
+
/** @import ChunkGraph from "../graph/ChunkGraph" */
|
|
27
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
30
28
|
/** @import Compilation from "../Compilation" */
|
|
31
29
|
/** @import Compiler from "../Compiler" */
|
|
32
|
-
/** @import Module, { RuntimeRequirements } from "../Module" */
|
|
30
|
+
/** @import Module, { RuntimeRequirements } from "../module/Module" */
|
|
33
31
|
|
|
34
32
|
/**
|
|
35
33
|
* The attributes a `<link>` carries besides its href and `as`.
|
|
@@ -55,11 +53,14 @@ const parseResourceHintOptions = require("./parseResourceHintOptions");
|
|
|
55
53
|
* @import {
|
|
56
54
|
* ResourceHintsInitial as ResourceHintsConfig,
|
|
57
55
|
* ResourceHintsOptions,
|
|
56
|
+
* RuleSetCondition,
|
|
57
|
+
* RuleSetLogicalConditions,
|
|
58
58
|
* UrlHintRule
|
|
59
59
|
* } from "../../declarations/WebpackOptions"
|
|
60
60
|
*/
|
|
61
|
-
/** @import { HtmlResourceHint } from "../dependencies/HtmlEntryDependency" */
|
|
61
|
+
/** @import { HtmlResourceHint } from "../dependencies/html/HtmlEntryDependency" */
|
|
62
62
|
/** @import { ResourceHintOptions } from "./parseResourceHintOptions" */
|
|
63
|
+
/** @import { MagicCommentOptions } from "../util/magicComment" */
|
|
63
64
|
|
|
64
65
|
/**
|
|
65
66
|
* @typedef {object} ResolvedResourceHints
|
|
@@ -136,9 +137,6 @@ const getStartupAssetHintRuntimeModule = lazyModule(() =>
|
|
|
136
137
|
);
|
|
137
138
|
// only reached once a build has an html module, so a js-only build never
|
|
138
139
|
// pays for the html generator this drags in
|
|
139
|
-
const getHtmlEntryDependency = memoize(() =>
|
|
140
|
-
require("../dependencies/HtmlEntryDependency")
|
|
141
|
-
);
|
|
142
140
|
|
|
143
141
|
const PLUGIN_NAME = "ResourceHintPlugin";
|
|
144
142
|
|
|
@@ -156,18 +154,18 @@ const JS_CHUNK_FILE_REGEXP = /\.m?jsx?$/i;
|
|
|
156
154
|
/**
|
|
157
155
|
* True for the URL-referenced-asset deps that can carry resource-hint flags.
|
|
158
156
|
* Type guard so callers keep the narrowed union without re-listing the classes.
|
|
159
|
-
* @param {import("../Dependency")} dep dependency
|
|
157
|
+
* @param {import("../graph/Dependency")} dep dependency
|
|
160
158
|
* @returns {dep is URLDependency | CssUrlDependency | HtmlSourceDependency} whether it is a URL asset dep
|
|
161
159
|
*/
|
|
162
160
|
const isUrlAssetDep = (dep) =>
|
|
163
|
-
dep
|
|
164
|
-
dep
|
|
165
|
-
dep
|
|
161
|
+
isDependencyKind(dep, "url") ||
|
|
162
|
+
isDependencyKind(dep, "css-url") ||
|
|
163
|
+
isDependencyKind(dep, "html-source");
|
|
166
164
|
|
|
167
165
|
/**
|
|
168
166
|
* Entry chunk name for a hint's `hostChunks` (Vite's `hostId`); the id is a
|
|
169
167
|
* stable fallback for unnamed chunks.
|
|
170
|
-
* @param {import("../Chunk")} chunk chunk
|
|
168
|
+
* @param {import("../graph/Chunk")} chunk chunk
|
|
171
169
|
* @returns {string} name or stringified id
|
|
172
170
|
*/
|
|
173
171
|
const chunkHostName = (chunk) => chunk.name || String(chunk.id);
|
|
@@ -178,8 +176,8 @@ const chunkHostName = (chunk) => chunk.name || String(chunk.id);
|
|
|
178
176
|
* single call. One shared walk for the entrypoint-hint and HTML-hint passes,
|
|
179
177
|
* which would otherwise each re-implement the same 4-level nesting.
|
|
180
178
|
* @param {Compilation} compilation compilation
|
|
181
|
-
* @param {Iterable<import("../Chunk")>} chunks chunks to scan
|
|
182
|
-
* @returns {IterableIterator<{ dep: URLDependency | CssUrlDependency | HtmlSourceDependency, target: Module, chunk: import("../Chunk") }>} hinted assets
|
|
179
|
+
* @param {Iterable<import("../graph/Chunk")>} chunks chunks to scan
|
|
180
|
+
* @returns {IterableIterator<{ dep: URLDependency | CssUrlDependency | HtmlSourceDependency, target: Module, chunk: import("../graph/Chunk") }>} hinted assets
|
|
183
181
|
*/
|
|
184
182
|
function* iterateHintedUrlAssets(compilation, chunks) {
|
|
185
183
|
const { chunkGraph, moduleGraph } = compilation;
|
|
@@ -201,6 +199,38 @@ function* iterateHintedUrlAssets(compilation, chunks) {
|
|
|
201
199
|
}
|
|
202
200
|
}
|
|
203
201
|
|
|
202
|
+
/** @type {WeakMap<UrlHintRule, (request: string) => boolean>} */
|
|
203
|
+
const urlHintMatchers = new WeakMap();
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* A rule's `test`, `include` and `exclude` as one predicate, read as `module.rules`
|
|
207
|
+
* reads a condition, so `and`/`or`/`not`/`glob` work too. Compiled once per rule.
|
|
208
|
+
* @param {UrlHintRule} rule rule setting at least one of the three
|
|
209
|
+
* @returns {(request: string) => boolean} whether the rule applies to a request
|
|
210
|
+
*/
|
|
211
|
+
const getUrlHintMatcher = (rule) => {
|
|
212
|
+
let matcher = urlHintMatchers.get(rule);
|
|
213
|
+
if (matcher === undefined) {
|
|
214
|
+
/** @type {RuleSetCondition[]} */
|
|
215
|
+
const all = [];
|
|
216
|
+
if (rule.test !== undefined) all.push(rule.test);
|
|
217
|
+
if (rule.include !== undefined) all.push(rule.include);
|
|
218
|
+
/** @type {RuleSetLogicalConditions} */
|
|
219
|
+
const condition = {};
|
|
220
|
+
if (all.length > 0) condition.and = all;
|
|
221
|
+
if (rule.exclude !== undefined) condition.not = rule.exclude;
|
|
222
|
+
|
|
223
|
+
const RuleSetCompiler = require("../rules/RuleSetCompiler");
|
|
224
|
+
|
|
225
|
+
matcher = new RuleSetCompiler([]).compileCondition(
|
|
226
|
+
"urlHints",
|
|
227
|
+
condition
|
|
228
|
+
).fn;
|
|
229
|
+
urlHintMatchers.set(rule, matcher);
|
|
230
|
+
}
|
|
231
|
+
return matcher;
|
|
232
|
+
};
|
|
233
|
+
|
|
204
234
|
/**
|
|
205
235
|
* Merge the matching `UrlHintRule`s for a request. Rules match by
|
|
206
236
|
* `test`/`include`/`exclude` (omit all three → matches everything); later
|
|
@@ -219,14 +249,7 @@ const matchUrlHints = (rules, request) => {
|
|
|
219
249
|
(rule.test !== undefined ||
|
|
220
250
|
rule.include !== undefined ||
|
|
221
251
|
rule.exclude !== undefined) &&
|
|
222
|
-
!
|
|
223
|
-
/** @type {EXPECTED_ANY} */ ({
|
|
224
|
-
test: rule.test,
|
|
225
|
-
include: rule.include,
|
|
226
|
-
exclude: rule.exclude
|
|
227
|
-
}),
|
|
228
|
-
request
|
|
229
|
-
)
|
|
252
|
+
!getUrlHintMatcher(rule)(request)
|
|
230
253
|
) {
|
|
231
254
|
continue;
|
|
232
255
|
}
|
|
@@ -246,7 +269,7 @@ const matchUrlHints = (rules, request) => {
|
|
|
246
269
|
* When `output.resourceHints` is a function, invoke it and return its
|
|
247
270
|
* descriptors; otherwise pass through. Callback signature — see `ResourceHints`
|
|
248
271
|
* schema entry.
|
|
249
|
-
* @param {import("../Entrypoint")} entrypoint entrypoint
|
|
272
|
+
* @param {import("../graph/Entrypoint")} entrypoint entrypoint
|
|
250
273
|
* @param {ResourceHintsConfig | undefined} hints top-level config
|
|
251
274
|
* @param {string} entryName entry name
|
|
252
275
|
* @param {"html" | "js"} hostType page type
|
|
@@ -360,7 +383,7 @@ const collectEntrypointHints = (compilation, entryName, hints) => {
|
|
|
360
383
|
// URL-referenced deps carrying prefetch/preload. Walk entrypoint's initial
|
|
361
384
|
// chunks × modules × deps (async chunks are handled by the on-demand
|
|
362
385
|
// runtime via `dynamicImportPrefetch/Preload` parser options).
|
|
363
|
-
/** @type {Set<import("../Chunk")>} */
|
|
386
|
+
/** @type {Set<import("../graph/Chunk")>} */
|
|
364
387
|
const chunkSet = new Set(entrypoint.chunks);
|
|
365
388
|
const runtimeChunk = entrypoint.getRuntimeChunk();
|
|
366
389
|
if (runtimeChunk) chunkSet.add(runtimeChunk);
|
|
@@ -385,10 +408,9 @@ const collectEntrypointHints = (compilation, entryName, hints) => {
|
|
|
385
408
|
if (dep.fetchPriority) h.fetchPriority = dep.fetchPriority;
|
|
386
409
|
push(h);
|
|
387
410
|
}
|
|
388
|
-
// `hostType
|
|
389
|
-
//
|
|
390
|
-
//
|
|
391
|
-
// `stats.entrypoints[name].resourceHints` see `"js"`.
|
|
411
|
+
// `hostType` is `"html"` only where the entrypoint has an extracted page, that
|
|
412
|
+
// is where some HTML module's script dependency names this entry. An SSR
|
|
413
|
+
// framework reading the stats sees `"js"`.
|
|
392
414
|
let hostType = /** @type {"html" | "js"} */ ("js");
|
|
393
415
|
|
|
394
416
|
outer: for (const module of compilation.modules) {
|
|
@@ -397,10 +419,9 @@ const collectEntrypointHints = (compilation, entryName, hints) => {
|
|
|
397
419
|
}
|
|
398
420
|
const presDeps = module.presentationalDependencies;
|
|
399
421
|
if (!presDeps) continue;
|
|
400
|
-
const HtmlEntryDependency = getHtmlEntryDependency();
|
|
401
422
|
for (const dep of presDeps) {
|
|
402
423
|
if (
|
|
403
|
-
dep
|
|
424
|
+
isDependencyKind(dep, "html-entry") &&
|
|
404
425
|
dep.entryName === entryName &&
|
|
405
426
|
(dep.elementKind === "script" || dep.elementKind === "script-module")
|
|
406
427
|
) {
|
|
@@ -472,13 +493,13 @@ const collectStartupAssetHintLines = (
|
|
|
472
493
|
for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
|
|
473
494
|
for (const block of module.blocks) {
|
|
474
495
|
for (const dep of block.dependencies) {
|
|
475
|
-
if (!(dep
|
|
496
|
+
if (!isDependencyKind(dep, "worker")) continue;
|
|
476
497
|
const hint = dep.options.resourceHint;
|
|
477
498
|
if (!hint || (!hint.preload && !hint.prefetch)) continue;
|
|
478
499
|
const group = chunkGraph.getBlockChunkGroup(block);
|
|
479
500
|
if (!group) continue;
|
|
480
501
|
const workerChunk =
|
|
481
|
-
/** @type {import("../Entrypoint")} */
|
|
502
|
+
/** @type {import("../graph/Entrypoint")} */
|
|
482
503
|
(group).getEntrypointChunk();
|
|
483
504
|
if (workerChunk.id === null || seenWorkerChunks.has(workerChunk.id)) {
|
|
484
505
|
continue;
|
|
@@ -513,7 +534,7 @@ const collectStartupAssetHintLines = (
|
|
|
513
534
|
const perAsset = new Map();
|
|
514
535
|
for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
|
|
515
536
|
const deps =
|
|
516
|
-
/** @type {{ dependencies?: import("../Dependency")[] }} */
|
|
537
|
+
/** @type {{ dependencies?: import("../graph/Dependency")[] }} */
|
|
517
538
|
(module).dependencies;
|
|
518
539
|
if (!deps) continue;
|
|
519
540
|
for (const dep of deps) {
|
|
@@ -715,9 +736,9 @@ class ResourceHintPlugin {
|
|
|
715
736
|
* @param {ResourceHintDep} dep dep to mutate in place
|
|
716
737
|
* @param {UrlHintRule[] | undefined} rules parser-scoped `urlHints` rules
|
|
717
738
|
* @param {string} request the asset request (for rule matching)
|
|
718
|
-
* @param {
|
|
719
|
-
* @param {import("../NormalModule")} module module for emitting warnings on invalid comments
|
|
720
|
-
* @param {import("../Dependency").DependencyLocation} loc loc for warnings
|
|
739
|
+
* @param {MagicCommentOptions | null | undefined} commentOptions parsed magic-comment options (`null` / `undefined` skips override phase)
|
|
740
|
+
* @param {import("../module/NormalModule")} module module for emitting warnings on invalid comments
|
|
741
|
+
* @param {import("../graph/Dependency").DependencyLocation} loc loc for warnings
|
|
721
742
|
* @returns {void}
|
|
722
743
|
*/
|
|
723
744
|
static applyResourceHints(dep, rules, request, commentOptions, module, loc) {
|
|
@@ -737,15 +758,14 @@ class ResourceHintPlugin {
|
|
|
737
758
|
const hints = this._hints;
|
|
738
759
|
|
|
739
760
|
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
|
|
740
|
-
//
|
|
741
|
-
// `HtmlEntryDependency`s
|
|
742
|
-
//
|
|
743
|
-
//
|
|
744
|
-
//
|
|
745
|
-
//
|
|
746
|
-
//
|
|
747
|
-
//
|
|
748
|
-
// (only fires when a JS chunk actually produces hints).
|
|
761
|
+
// WHY: computed on first access. One walk of every HTML module's
|
|
762
|
+
// `HtmlEntryDependency`s — resolving each named entry and collecting every
|
|
763
|
+
// URL asset dep reachable from its ordered chunks — yields both views: a
|
|
764
|
+
// per-entry list, which `HtmlEntryDependency.Template` emits the `<link>`
|
|
765
|
+
// tags from, and a global `WeakSet`, which `StartupAssetHintRuntimeModule`
|
|
766
|
+
// reads to skip the JS runtime `<link>` for the same asset. Deterministic,
|
|
767
|
+
// the module graph being fixed by seal time, and cheap, since it only fires
|
|
768
|
+
// when a JS chunk actually produces hints.
|
|
749
769
|
/** @type {Map<string, HtmlHintedAsset[]> | undefined} */
|
|
750
770
|
let perEntry;
|
|
751
771
|
/** @type {WeakSet<Module> | undefined} */
|
|
@@ -762,10 +782,9 @@ class ResourceHintPlugin {
|
|
|
762
782
|
// they don't affect module resolution, only rendering.
|
|
763
783
|
const presDeps = module.presentationalDependencies;
|
|
764
784
|
if (!presDeps) continue;
|
|
765
|
-
const HtmlEntryDependency = getHtmlEntryDependency();
|
|
766
785
|
for (const dep of presDeps) {
|
|
767
786
|
if (
|
|
768
|
-
!(dep
|
|
787
|
+
!isDependencyKind(dep, "html-entry") ||
|
|
769
788
|
(dep.elementKind !== "script" &&
|
|
770
789
|
dep.elementKind !== "script-module")
|
|
771
790
|
) {
|
|
@@ -773,11 +792,10 @@ class ResourceHintPlugin {
|
|
|
773
792
|
}
|
|
774
793
|
const entrypoint = compilation.entrypoints.get(dep.entryName);
|
|
775
794
|
if (!entrypoint) continue;
|
|
776
|
-
//
|
|
777
|
-
//
|
|
778
|
-
//
|
|
779
|
-
|
|
780
|
-
/** @type {Set<import("../Chunk")>} */
|
|
795
|
+
// Mirrors `getEntrypointChunksInLoadOrder`: the entry, runtime and
|
|
796
|
+
// every initial sibling. An async `import()` chunk stays on the
|
|
797
|
+
// on-demand runtime and is never HTML-hinted.
|
|
798
|
+
/** @type {Set<import("../graph/Chunk")>} */
|
|
781
799
|
const chunks = new Set(entrypoint.chunks);
|
|
782
800
|
const entry = entrypoint.getEntrypointChunk();
|
|
783
801
|
if (entry) chunks.add(entry);
|
|
@@ -864,10 +882,9 @@ class ResourceHintPlugin {
|
|
|
864
882
|
});
|
|
865
883
|
}
|
|
866
884
|
|
|
867
|
-
// SSR manifest
|
|
868
|
-
// asset
|
|
869
|
-
//
|
|
870
|
-
// yields empty lists (via `collectEntrypointHints`).
|
|
885
|
+
// The SSR manifest serializes each entrypoint's resolved hints to a JSON
|
|
886
|
+
// asset, the same descriptors the stats carry, so an SSR server can inject
|
|
887
|
+
// the tags itself. `"none"` yields empty lists.
|
|
871
888
|
const rhOptions = compilation.outputOptions.resourceHints;
|
|
872
889
|
const manifestPath = rhOptions && rhOptions.manifest;
|
|
873
890
|
if (manifestPath) {
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
const { SyncWaterfallHook } = require("tapable");
|
|
8
8
|
const Compilation = require("../Compilation");
|
|
9
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
11
|
-
const Template = require("../Template");
|
|
9
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
10
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
11
|
+
const Template = require("../template/Template");
|
|
12
12
|
const { guessAsAttribute } = require("./parseResourceHintOptions");
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
9
|
-
const Template = require("../Template");
|
|
7
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
8
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
9
|
+
const Template = require("../template/Template");
|
|
10
10
|
|
|
11
11
|
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
@@ -47,16 +47,13 @@ class StartupAssetHintRuntimeModule extends RuntimeModule {
|
|
|
47
47
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
48
48
|
const lines = this._lines;
|
|
49
49
|
if (lines.length === 0) return null;
|
|
50
|
-
// `__webpack_nonce__` set
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
// - For ESM output (`output.module: true`), `document.currentScript`
|
|
58
|
-
// is `null`; locate the loading `<script type="module">` by
|
|
59
|
-
// matching `script.src` against `import.meta.url`.
|
|
50
|
+
// `__webpack_nonce__` set in the entry module comes too late, the entry not
|
|
51
|
+
// having run, so the nonce is read off the `<script>` that loaded the bundle
|
|
52
|
+
// and the links match a CSP demanding the script's own.
|
|
53
|
+
|
|
54
|
+
// Classic output finds it on `document.currentScript`. ESM output leaves that
|
|
55
|
+
// null, so the loading `<script type="module">` is found by matching its
|
|
56
|
+
// `src` against `import.meta.url`.
|
|
60
57
|
const { module: isModule, importMetaName } = compilation.outputOptions;
|
|
61
58
|
const nonceSetup = isModule
|
|
62
59
|
? [
|
|
@@ -10,8 +10,9 @@ const getUnsupportedFeatureWarning = memoize(() =>
|
|
|
10
10
|
require("../errors/UnsupportedFeatureWarning")
|
|
11
11
|
);
|
|
12
12
|
|
|
13
|
-
/** @import { DependencyLocation } from "../Dependency" */
|
|
14
|
-
/** @import NormalModule from "../NormalModule" */
|
|
13
|
+
/** @import { DependencyLocation } from "../graph/Dependency" */
|
|
14
|
+
/** @import NormalModule from "../module/NormalModule" */
|
|
15
|
+
/** @import { MagicCommentOptions } from "../util/magicComment" */
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* @typedef {object} ResourceHintOptions
|
|
@@ -27,7 +28,7 @@ const getUnsupportedFeatureWarning = memoize(() =>
|
|
|
27
28
|
* Reads `webpackPrefetch` / `webpackPreload` / `webpackFetchPriority` /
|
|
28
29
|
* `webpackAs` / `webpackType` / `webpackMedia` from a parsed magic-comment
|
|
29
30
|
* options object. Invalid values emit warnings to the given module.
|
|
30
|
-
* @param {
|
|
31
|
+
* @param {MagicCommentOptions | null | undefined} importOptions parsed comment options
|
|
31
32
|
* @param {NormalModule} module the module to attach warnings to
|
|
32
33
|
* @param {DependencyLocation} loc location for warnings
|
|
33
34
|
* @returns {ResourceHintOptions} parsed hints (empty when no comments matched)
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const ConstDependency = require("../dependencies/core/ConstDependency");
|
|
9
|
+
const { approve } = require("../javascript/JavascriptParserHelpers");
|
|
8
10
|
const {
|
|
9
11
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
10
12
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
11
13
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
12
|
-
} = require("
|
|
13
|
-
const
|
|
14
|
-
const ProvidedDependency = require("./dependencies/ProvidedDependency");
|
|
15
|
-
const { approve } = require("./javascript/JavascriptParserHelpers");
|
|
14
|
+
} = require("../module/ModuleTypeConstants");
|
|
15
|
+
const ProvidedDependency = require("./ProvidedDependency");
|
|
16
16
|
|
|
17
|
-
/** @import { JavascriptParserOptions } from "
|
|
18
|
-
/** @import Compiler from "
|
|
19
|
-
/** @import JavascriptParser, { Range } from "
|
|
17
|
+
/** @import { JavascriptParserOptions } from "../../declarations/WebpackOptions" */
|
|
18
|
+
/** @import Compiler from "../Compiler" */
|
|
19
|
+
/** @import JavascriptParser, { Range } from "../javascript/JavascriptParser" */
|
|
20
20
|
|
|
21
21
|
const PLUGIN_NAME = "ProvidePlugin";
|
|
22
22
|
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
8
|
+
const ModuleDependency = require("../dependencies/core/ModuleDependency");
|
|
9
|
+
const Dependency = require("../graph/Dependency");
|
|
10
|
+
const { isInlinedUsedName } = require("../optimize/InlineExports");
|
|
11
|
+
const InitFragment = require("../template/InitFragment");
|
|
12
|
+
const Template = require("../template/Template");
|
|
12
13
|
const makeSerializable = require("../util/makeSerializable");
|
|
13
14
|
const { propertyAccess } = require("../util/property");
|
|
14
|
-
const ModuleDependency = require("./ModuleDependency");
|
|
15
15
|
|
|
16
16
|
/** @import { ReplaceSource } from "webpack-sources" */
|
|
17
17
|
/**
|
|
@@ -19,11 +19,11 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
19
19
|
* ReferencedExports,
|
|
20
20
|
* UpdateHashContext,
|
|
21
21
|
* ExportInfoName
|
|
22
|
-
* } from "../Dependency"
|
|
22
|
+
* } from "../graph/Dependency"
|
|
23
23
|
*/
|
|
24
|
-
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
25
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
26
|
-
/** @import ModuleGraphConnection from "../ModuleGraphConnection" */
|
|
24
|
+
/** @import { DependencyTemplateContext } from "../template/DependencyTemplate" */
|
|
25
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
26
|
+
/** @import ModuleGraphConnection from "../graph/ModuleGraphConnection" */
|
|
27
27
|
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
28
28
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ExportInfoName[]]>} ObjectDeserializerContext */
|
|
29
29
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ExportInfoName[]]>} ObjectSerializerContext */
|
|
@@ -103,10 +103,11 @@ class ProvidedDependency extends ModuleDependency {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
makeSerializable(
|
|
107
|
-
ProvidedDependency,
|
|
106
|
+
makeSerializable(ProvidedDependency, [
|
|
107
|
+
"webpack/lib/provide/ProvidedDependency",
|
|
108
|
+
// TODO in the next major release: remove, they restore pre-move cache packs
|
|
108
109
|
"webpack/lib/dependencies/ProvidedDependency"
|
|
109
|
-
);
|
|
110
|
+
]);
|
|
110
111
|
|
|
111
112
|
class ProvidedDependencyTemplate extends ModuleDependency.Template {
|
|
112
113
|
/**
|
|
@@ -144,7 +145,7 @@ class ProvidedDependencyTemplate extends ModuleDependency.Template {
|
|
|
144
145
|
|
|
145
146
|
const provided = !usedName
|
|
146
147
|
? moduleRaw
|
|
147
|
-
: usedName
|
|
148
|
+
: isInlinedUsedName(usedName)
|
|
148
149
|
? `(${moduleRaw}, ${usedName.render(
|
|
149
150
|
Template.toNormalComment(
|
|
150
151
|
`inlined export ${propertyAccess(dep.ids)}`
|
|
@@ -5,19 +5,36 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
9
|
+
const RawModule = require("../module/RawModule");
|
|
10
|
+
|
|
11
|
+
/** @import Compiler from "../Compiler" */
|
|
12
|
+
/** @import { ResolveData } from "../module/NormalModuleFactory" */
|
|
13
|
+
/** @import { BeforeContextResolveData } from "../context/ContextModuleFactory" */
|
|
10
14
|
|
|
11
15
|
/**
|
|
12
|
-
* @
|
|
13
|
-
*
|
|
14
|
-
* }
|
|
16
|
+
* @inline
|
|
17
|
+
* @tsType import('./IgnorePlugin').CheckResourceFn
|
|
18
|
+
* @typedef {(resource: string, context: string) => boolean} CheckResourceFn
|
|
15
19
|
*/
|
|
16
|
-
/** @import Compiler from "./Compiler" */
|
|
17
|
-
/** @import { ResolveData } from "./NormalModuleFactory" */
|
|
18
|
-
/** @import { BeforeContextResolveData } from "./ContextModuleFactory" */
|
|
19
20
|
|
|
20
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* @inline
|
|
23
|
+
* @typedef {object} IgnorePluginPatternOptions
|
|
24
|
+
* @property {RegExp=} contextRegExp A RegExp to test the context (directory) against.
|
|
25
|
+
* @property {RegExp} resourceRegExp A RegExp to test the request against.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @inline
|
|
30
|
+
* @typedef {object} IgnorePluginCheckOptions
|
|
31
|
+
* @property {CheckResourceFn} checkResource A filter function for resource and context.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @schema plugins/IgnorePlugin
|
|
36
|
+
* @typedef {IgnorePluginPatternOptions | IgnorePluginCheckOptions} IgnorePluginOptions
|
|
37
|
+
*/
|
|
21
38
|
|
|
22
39
|
const PLUGIN_NAME = "IgnorePlugin";
|
|
23
40
|
|
|
@@ -71,14 +88,14 @@ class IgnorePlugin {
|
|
|
71
88
|
apply(compiler) {
|
|
72
89
|
compiler.hooks.validate.tap(PLUGIN_NAME, () => {
|
|
73
90
|
compiler.validate(
|
|
74
|
-
|
|
75
|
-
(require("../schemas/plugins/IgnorePlugin.json")),
|
|
91
|
+
require("../../schemas/plugins/IgnorePlugin.json"),
|
|
76
92
|
this.options,
|
|
77
93
|
{
|
|
78
94
|
name: "Ignore Plugin",
|
|
79
95
|
baseDataPath: "options"
|
|
80
96
|
},
|
|
81
|
-
(options) =>
|
|
97
|
+
(options) =>
|
|
98
|
+
require("../../schemas/plugins/IgnorePlugin.check")(options)
|
|
82
99
|
);
|
|
83
100
|
});
|
|
84
101
|
|
|
@@ -89,7 +106,7 @@ class IgnorePlugin {
|
|
|
89
106
|
if (
|
|
90
107
|
result === false &&
|
|
91
108
|
resolveData.dependencies.length > 0 &&
|
|
92
|
-
resolveData.dependencies[0]
|
|
109
|
+
isDependencyKind(resolveData.dependencies[0], "entry")
|
|
93
110
|
) {
|
|
94
111
|
const module = new RawModule(
|
|
95
112
|
"",
|