@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -8
- package/changes.json +3 -19
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +224 -106
- package/lib/Compiler.js +19 -19
- 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 +8 -8
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +36 -22
- 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 +8 -8
- 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 +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +8 -10
- package/lib/cache/ResolverCachePlugin.js +8 -4
- 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 +1 -1
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +144 -48
- package/lib/config/getClaimedAssetTypes.js +21 -13
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +10 -0
- 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 +36 -25
- package/lib/context/ContextModuleFactory.js +13 -10
- package/lib/context/ContextReplacementPlugin.js +3 -3
- package/lib/css/CssGenerator.js +38 -31
- 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 +682 -291
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6985 -5125
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +52 -19
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
- 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} +166 -33
- 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} +35 -30
- 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} +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} +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} +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} +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} +369 -92
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
- 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} +23 -16
- 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} +19 -17
- 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} +133 -118
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
- 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} +99 -84
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
- 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 +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} +51 -141
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
- 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} +119 -98
- 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 +16 -18
- 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} +31 -33
- 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} +154 -26
- 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/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +4 -4
- 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} +79 -55
- 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} +130 -82
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
- package/lib/{util → graph}/findGraphRoots.js +14 -8
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -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 +31 -21
- package/lib/html/HtmlGenerator.js +107 -43
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +172 -76
- package/lib/html/HtmlParser.js +503 -153
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +2 -1
- package/lib/html/htmlMinify.js +111 -41
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -13952
- 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 +303 -97
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
- 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} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +17 -17
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +440 -211
- package/lib/javascript/JavascriptParser.js +220 -134
- 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 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +10 -10
- 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 +160 -166
- 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 +31 -21
- 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} +16 -14
- package/lib/{Module.js → module/Module.js} +119 -51
- 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 +58 -6
- 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 +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +229 -214
- 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} +17 -17
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +584 -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 +20 -12
- 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 +18 -18
- package/lib/optimize/SplitChunksPlugin.js +713 -155
- 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} +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 +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 +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 +11 -12
- 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 +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 +65 -44
- 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 +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 +7 -4
- 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 +6 -6
- 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} +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 +1 -1
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +47 -16
- 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 +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
- 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} +145 -63
- package/lib/{Template.js → template/Template.js} +13 -11
- 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 +349 -44
- 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 +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +94 -15
- 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/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +294 -102
- 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 +5 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
- 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 +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- 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 +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 +48 -41
- 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 +19355 -13873
- 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}/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
package/lib/LazyBarrel.js
DELETED
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Haijie Xie @hai-x
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
const Dependency = require("./Dependency");
|
|
9
|
-
|
|
10
|
-
/** @import Compilation, { DependencyConstructor } from "./Compilation" */
|
|
11
|
-
/** @import Module from "./Module" */
|
|
12
|
-
/** @import ModuleFactory from "./ModuleFactory" */
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Defines the deferred request group type used by this module.
|
|
16
|
-
* @typedef {object} DependencyGroup
|
|
17
|
-
* @property {ModuleFactory} factory factory for the request
|
|
18
|
-
* @property {Dependency[]} dependencies deferred dependencies of the request
|
|
19
|
-
* @property {string | undefined} context request context
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Defines the lazy barrel state type used by this module.
|
|
24
|
-
* @typedef {object} LazyBarrelState
|
|
25
|
-
* @property {Set<string> | true} forwardedIds export names requested so far, true for all
|
|
26
|
-
* @property {LazyBarrelInfo | undefined} lazyBarrelInfo deferred dependencies, undefined until classified
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Defines the lazy barrel unlazy item type used by this module.
|
|
31
|
-
* @typedef {object} UnlazyDependencyInfo
|
|
32
|
-
* @property {ModuleFactory} factory factory for the request
|
|
33
|
-
* @property {Dependency[]} dependencies deferred dependencies of the request
|
|
34
|
-
* @property {string | undefined} context request context
|
|
35
|
-
* @property {Module} originModule the lazy barrel module
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Collects the export names a dependency group requests from its target.
|
|
40
|
-
* @param {Dependency[]} dependencies dependency group resolving to one module
|
|
41
|
-
* @returns {Set<string> | true} requested export names, true for all
|
|
42
|
-
*/
|
|
43
|
-
function getForwardedIds(dependencies) {
|
|
44
|
-
/** @type {Set<string>} */
|
|
45
|
-
const ids = new Set();
|
|
46
|
-
for (const dependency of dependencies) {
|
|
47
|
-
// TODO remove in webpack 6
|
|
48
|
-
// It may be missing on custom dependency types not extending the base Dependency
|
|
49
|
-
if (!("getForwardId" in dependency)) continue;
|
|
50
|
-
|
|
51
|
-
const id = dependency.getForwardId();
|
|
52
|
-
if (id === true) return true;
|
|
53
|
-
if (id !== null) ids.add(id);
|
|
54
|
-
}
|
|
55
|
-
return ids;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Tracks the deferred (not yet factorized/built) dependencies of a
|
|
60
|
-
* side-effect-free barrel module and which export names resolve to them.
|
|
61
|
-
*/
|
|
62
|
-
class LazyBarrelInfo {
|
|
63
|
-
constructor() {
|
|
64
|
-
/** @type {Map<string, string>} forward id -> request key */
|
|
65
|
-
this._forwardIdToRequest = new Map();
|
|
66
|
-
/** @type {Map<string, DependencyGroup>} request key -> still-deferred group */
|
|
67
|
-
this._requestToDepGroup = new Map();
|
|
68
|
-
/** @type {Set<string> | undefined} locally provided export names */
|
|
69
|
-
this._terminalIds = undefined;
|
|
70
|
-
/** @type {Set<string> | undefined} requests of star re-exports */
|
|
71
|
-
this._fallbackRequests = undefined;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Records a deferred dependency under its request key.
|
|
76
|
-
* @param {string} requestKey request key
|
|
77
|
-
* @param {Dependency} dependency dependency to defer
|
|
78
|
-
* @param {ModuleFactory} factory factory for the request
|
|
79
|
-
* @param {string | undefined} context request context
|
|
80
|
-
*/
|
|
81
|
-
addLazy(requestKey, dependency, factory, context) {
|
|
82
|
-
let group = this._requestToDepGroup.get(requestKey);
|
|
83
|
-
if (group === undefined) {
|
|
84
|
-
group = { factory, dependencies: [], context };
|
|
85
|
-
this._requestToDepGroup.set(requestKey, group);
|
|
86
|
-
}
|
|
87
|
-
group.dependencies.push(dependency);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Maps an export name to the request providing it.
|
|
92
|
-
* @param {string} id export name
|
|
93
|
-
* @param {string} requestKey request key
|
|
94
|
-
*/
|
|
95
|
-
addForwardId(id, requestKey) {
|
|
96
|
-
this._forwardIdToRequest.set(id, requestKey);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Registers a locally provided export name.
|
|
101
|
-
* @param {string} id export name
|
|
102
|
-
*/
|
|
103
|
-
addTerminal(id) {
|
|
104
|
-
if (this._terminalIds === undefined) this._terminalIds = new Set();
|
|
105
|
-
this._terminalIds.add(id);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Registers a star re-export request key.
|
|
110
|
-
* @param {string} requestKey request key
|
|
111
|
-
*/
|
|
112
|
-
addFallback(requestKey) {
|
|
113
|
-
if (this._fallbackRequests === undefined) {
|
|
114
|
-
this._fallbackRequests = new Set();
|
|
115
|
-
}
|
|
116
|
-
this._fallbackRequests.add(requestKey);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Returns whether nothing is deferred.
|
|
121
|
-
* @returns {boolean} true, when no dependency is deferred
|
|
122
|
-
*/
|
|
123
|
-
isEmpty() {
|
|
124
|
-
return this._requestToDepGroup.size === 0;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Returns the requests of the still-lazy groups.
|
|
129
|
-
* @returns {Iterable<string>} still-lazy requests
|
|
130
|
-
*/
|
|
131
|
-
getLazyRequests() {
|
|
132
|
-
return this._requestToDepGroup.keys();
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Drops the export-name lookups once no group stays deferred; they only serve
|
|
137
|
-
* to find still-deferred groups, so keeping them per module wastes memory.
|
|
138
|
-
*/
|
|
139
|
-
_release() {
|
|
140
|
-
this._forwardIdToRequest.clear();
|
|
141
|
-
this._terminalIds = undefined;
|
|
142
|
-
this._fallbackRequests = undefined;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Removes and returns the groups needed to provide the requested export names.
|
|
147
|
-
* @param {Set<string> | true} forwardedIds requested export names, true for all
|
|
148
|
-
* @returns {DependencyGroup[]} groups that must be processed now
|
|
149
|
-
*/
|
|
150
|
-
request(forwardedIds) {
|
|
151
|
-
/** @type {DependencyGroup[]} */
|
|
152
|
-
const result = [];
|
|
153
|
-
/**
|
|
154
|
-
* @param {DependencyGroup} group taken group
|
|
155
|
-
*/
|
|
156
|
-
const unlazy = (group) => {
|
|
157
|
-
for (const dependency of group.dependencies) {
|
|
158
|
-
dependency.setLazy(false);
|
|
159
|
-
}
|
|
160
|
-
result.push(group);
|
|
161
|
-
};
|
|
162
|
-
if (forwardedIds === true) {
|
|
163
|
-
for (const group of this._requestToDepGroup.values()) unlazy(group);
|
|
164
|
-
this._requestToDepGroup.clear();
|
|
165
|
-
this._release();
|
|
166
|
-
return result;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* @param {string} requestKey request key to take
|
|
170
|
-
*/
|
|
171
|
-
const take = (requestKey) => {
|
|
172
|
-
const group = this._requestToDepGroup.get(requestKey);
|
|
173
|
-
if (group === undefined) return;
|
|
174
|
-
this._requestToDepGroup.delete(requestKey);
|
|
175
|
-
unlazy(group);
|
|
176
|
-
};
|
|
177
|
-
for (const id of forwardedIds) {
|
|
178
|
-
if (this._terminalIds !== undefined && this._terminalIds.has(id)) {
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
const requestKey = this._forwardIdToRequest.get(id);
|
|
182
|
-
if (requestKey !== undefined) {
|
|
183
|
-
take(requestKey);
|
|
184
|
-
} else if (this._fallbackRequests !== undefined) {
|
|
185
|
-
// unknown name: any star re-export may provide it
|
|
186
|
-
for (const fallbackKey of this._fallbackRequests) take(fallbackKey);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
if (this._requestToDepGroup.size === 0) this._release();
|
|
190
|
-
return result;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const esmDependencyCategory = "esm";
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Owns the per side-effect-free module lazy barrel state for a `Compilation`,
|
|
198
|
-
* keeping the deferral bookkeeping out of `Compilation` itself.
|
|
199
|
-
*/
|
|
200
|
-
class LazyBarrelController {
|
|
201
|
-
/**
|
|
202
|
-
* @param {Compilation} compilation the owning compilation
|
|
203
|
-
*/
|
|
204
|
-
constructor(compilation) {
|
|
205
|
-
/** @type {Compilation} */
|
|
206
|
-
this._compilation = compilation;
|
|
207
|
-
/** @type {WeakMap<Module, LazyBarrelState>} */
|
|
208
|
-
this._modules = new WeakMap();
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Releases all per-module deferral state. The last consumer is
|
|
213
|
-
* `FlagDependencyExportsPlugin`'s cache key during `finishModules`, so the
|
|
214
|
-
* bookkeeping is dead weight once sealing starts.
|
|
215
|
-
*/
|
|
216
|
-
clear() {
|
|
217
|
-
this._modules = new WeakMap();
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* requests of the re-export targets `module` still keeps lazy.
|
|
222
|
-
* `FlagDependencyExportsPlugin` folds them into its provided-exports cache
|
|
223
|
-
* key, so a barrel whose built targets differ from a cached run does not
|
|
224
|
-
* reuse that run's stale exports.
|
|
225
|
-
* @param {Module} module the module
|
|
226
|
-
* @returns {Iterable<string> | undefined} still-lazy requests, if any
|
|
227
|
-
*/
|
|
228
|
-
getLazyRequests(module) {
|
|
229
|
-
const factoryMeta = module.factoryMeta;
|
|
230
|
-
if (factoryMeta === undefined || !factoryMeta.sideEffectFree) return;
|
|
231
|
-
const state = this._modules.get(module);
|
|
232
|
-
if (state === undefined) return;
|
|
233
|
-
const info = state.lazyBarrelInfo;
|
|
234
|
-
if (info === undefined || info.isEmpty()) return;
|
|
235
|
-
return info.getLazyRequests();
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Classifies the re-export dependencies of a side-effect-free module (lazy barrel)
|
|
240
|
-
* into deferrable groups and marks the deferred ones.
|
|
241
|
-
* @param {Module} module the module whose dependencies are processed
|
|
242
|
-
* @returns {boolean} true, when some dependencies were deferred
|
|
243
|
-
*/
|
|
244
|
-
classify(module) {
|
|
245
|
-
const modules = this._modules;
|
|
246
|
-
const factoryMeta = module.factoryMeta;
|
|
247
|
-
if (factoryMeta === undefined || !factoryMeta.sideEffectFree) {
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
const dependencies = module.dependencies;
|
|
251
|
-
const dependencyFactories = this._compilation.dependencyFactories;
|
|
252
|
-
/** @type {LazyBarrelInfo | undefined} */
|
|
253
|
-
let info;
|
|
254
|
-
let hasFallback = false;
|
|
255
|
-
for (const dep of dependencies) {
|
|
256
|
-
// TODO remove in webpack 6
|
|
257
|
-
// It may be missing on custom dependency types not extending the base Dependency
|
|
258
|
-
if (!("getLazyUntil" in dep)) continue;
|
|
259
|
-
|
|
260
|
-
const until = dep.getLazyUntil();
|
|
261
|
-
// null (eager) and LAZY_UNTIL_LOCAL (terminal) defer nothing; terminals are
|
|
262
|
-
// only consulted alongside a star re-export, so they are recorded below
|
|
263
|
-
if (until === null || until === Dependency.LAZY_UNTIL_LOCAL) continue;
|
|
264
|
-
// deferrable: setLazy is needed to toggle its deferred state
|
|
265
|
-
if (!("setLazy" in dep)) continue;
|
|
266
|
-
const resourceIdent = dep.getResourceIdentifier();
|
|
267
|
-
if (resourceIdent === null) continue;
|
|
268
|
-
const factory = dependencyFactories.get(
|
|
269
|
-
/** @type {DependencyConstructor} */ (dep.constructor)
|
|
270
|
-
);
|
|
271
|
-
if (factory === undefined) continue;
|
|
272
|
-
const category = dep.category;
|
|
273
|
-
// Match the request grouping key of `processDependencyForResolving`
|
|
274
|
-
const requestKey =
|
|
275
|
-
category === esmDependencyCategory
|
|
276
|
-
? resourceIdent
|
|
277
|
-
: `${category}${resourceIdent}`;
|
|
278
|
-
if (info === undefined) info = new LazyBarrelInfo();
|
|
279
|
-
if (dep.isLazy()) {
|
|
280
|
-
info.addLazy(requestKey, dep, factory, dep.getContext());
|
|
281
|
-
}
|
|
282
|
-
if (until === Dependency.LAZY_UNTIL_ID) {
|
|
283
|
-
info.addForwardId(
|
|
284
|
-
/** @type {string} */ (dep.getLazyName()),
|
|
285
|
-
requestKey
|
|
286
|
-
);
|
|
287
|
-
} else if (until === Dependency.LAZY_UNTIL_FALLBACK) {
|
|
288
|
-
info.addFallback(requestKey);
|
|
289
|
-
hasFallback = true;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
const state = modules.get(module);
|
|
293
|
-
// info is only created once a deferrable target exists, so it is never empty here
|
|
294
|
-
if (info === undefined) {
|
|
295
|
-
if (state !== undefined) modules.delete(module);
|
|
296
|
-
return false;
|
|
297
|
-
}
|
|
298
|
-
// terminals only matter together with a star re-export (to avoid building it
|
|
299
|
-
// for a locally-provided name); skip the extra pass otherwise
|
|
300
|
-
if (hasFallback) {
|
|
301
|
-
for (const dep of dependencies) {
|
|
302
|
-
if (
|
|
303
|
-
"getLazyUntil" in dep &&
|
|
304
|
-
dep.getLazyUntil() === Dependency.LAZY_UNTIL_LOCAL
|
|
305
|
-
) {
|
|
306
|
-
info.addTerminal(/** @type {string} */ (dep.getLazyName()));
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
if (state !== undefined) {
|
|
311
|
-
// barrel classified after its targets were already requested: replay the
|
|
312
|
-
// recorded ids so processDependency un-lazies and builds those targets now
|
|
313
|
-
info.request(state.forwardedIds);
|
|
314
|
-
// stay lazy only while some targets remain deferred
|
|
315
|
-
if (info.isEmpty()) return false;
|
|
316
|
-
state.lazyBarrelInfo = info;
|
|
317
|
-
return true;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
modules.set(module, {
|
|
321
|
-
forwardedIds: new Set(),
|
|
322
|
-
lazyBarrelInfo: info
|
|
323
|
-
});
|
|
324
|
-
|
|
325
|
-
return true;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Requests the export names that `dependencies` need from a lazy barrel and
|
|
330
|
-
* returns the deferred re-export targets that must be built now. Records the
|
|
331
|
-
* request when the barrel's dependencies were not classified yet.
|
|
332
|
-
* @param {Module} module the resolved module
|
|
333
|
-
* @param {Dependency[]} dependencies the dependencies that resolved to the module
|
|
334
|
-
* @returns {UnlazyDependencyInfo[] | undefined} items to process, if any
|
|
335
|
-
*/
|
|
336
|
-
request(module, dependencies) {
|
|
337
|
-
// state only exists for side-effect-free modules, so a non-side-effect-free
|
|
338
|
-
// module never has state — skip the WeakMap lookup entirely for it
|
|
339
|
-
const factoryMeta = module.factoryMeta;
|
|
340
|
-
if (factoryMeta === undefined || !factoryMeta.sideEffectFree) return;
|
|
341
|
-
const modules = this._modules;
|
|
342
|
-
const state = modules.get(module);
|
|
343
|
-
|
|
344
|
-
if (state === undefined) {
|
|
345
|
-
const forwardedIds = getForwardedIds(dependencies);
|
|
346
|
-
if (forwardedIds !== true && forwardedIds.size === 0) return;
|
|
347
|
-
modules.set(module, {
|
|
348
|
-
forwardedIds,
|
|
349
|
-
lazyBarrelInfo: undefined
|
|
350
|
-
});
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
const forwardedIds = getForwardedIds(dependencies);
|
|
355
|
-
if (forwardedIds !== true && forwardedIds.size === 0) return;
|
|
356
|
-
if (state.forwardedIds !== true) {
|
|
357
|
-
if (forwardedIds === true) state.forwardedIds = true;
|
|
358
|
-
else for (const id of forwardedIds) state.forwardedIds.add(id);
|
|
359
|
-
}
|
|
360
|
-
const info = state.lazyBarrelInfo;
|
|
361
|
-
// Pending requests will be replayed during `classify` later
|
|
362
|
-
if (info === undefined) return;
|
|
363
|
-
const groups = info.request(forwardedIds);
|
|
364
|
-
// drop the per-module state once every deferred target has been built
|
|
365
|
-
if (info.isEmpty()) state.lazyBarrelInfo = undefined;
|
|
366
|
-
if (groups.length === 0) return;
|
|
367
|
-
return groups.map((group) => ({
|
|
368
|
-
factory: group.factory,
|
|
369
|
-
dependencies: group.dependencies,
|
|
370
|
-
context: group.context,
|
|
371
|
-
originModule: module
|
|
372
|
-
}));
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Queues the deferred dependency groups of a lazy barrel requested by a single dependency.
|
|
377
|
-
* @param {Module} module the resolved module of the dependency
|
|
378
|
-
* @param {Dependency} dependency the requesting dependency
|
|
379
|
-
* @param {{ factory: ModuleFactory, dependencies: Dependency[], context: string | undefined, originModule: Module | null }[]} sortedDependencies item list to append to
|
|
380
|
-
*/
|
|
381
|
-
unlazyForDependency(module, dependency, sortedDependencies) {
|
|
382
|
-
const unlazyItems = this.request(module, [dependency]);
|
|
383
|
-
if (unlazyItems === undefined) return;
|
|
384
|
-
for (const item of unlazyItems) sortedDependencies.push(item);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
module.exports = LazyBarrelController;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
const makeSerializable = require("../util/makeSerializable");
|
|
9
|
-
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
|
10
|
-
const { ImportPhase } = require("./ImportPhase");
|
|
11
|
-
const NullDependency = require("./NullDependency");
|
|
12
|
-
|
|
13
|
-
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
|
|
14
|
-
/**
|
|
15
|
-
* Creates an instance of HarmonyAcceptImportDependency.
|
|
16
|
-
* @param {string} request the request string
|
|
17
|
-
*/
|
|
18
|
-
constructor(request) {
|
|
19
|
-
super(request, Infinity, ImportPhase.Evaluation);
|
|
20
|
-
/** @type {boolean} */
|
|
21
|
-
this.weak = true;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get type() {
|
|
25
|
-
return "harmony accept";
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
makeSerializable(
|
|
30
|
-
HarmonyAcceptImportDependency,
|
|
31
|
-
"webpack/lib/dependencies/HarmonyAcceptImportDependency"
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
HarmonyAcceptImportDependency.Template =
|
|
35
|
-
/** @type {typeof HarmonyImportDependency.Template} */ (
|
|
36
|
-
NullDependency.Template
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
module.exports = HarmonyAcceptImportDependency;
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Tobias Koppers @sokra
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
const {
|
|
9
|
-
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
10
|
-
JAVASCRIPT_MODULE_TYPE_ESM
|
|
11
|
-
} = require("../ModuleTypeConstants");
|
|
12
|
-
const CreateRequireParserPlugin = require("./CreateRequireParserPlugin");
|
|
13
|
-
const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
|
|
14
|
-
const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
|
|
15
|
-
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
|
16
|
-
const HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
|
|
17
|
-
const HarmonyEvaluatedImportSpecifierDependency = require("./HarmonyEvaluatedImportSpecifierDependency");
|
|
18
|
-
const HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
|
|
19
|
-
const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
|
|
20
|
-
const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
|
|
21
|
-
const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
|
|
22
|
-
const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
|
|
23
|
-
const HarmonyImportBareSideEffectDependency = require("./HarmonyImportBareSideEffectDependency");
|
|
24
|
-
const HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
|
|
25
|
-
const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
|
|
26
|
-
const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
|
|
27
|
-
|
|
28
|
-
const HarmonyTopLevelThisParserPlugin = require("./HarmonyTopLevelThisParserPlugin");
|
|
29
|
-
const TopLevelAwaitDependency = require("./TopLevelAwaitDependency");
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @import {
|
|
33
|
-
* JavascriptParserOptions
|
|
34
|
-
* } from "../../declarations/WebpackOptions"
|
|
35
|
-
*/
|
|
36
|
-
/** @import Compiler from "../Compiler" */
|
|
37
|
-
/** @import Parser from "../javascript/JavascriptParser" */
|
|
38
|
-
/** @import { BuildInfo } from "../Module" */
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Defines the harmony modules plugin options type used by this module.
|
|
42
|
-
* @typedef {object} HarmonyModulesPluginOptions
|
|
43
|
-
* @property {boolean=} deferImport
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
const PLUGIN_NAME = "HarmonyModulesPlugin";
|
|
47
|
-
|
|
48
|
-
class HarmonyModulesPlugin {
|
|
49
|
-
/**
|
|
50
|
-
* Creates an instance of HarmonyModulesPlugin.
|
|
51
|
-
* @param {HarmonyModulesPluginOptions} options options
|
|
52
|
-
*/
|
|
53
|
-
constructor(options) {
|
|
54
|
-
/** @type {HarmonyModulesPluginOptions} */
|
|
55
|
-
this.options = options;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Applies the plugin by registering its hooks on the compiler.
|
|
60
|
-
* @param {Compiler} compiler the compiler instance
|
|
61
|
-
* @returns {void}
|
|
62
|
-
*/
|
|
63
|
-
apply(compiler) {
|
|
64
|
-
compiler.hooks.compilation.tap(
|
|
65
|
-
PLUGIN_NAME,
|
|
66
|
-
(compilation, { normalModuleFactory }) => {
|
|
67
|
-
compilation.dependencyTemplates.set(
|
|
68
|
-
HarmonyCompatibilityDependency,
|
|
69
|
-
new HarmonyCompatibilityDependency.Template()
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
compilation.dependencyTemplates.set(
|
|
73
|
-
TopLevelAwaitDependency,
|
|
74
|
-
new TopLevelAwaitDependency.Template()
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
compilation.dependencyFactories.set(
|
|
78
|
-
HarmonyImportSideEffectDependency,
|
|
79
|
-
normalModuleFactory
|
|
80
|
-
);
|
|
81
|
-
compilation.dependencyTemplates.set(
|
|
82
|
-
HarmonyImportSideEffectDependency,
|
|
83
|
-
new HarmonyImportSideEffectDependency.Template()
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
compilation.dependencyFactories.set(
|
|
87
|
-
HarmonyImportBareSideEffectDependency,
|
|
88
|
-
normalModuleFactory
|
|
89
|
-
);
|
|
90
|
-
compilation.dependencyTemplates.set(
|
|
91
|
-
HarmonyImportBareSideEffectDependency,
|
|
92
|
-
new HarmonyImportBareSideEffectDependency.Template()
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
compilation.dependencyFactories.set(
|
|
96
|
-
HarmonyImportSpecifierDependency,
|
|
97
|
-
normalModuleFactory
|
|
98
|
-
);
|
|
99
|
-
compilation.dependencyTemplates.set(
|
|
100
|
-
HarmonyImportSpecifierDependency,
|
|
101
|
-
new HarmonyImportSpecifierDependency.Template()
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
compilation.dependencyFactories.set(
|
|
105
|
-
HarmonyEvaluatedImportSpecifierDependency,
|
|
106
|
-
normalModuleFactory
|
|
107
|
-
);
|
|
108
|
-
compilation.dependencyTemplates.set(
|
|
109
|
-
HarmonyEvaluatedImportSpecifierDependency,
|
|
110
|
-
new HarmonyEvaluatedImportSpecifierDependency.Template()
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
compilation.dependencyTemplates.set(
|
|
114
|
-
HarmonyExportHeaderDependency,
|
|
115
|
-
new HarmonyExportHeaderDependency.Template()
|
|
116
|
-
);
|
|
117
|
-
|
|
118
|
-
compilation.dependencyTemplates.set(
|
|
119
|
-
HarmonyExportExpressionDependency,
|
|
120
|
-
new HarmonyExportExpressionDependency.Template()
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
compilation.dependencyTemplates.set(
|
|
124
|
-
HarmonyExportSpecifierDependency,
|
|
125
|
-
new HarmonyExportSpecifierDependency.Template()
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
compilation.dependencyFactories.set(
|
|
129
|
-
HarmonyExportImportedSpecifierDependency,
|
|
130
|
-
normalModuleFactory
|
|
131
|
-
);
|
|
132
|
-
compilation.dependencyTemplates.set(
|
|
133
|
-
HarmonyExportImportedSpecifierDependency,
|
|
134
|
-
new HarmonyExportImportedSpecifierDependency.Template()
|
|
135
|
-
);
|
|
136
|
-
|
|
137
|
-
compilation.dependencyTemplates.set(
|
|
138
|
-
HarmonyAcceptDependency,
|
|
139
|
-
new HarmonyAcceptDependency.Template()
|
|
140
|
-
);
|
|
141
|
-
|
|
142
|
-
compilation.dependencyFactories.set(
|
|
143
|
-
HarmonyAcceptImportDependency,
|
|
144
|
-
normalModuleFactory
|
|
145
|
-
);
|
|
146
|
-
compilation.dependencyTemplates.set(
|
|
147
|
-
HarmonyAcceptImportDependency,
|
|
148
|
-
new HarmonyAcceptImportDependency.Template()
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Handles the hook callback for this code path.
|
|
153
|
-
* @param {Parser} parser parser parser
|
|
154
|
-
* @param {JavascriptParserOptions} parserOptions parserOptions
|
|
155
|
-
* @returns {void}
|
|
156
|
-
*/
|
|
157
|
-
const handler = (parser, parserOptions) => {
|
|
158
|
-
// TODO webpack 6: rename harmony to esm or module
|
|
159
|
-
if (parserOptions.harmony !== undefined && !parserOptions.harmony) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (parserOptions.specNamespaceObject) {
|
|
164
|
-
// Recorded on the module, because an importer asks the module it
|
|
165
|
-
// imports whether its namespace is a spec exotic object.
|
|
166
|
-
parser.hooks.program.tap(PLUGIN_NAME, () => {
|
|
167
|
-
/** @type {BuildInfo} */
|
|
168
|
-
(parser.state.module.buildInfo).specNamespaceObject = true;
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
new HarmonyDetectionParserPlugin().apply(parser);
|
|
173
|
-
new HarmonyImportDependencyParserPlugin(parserOptions).apply(parser);
|
|
174
|
-
new HarmonyExportDependencyParserPlugin(parserOptions).apply(parser);
|
|
175
|
-
new HarmonyTopLevelThisParserPlugin().apply(parser);
|
|
176
|
-
if (parserOptions.createRequire) {
|
|
177
|
-
new CreateRequireParserPlugin(parserOptions).apply(parser);
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
normalModuleFactory.hooks.parser
|
|
182
|
-
.for(JAVASCRIPT_MODULE_TYPE_AUTO)
|
|
183
|
-
.tap(PLUGIN_NAME, handler);
|
|
184
|
-
normalModuleFactory.hooks.parser
|
|
185
|
-
.for(JAVASCRIPT_MODULE_TYPE_ESM)
|
|
186
|
-
.tap(PLUGIN_NAME, handler);
|
|
187
|
-
}
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
module.exports = HarmonyModulesPlugin;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
-
Author Natsu @xiaoxiaojx
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
const { updateHashForEntryStartup } = require("./StartupHelpers");
|
|
9
|
-
|
|
10
|
-
/** @import ChunkGraph from "../ChunkGraph" */
|
|
11
|
-
/** @import Module from "../Module" */
|
|
12
|
-
/** @import Chunk from "../Chunk" */
|
|
13
|
-
/** @import Entrypoint from "../Entrypoint" */
|
|
14
|
-
/** @import Hash from "../util/Hash" */
|
|
15
|
-
/** @import { ChunkHashContext } from "../Compilation" */
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Returns } Object containing chunk entries and runtime chunk.
|
|
19
|
-
* @param {Chunk} chunk The chunk to get information for
|
|
20
|
-
* @param {ChunkGraph} chunkGraph The chunk graph containing the chunk
|
|
21
|
-
* @returns {{ entries: [Module, Entrypoint | undefined][], runtimeChunk: Chunk | null }} Object containing chunk entries and runtime chunk
|
|
22
|
-
*/
|
|
23
|
-
function getChunkInfo(chunk, chunkGraph) {
|
|
24
|
-
const entries = [
|
|
25
|
-
...chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)
|
|
26
|
-
];
|
|
27
|
-
const runtimeChunk =
|
|
28
|
-
entries.length > 0
|
|
29
|
-
? /** @type {Entrypoint[][]} */
|
|
30
|
-
(entries)[0][1].getRuntimeChunk()
|
|
31
|
-
: null;
|
|
32
|
-
|
|
33
|
-
return {
|
|
34
|
-
entries,
|
|
35
|
-
runtimeChunk
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Creates a chunk hash handler
|
|
41
|
-
* @param {string} name The name of the chunk
|
|
42
|
-
* @returns {(chunk: Chunk, hash: Hash, { chunkGraph }: ChunkHashContext) => void} The chunk hash handler
|
|
43
|
-
*/
|
|
44
|
-
function createChunkHashHandler(name) {
|
|
45
|
-
/**
|
|
46
|
-
* Processes the provided chunk.
|
|
47
|
-
* @param {Chunk} chunk The chunk to get information for
|
|
48
|
-
* @param {Hash} hash The hash to update
|
|
49
|
-
* @param {ChunkHashContext} chunkHashContext The chunk hash context
|
|
50
|
-
* @returns {void}
|
|
51
|
-
*/
|
|
52
|
-
return (chunk, hash, { chunkGraph }) => {
|
|
53
|
-
if (chunk.hasRuntime()) return;
|
|
54
|
-
const { entries, runtimeChunk } = getChunkInfo(chunk, chunkGraph);
|
|
55
|
-
hash.update(name);
|
|
56
|
-
hash.update("1");
|
|
57
|
-
if (runtimeChunk && runtimeChunk.hash) {
|
|
58
|
-
// WHY: any change to the runtime chunk must move this hash, and its
|
|
59
|
-
// internal implementation is not ours to depend on or inspect — the import
|
|
60
|
-
// names its hashed filename:
|
|
61
|
-
// import __webpack_require__ from "./runtime-main.e9400aee33633a3973bd.js";
|
|
62
|
-
// https://github.com/webpack/webpack/issues/19439
|
|
63
|
-
hash.update(runtimeChunk.hash);
|
|
64
|
-
}
|
|
65
|
-
updateHashForEntryStartup(hash, chunkGraph, entries, chunk);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
module.exports = {
|
|
70
|
-
createChunkHashHandler,
|
|
71
|
-
getChunkInfo
|
|
72
|
-
};
|