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
|
@@ -6,27 +6,30 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { ConcatSource } = require("webpack-sources");
|
|
9
|
-
const { UsageState } = require("../ExportsInfo");
|
|
10
|
-
const ExternalModule = require("../ExternalModule");
|
|
11
|
-
const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
|
|
12
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
13
|
-
const Template = require("../Template");
|
|
14
|
-
const HarmonyExportExpressionDependency = require("../dependencies/HarmonyExportExpressionDependency");
|
|
15
|
-
const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
|
|
16
|
-
const HarmonyExportSpecifierDependency = require("../dependencies/HarmonyExportSpecifierDependency");
|
|
17
9
|
const ExternalStarReexportError = require("../errors/ExternalStarReexportError");
|
|
10
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
11
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
18
12
|
const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
const {
|
|
14
|
+
getMergedExports,
|
|
15
|
+
mergedEntryModules
|
|
16
|
+
} = require("../javascript/MergedEntryExports");
|
|
17
|
+
const { JAVASCRIPT_TYPE } = require("../module/ModuleSourceTypeConstants");
|
|
18
|
+
const { isInlinedUsedName } = require("../optimize/InlineExports");
|
|
19
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
20
|
+
const Template = require("../template/Template");
|
|
21
|
+
const { someInIterable } = require("../util/IterableHelpers");
|
|
22
|
+
const { renameIdentifiers } = require("../util/concatenate");
|
|
22
23
|
const {
|
|
23
24
|
RESERVED_IDENTIFIER,
|
|
24
25
|
SAFE_IDENTIFIER,
|
|
25
26
|
propertyAccess
|
|
26
27
|
} = require("../util/property");
|
|
27
|
-
const { getEntryRuntime,
|
|
28
|
+
const { getEntryRuntime, intersectRuntime } = require("../util/runtime");
|
|
28
29
|
const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
29
30
|
|
|
31
|
+
/** @import ExternalModule from "../externals/ExternalModule" */
|
|
32
|
+
/** @import { InlinedUsedName } from "../optimize/InlineExports" */
|
|
30
33
|
/** @import { Source } from "webpack-sources" */
|
|
31
34
|
/**
|
|
32
35
|
* @import {
|
|
@@ -35,18 +38,17 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
35
38
|
* LibraryExport
|
|
36
39
|
* } from "../../declarations/WebpackOptions"
|
|
37
40
|
*/
|
|
38
|
-
/** @import
|
|
41
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
39
42
|
/** @import Compilation from "../Compilation" */
|
|
40
43
|
/** @import Compiler from "../Compiler" */
|
|
41
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
42
|
-
/** @import Module
|
|
44
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
45
|
+
/** @import Module from "../module/Module" */
|
|
43
46
|
/**
|
|
44
47
|
* @import {
|
|
45
48
|
* StartupRenderContext,
|
|
46
49
|
* ModuleRenderContext
|
|
47
50
|
* } from "../javascript/JavascriptModulesPlugin"
|
|
48
51
|
*/
|
|
49
|
-
/** @import { ImportAttributes } from "../javascript/JavascriptParser" */
|
|
50
52
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
51
53
|
/**
|
|
52
54
|
* @import {
|
|
@@ -83,37 +85,19 @@ const PLUGIN_NAME = "ModuleLibraryPlugin";
|
|
|
83
85
|
const libraryEntryModules = new WeakMap();
|
|
84
86
|
|
|
85
87
|
/**
|
|
86
|
-
* Whether every export the
|
|
87
|
-
*
|
|
88
|
-
* A re-export or a renamed import is not: `renderStartup` reads those back off the
|
|
89
|
-
* object, and `treatAsCommonJs` hands the object out as the default export.
|
|
88
|
+
* Whether the library reads every export of the entry off its exports object, never
|
|
89
|
+
* binding one to a declaration of the inlined body, so no definition can be left out.
|
|
90
90
|
* @param {Module} module the entry module
|
|
91
91
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
92
|
-
* @returns {boolean} true when the
|
|
92
|
+
* @returns {boolean} true when the entry has no export the library exposes natively
|
|
93
93
|
*/
|
|
94
|
-
const
|
|
94
|
+
const noNativeExports = (module, moduleGraph) => {
|
|
95
95
|
const buildMeta = /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta);
|
|
96
|
-
if (buildMeta && buildMeta.treatAsCommonJs) return
|
|
96
|
+
if (buildMeta && buildMeta.treatAsCommonJs) return true;
|
|
97
97
|
// A top-level `await` wraps the body in `__webpack_require__.a`, and the
|
|
98
98
|
// definitions read declarations inside that wrapper — re-emitting them after the
|
|
99
99
|
// module would put them out of scope.
|
|
100
|
-
|
|
101
|
-
const topLevelDeclarations =
|
|
102
|
-
module.buildInfo && module.buildInfo.topLevelDeclarations;
|
|
103
|
-
if (!topLevelDeclarations) return false;
|
|
104
|
-
for (const dep of module.dependencies) {
|
|
105
|
-
// A re-export or an `export default` has no declaration of its own to bind to,
|
|
106
|
-
// so `renderStartup` reads its value back off the exports object.
|
|
107
|
-
if (
|
|
108
|
-
dep instanceof HarmonyExportImportedSpecifierDependency ||
|
|
109
|
-
dep instanceof HarmonyExportExpressionDependency
|
|
110
|
-
) {
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
if (!(dep instanceof HarmonyExportSpecifierDependency)) continue;
|
|
114
|
-
if (!topLevelDeclarations.has(dep.id)) return false;
|
|
115
|
-
}
|
|
116
|
-
return true;
|
|
100
|
+
return moduleGraph.isAsync(module);
|
|
117
101
|
};
|
|
118
102
|
|
|
119
103
|
/**
|
|
@@ -125,18 +109,6 @@ const definesOnlyNativeExports = (module, moduleGraph) => {
|
|
|
125
109
|
const toExportName = (name) =>
|
|
126
110
|
SAFE_IDENTIFIER.test(name) ? name : JSON.stringify(name);
|
|
127
111
|
|
|
128
|
-
/**
|
|
129
|
-
* Renders the import attributes of a reexport in the syntax the author wrote,
|
|
130
|
-
* since a legacy `assert` clause and a `with` clause are not interchangeable.
|
|
131
|
-
* @param {ImportAttributes | undefined} attributes the import attributes
|
|
132
|
-
* @returns {string} the attributes clause, empty when there are none
|
|
133
|
-
*/
|
|
134
|
-
const toAttributesClause = (attributes) => {
|
|
135
|
-
if (!attributes) return "";
|
|
136
|
-
const { _isLegacyAssert: isLegacyAssert, ...values } = attributes;
|
|
137
|
-
return ` ${isLegacyAssert ? "assert" : "with"} ${JSON.stringify(values)}`;
|
|
138
|
-
};
|
|
139
|
-
|
|
140
112
|
/**
|
|
141
113
|
* Whether the export name can also be used as the declared binding name.
|
|
142
114
|
* @param {string} name export name
|
|
@@ -171,76 +143,33 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
171
143
|
super.apply(compiler);
|
|
172
144
|
|
|
173
145
|
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
174
|
-
const { onDemandExportsGeneration } =
|
|
175
|
-
ConcatenatedModule.getCompilationHooks(compilation);
|
|
176
146
|
const javascriptHooks =
|
|
177
147
|
JavascriptModulesPlugin.getCompilationHooks(compilation);
|
|
178
|
-
onDemandExportsGeneration.tap(
|
|
179
|
-
PLUGIN_NAME,
|
|
180
|
-
(module, runtimes, source, finalName) => {
|
|
181
|
-
/** @type {BuildMeta} */
|
|
182
|
-
const buildMeta = module.buildMeta || (module.buildMeta = {});
|
|
183
|
-
|
|
184
|
-
/** @type {BuildMeta["exportsSourceByRuntime"]} */
|
|
185
|
-
const exportsSourceByRuntime =
|
|
186
|
-
buildMeta.exportsSourceByRuntime ||
|
|
187
|
-
(buildMeta.exportsSourceByRuntime = new Map());
|
|
188
|
-
|
|
189
|
-
/** @type {BuildMeta["exportsFinalNameByRuntime"]} */
|
|
190
|
-
const exportsFinalNameByRuntime =
|
|
191
|
-
buildMeta.exportsFinalNameByRuntime ||
|
|
192
|
-
(buildMeta.exportsFinalNameByRuntime = new Map());
|
|
193
|
-
|
|
194
|
-
for (const runtime of runtimes) {
|
|
195
|
-
const key = getRuntimeKey(runtime);
|
|
196
|
-
exportsSourceByRuntime.set(key, source);
|
|
197
|
-
exportsFinalNameByRuntime.set(key, finalName);
|
|
198
|
-
}
|
|
199
148
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const buildMeta = module.buildMeta || (module.buildMeta = {});
|
|
215
|
-
const key = getRuntimeKey(runtime);
|
|
216
|
-
if (placeAtEnd) {
|
|
217
|
-
const bindings =
|
|
218
|
-
buildMeta.exportsBindingSourceByRuntime ||
|
|
219
|
-
(buildMeta.exportsBindingSourceByRuntime = new Map());
|
|
220
|
-
bindings.set(key, source);
|
|
221
|
-
} else {
|
|
222
|
-
const sources =
|
|
223
|
-
buildMeta.exportsSourceByRuntime ||
|
|
224
|
-
(buildMeta.exportsSourceByRuntime = new Map());
|
|
225
|
-
// The `__esModule` marker and the definitions both land here, so
|
|
226
|
-
// keep whichever arrived first rather than replacing it.
|
|
227
|
-
const before = sources.get(key);
|
|
228
|
-
sources.set(key, before ? `${before}${source}` : source);
|
|
149
|
+
compilation.hooks.beforeCodeGeneration.tap(PLUGIN_NAME, () => {
|
|
150
|
+
const entries = libraryEntryModules.get(compilation);
|
|
151
|
+
if (entries === undefined) return;
|
|
152
|
+
const { moduleGraph } = compilation;
|
|
153
|
+
for (const { dependencies } of compilation.entries.values()) {
|
|
154
|
+
for (const dep of dependencies) {
|
|
155
|
+
const module = dep && moduleGraph.getModule(dep);
|
|
156
|
+
if (!module) continue;
|
|
157
|
+
const root = module.getRootModule();
|
|
158
|
+
if (!entries.has(root)) continue;
|
|
159
|
+
if (root === module && noNativeExports(module, moduleGraph)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
moduleGraph.getMeta(module).onDemandExports = true;
|
|
229
163
|
}
|
|
230
|
-
return true;
|
|
231
164
|
}
|
|
232
|
-
);
|
|
165
|
+
});
|
|
233
166
|
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
// module is wrapped in an IIFE/factory. When the entry is
|
|
237
|
-
// inlined directly, the stashed source — and the
|
|
238
|
-
// `definePropertyGetters` / `requireScope` runtime helpers it
|
|
239
|
-
// pulled in — never make it into the output. Drop those helpers
|
|
240
|
-
// from the chunk's set so the bundle stays clean.
|
|
167
|
+
// The stashed exports source is re-emitted only where the entry is wrapped;
|
|
168
|
+
// inlined directly, the helpers it pulled in have no reader and can go.
|
|
241
169
|
compilation.hooks.additionalChunkRuntimeRequirements.tap(
|
|
242
170
|
PLUGIN_NAME,
|
|
243
171
|
(chunk, set, { chunkGraph, codeGenerationResults }) => {
|
|
172
|
+
const { moduleGraph, runtimeTemplate } = compilation;
|
|
244
173
|
if (!set.has(RuntimeGlobals.definePropertyGetters)) return;
|
|
245
174
|
if (chunkGraph.getNumberOfEntryModules(chunk) !== 1) return;
|
|
246
175
|
if (
|
|
@@ -255,22 +184,58 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
255
184
|
if (javascriptHooks.inlineInRuntimeBailout.isUsed()) return;
|
|
256
185
|
|
|
257
186
|
const [module] = chunkGraph.getChunkEntryModulesIterable(chunk);
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
187
|
+
if (chunk.hasRuntime()) {
|
|
188
|
+
// The startup inlines the entry only where nothing else loads with
|
|
189
|
+
// it: another chunk of the entrypoint delays the execution, and a
|
|
190
|
+
// module reading the entry needs it in the registry.
|
|
191
|
+
for (const [
|
|
192
|
+
,
|
|
193
|
+
entrypoint
|
|
194
|
+
] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) {
|
|
195
|
+
if (entrypoint && entrypoint.chunks.some((c) => c !== chunk)) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (
|
|
200
|
+
someInIterable(
|
|
201
|
+
moduleGraph.getIncomingConnectionsByOriginModule(module),
|
|
202
|
+
([originModule, connections]) =>
|
|
203
|
+
originModule &&
|
|
204
|
+
originModule !== module &&
|
|
205
|
+
connections.some((c) => c.isTargetActive(chunk.runtime)) &&
|
|
206
|
+
someInIterable(
|
|
207
|
+
chunkGraph.getModuleRuntimes(originModule),
|
|
208
|
+
(runtime) =>
|
|
209
|
+
intersectRuntime(runtime, chunk.runtime) !== undefined
|
|
210
|
+
)
|
|
211
|
+
)
|
|
212
|
+
) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
} else if (
|
|
216
|
+
// A chunk whose runtime is elsewhere lifts its entry to the top
|
|
217
|
+
// level under the same conditions, and renders it into the module
|
|
218
|
+
// registry otherwise.
|
|
219
|
+
JavascriptModulesPlugin._getEsmEntryModuleToInline({
|
|
220
|
+
chunk,
|
|
221
|
+
chunkGraph,
|
|
222
|
+
moduleGraph,
|
|
223
|
+
runtimeTemplate,
|
|
224
|
+
codeGenerationResults
|
|
225
|
+
}) !== module
|
|
226
|
+
) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
268
229
|
const codeGenResult = codeGenerationResults.get(
|
|
269
230
|
module,
|
|
270
231
|
chunk.runtime
|
|
271
232
|
);
|
|
272
|
-
const
|
|
273
|
-
|
|
233
|
+
const { data } = codeGenResult;
|
|
234
|
+
const takenOver =
|
|
235
|
+
data !== undefined &&
|
|
236
|
+
(data.has("exportsSource") || data.has("exportsBindingSource"));
|
|
237
|
+
if (!takenOver) return;
|
|
238
|
+
const jsSource = codeGenResult.sources.get("javascript");
|
|
274
239
|
if (
|
|
275
240
|
jsSource &&
|
|
276
241
|
String(jsSource.source()).includes(`${RuntimeGlobals.require}.`)
|
|
@@ -289,45 +254,32 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
289
254
|
}
|
|
290
255
|
}
|
|
291
256
|
|
|
292
|
-
// The
|
|
293
|
-
//
|
|
294
|
-
// runtime chunk, and whatever `splitChunks` moved out of the entry.
|
|
295
|
-
/** @type {Set<Chunk>} */
|
|
296
|
-
const siblings = new Set([chunk]);
|
|
297
|
-
for (const [
|
|
298
|
-
,
|
|
299
|
-
entrypoint
|
|
300
|
-
] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) {
|
|
301
|
-
if (!entrypoint) continue;
|
|
302
|
-
for (const sibling of entrypoint.chunks) siblings.add(sibling);
|
|
303
|
-
}
|
|
304
|
-
|
|
257
|
+
// The entrypoint loads as this chunk alone, so what still needs the
|
|
258
|
+
// helpers is whatever else it holds beside the entry.
|
|
305
259
|
let otherNeedsDefine = false;
|
|
306
260
|
let otherNeedsNamespaceObject = false;
|
|
307
261
|
let otherNeedsExports = false;
|
|
308
262
|
let otherNeedsRequireScope = false;
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
otherNeedsRequireScope = true;
|
|
328
|
-
}
|
|
329
|
-
if (otherNeedsDefine) break outer;
|
|
263
|
+
for (const m of chunkGraph.getChunkModulesIterable(chunk)) {
|
|
264
|
+
if (m === module) continue;
|
|
265
|
+
const requirements = chunkGraph.getModuleRuntimeRequirements(
|
|
266
|
+
m,
|
|
267
|
+
chunk.runtime
|
|
268
|
+
);
|
|
269
|
+
if (!requirements) continue;
|
|
270
|
+
if (requirements.has(RuntimeGlobals.definePropertyGetters)) {
|
|
271
|
+
otherNeedsDefine = true;
|
|
272
|
+
}
|
|
273
|
+
if (requirements.has(RuntimeGlobals.makeNamespaceObject)) {
|
|
274
|
+
otherNeedsNamespaceObject = true;
|
|
275
|
+
}
|
|
276
|
+
if (requirements.has(RuntimeGlobals.exports)) {
|
|
277
|
+
otherNeedsExports = true;
|
|
278
|
+
}
|
|
279
|
+
if (requirements.has(RuntimeGlobals.requireScope)) {
|
|
280
|
+
otherNeedsRequireScope = true;
|
|
330
281
|
}
|
|
282
|
+
if (otherNeedsDefine) break;
|
|
331
283
|
}
|
|
332
284
|
|
|
333
285
|
if (otherNeedsDefine) return;
|
|
@@ -414,7 +366,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
414
366
|
|
|
415
367
|
// Only handle star-reexport statement
|
|
416
368
|
if (
|
|
417
|
-
|
|
369
|
+
dep === null ||
|
|
370
|
+
!isDependencyKind(dep, "esm-reexport") ||
|
|
418
371
|
dep.name !== null
|
|
419
372
|
) {
|
|
420
373
|
continue;
|
|
@@ -428,7 +381,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
428
381
|
) {
|
|
429
382
|
continue;
|
|
430
383
|
}
|
|
431
|
-
if (importedModule
|
|
384
|
+
if (importedModule.is("external")) {
|
|
432
385
|
const request = importedModule.getResolvedRequest();
|
|
433
386
|
if (Array.isArray(request) && request.length > 1) {
|
|
434
387
|
unsupportedExternals.add(importedModule);
|
|
@@ -472,6 +425,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
472
425
|
* @param {Module} module module
|
|
473
426
|
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
474
427
|
* @param {RuntimeSpec} runtime chunk runtime
|
|
428
|
+
* @param {CodeGenerationResults} codeGenerationResults the code generation results
|
|
475
429
|
* @param {[string, string][]} exports exports
|
|
476
430
|
* @param {Set<string>} alreadyRenderedExports already rendered exports
|
|
477
431
|
* @returns {ConcatSource} source with null provided exports
|
|
@@ -481,6 +435,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
481
435
|
module,
|
|
482
436
|
moduleGraph,
|
|
483
437
|
runtime,
|
|
438
|
+
codeGenerationResults,
|
|
484
439
|
exports,
|
|
485
440
|
alreadyRenderedExports
|
|
486
441
|
) {
|
|
@@ -504,7 +459,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
504
459
|
|
|
505
460
|
// Only handle star-reexport statement
|
|
506
461
|
if (
|
|
507
|
-
dep
|
|
462
|
+
dep !== null &&
|
|
463
|
+
isDependencyKind(dep, "esm-reexport") &&
|
|
508
464
|
dep.name === null
|
|
509
465
|
) {
|
|
510
466
|
const importedModule = connection.resolvedModule;
|
|
@@ -518,21 +474,15 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
518
474
|
importedModuleExportsInfo._otherExportsInfo.provided === null
|
|
519
475
|
) {
|
|
520
476
|
// Handle export * from 'external'
|
|
521
|
-
if (importedModule
|
|
522
|
-
const
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
: undefined;
|
|
531
|
-
if (specifier !== undefined) {
|
|
532
|
-
externalReexports.add(
|
|
533
|
-
`export * from ${toJsStringLiteral(specifier)}${toAttributesClause(dep.attributes)};\n`
|
|
534
|
-
);
|
|
535
|
-
}
|
|
477
|
+
if (importedModule.is("external")) {
|
|
478
|
+
const from = codeGenerationResults.has(importedModule, runtime)
|
|
479
|
+
? codeGenerationResults.getData(
|
|
480
|
+
importedModule,
|
|
481
|
+
runtime,
|
|
482
|
+
"externalReexport"
|
|
483
|
+
)
|
|
484
|
+
: undefined;
|
|
485
|
+
if (from) externalReexports.add(`export * ${from};\n`);
|
|
536
486
|
} else if (!visitedReexportModules.has(importedModule)) {
|
|
537
487
|
visitedReexportModules.add(importedModule);
|
|
538
488
|
resolveDynamicStarReexport(importedModule, true);
|
|
@@ -568,7 +518,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
568
518
|
for (const [origin, used] of unknownProvidedExports) {
|
|
569
519
|
exports.push([
|
|
570
520
|
origin,
|
|
571
|
-
used
|
|
521
|
+
isInlinedUsedName(used)
|
|
572
522
|
? used.render(
|
|
573
523
|
Template.toNormalComment(
|
|
574
524
|
`inlined export ${propertyAccess([origin])}`
|
|
@@ -593,12 +543,18 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
593
543
|
const {
|
|
594
544
|
moduleGraph,
|
|
595
545
|
chunk,
|
|
546
|
+
chunkGraph,
|
|
596
547
|
codeGenerationResults,
|
|
597
548
|
inlined,
|
|
598
549
|
inlinedInIIFE,
|
|
550
|
+
exportsAwaited,
|
|
599
551
|
runtimeTemplate
|
|
600
552
|
} = renderContext;
|
|
601
553
|
let result = new ConcatSource(source);
|
|
554
|
+
// A merged entry exposes what its modules expose together, so the ESM
|
|
555
|
+
// export list is theirs rather than the last module's alone.
|
|
556
|
+
const mergedModules = mergedEntryModules(chunk, chunkGraph, compilation);
|
|
557
|
+
const exportedModules = mergedModules || [module];
|
|
602
558
|
const exportInfos = options.export
|
|
603
559
|
? [
|
|
604
560
|
moduleGraph.getExportInfo(
|
|
@@ -606,21 +562,36 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
606
562
|
Array.isArray(options.export) ? options.export[0] : options.export
|
|
607
563
|
)
|
|
608
564
|
]
|
|
609
|
-
:
|
|
565
|
+
: mergedModules
|
|
566
|
+
? getMergedExports(
|
|
567
|
+
mergedModules,
|
|
568
|
+
moduleGraph,
|
|
569
|
+
chunk.runtime
|
|
570
|
+
).exports.map(({ name, module: from }) =>
|
|
571
|
+
moduleGraph.getExportInfo(from, name)
|
|
572
|
+
)
|
|
573
|
+
: moduleGraph.getExportsInfo(module).orderedExports;
|
|
610
574
|
|
|
611
|
-
const
|
|
612
|
-
(module.buildMeta &&
|
|
613
|
-
module.buildMeta.exportsFinalNameByRuntime &&
|
|
614
|
-
module.buildMeta.exportsFinalNameByRuntime.get(
|
|
615
|
-
getRuntimeKey(chunk.runtime)
|
|
616
|
-
)) ||
|
|
617
|
-
{};
|
|
575
|
+
const { data } = codeGenerationResults.get(module, chunk.runtime);
|
|
618
576
|
|
|
619
577
|
const isInlinedEntryWithoutIIFE = inlined && !inlinedInIIFE;
|
|
620
|
-
//
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
578
|
+
// The binding each export left out on demand reads, exported directly
|
|
579
|
+
/** @type {Record<string, string>} */
|
|
580
|
+
let definitions =
|
|
581
|
+
(isInlinedEntryWithoutIIFE && data && data.get("exportsFinalName")) || {};
|
|
582
|
+
// Inlined beside other modules, the entry's colliding declarations were renamed
|
|
583
|
+
const { renamedDeclarations } = renderContext;
|
|
584
|
+
if (renamedDeclarations) {
|
|
585
|
+
/** @type {Record<string, string>} */
|
|
586
|
+
const renamed = {};
|
|
587
|
+
for (const usedName of Object.keys(definitions)) {
|
|
588
|
+
renamed[usedName] = renameIdentifiers(
|
|
589
|
+
definitions[usedName],
|
|
590
|
+
renamedDeclarations
|
|
591
|
+
);
|
|
592
|
+
}
|
|
593
|
+
definitions = renamed;
|
|
594
|
+
}
|
|
624
595
|
|
|
625
596
|
/** @type {string[]} */
|
|
626
597
|
const shortHandedExports = [];
|
|
@@ -646,48 +617,15 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
646
617
|
return name;
|
|
647
618
|
};
|
|
648
619
|
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
const treatAsCommonJs =
|
|
652
|
-
module.buildMeta &&
|
|
653
|
-
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
|
|
654
|
-
.treatAsCommonJs;
|
|
655
|
-
const skipRenderDefaultExport = Boolean(treatAsCommonJs);
|
|
656
|
-
|
|
657
|
-
// A single (non-concatenated) inlined entry is rendered at the top
|
|
658
|
-
// level, so its own declarations are top-level bindings we can export
|
|
659
|
-
// directly — keeping ESM live bindings instead of snapshotting
|
|
660
|
-
// `__webpack_exports__.x` into a `const`. Concatenated entries already
|
|
661
|
-
// get direct bindings via `definitions` above.
|
|
662
|
-
/** @type {Map<string, string> | undefined} */
|
|
663
|
-
let directBindings;
|
|
664
|
-
if (isInlinedEntryWithoutIIFE && !treatAsCommonJs) {
|
|
665
|
-
const { data } = codeGenerationResults.get(module, chunk.runtime);
|
|
666
|
-
const topLevelDeclarations =
|
|
667
|
-
(data && data.get("topLevelDeclarations")) ||
|
|
668
|
-
(module.buildInfo && module.buildInfo.topLevelDeclarations);
|
|
669
|
-
if (topLevelDeclarations) {
|
|
670
|
-
for (const dep of module.dependencies) {
|
|
671
|
-
if (
|
|
672
|
-
dep instanceof HarmonyExportSpecifierDependency &&
|
|
673
|
-
topLevelDeclarations.has(dep.id)
|
|
674
|
-
) {
|
|
675
|
-
(directBindings || (directBindings = new Map())).set(
|
|
676
|
-
dep.name,
|
|
677
|
-
dep.id
|
|
678
|
-
);
|
|
679
|
-
}
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
}
|
|
620
|
+
// A merged entry is awaited in the bootstrap, so the object here is settled.
|
|
621
|
+
const isAsync = !mergedModules && moduleGraph.isAsync(module);
|
|
683
622
|
|
|
684
|
-
//
|
|
685
|
-
//
|
|
686
|
-
const
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
getRuntimeKey(chunk.runtime)
|
|
623
|
+
// One ES module among the merged ones still provides a real `default`, and
|
|
624
|
+
// the synthetic one below would then be a second export of that name.
|
|
625
|
+
const treatAsCommonJs = exportedModules.every((m) =>
|
|
626
|
+
Boolean(
|
|
627
|
+
m.buildMeta &&
|
|
628
|
+
/** @type {JavascriptModuleBuildMeta} */ (m.buildMeta).treatAsCommonJs
|
|
691
629
|
)
|
|
692
630
|
);
|
|
693
631
|
|
|
@@ -704,83 +642,73 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
704
642
|
let needExportsDeclaration =
|
|
705
643
|
!isInlinedEntryWithoutIIFE || isAsync || needHarmonyCompatibilityFlag;
|
|
706
644
|
|
|
707
|
-
|
|
645
|
+
// The startup awaits the entry wherever top-level `await` reaches it.
|
|
646
|
+
if (isAsync && !exportsAwaited) {
|
|
708
647
|
result.add(
|
|
709
648
|
`${RuntimeGlobals.exports} = await ${RuntimeGlobals.exports};\n`
|
|
710
649
|
);
|
|
711
650
|
}
|
|
712
651
|
|
|
713
652
|
// Try to find all known exports of the entry module
|
|
714
|
-
|
|
653
|
+
for (const exportInfo of exportInfos) {
|
|
715
654
|
if (!exportInfo.provided) continue;
|
|
716
655
|
|
|
717
656
|
const originalName = exportInfo.name;
|
|
718
657
|
// Skip rendering the default export in some cases
|
|
719
|
-
if (
|
|
658
|
+
if (treatAsCommonJs && originalName === "default") continue;
|
|
720
659
|
|
|
721
660
|
// Try to find all exports from the reexported modules
|
|
722
|
-
const target = exportInfo.
|
|
723
|
-
|
|
724
|
-
// export
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
}
|
|
736
|
-
}
|
|
661
|
+
const target = exportInfo.getTarget(moduleGraph);
|
|
662
|
+
|
|
663
|
+
// A re-export is provided even when its target lacks the export, and
|
|
664
|
+
// the path can end in a property access, so every name is looked up.
|
|
665
|
+
if (
|
|
666
|
+
target &&
|
|
667
|
+
target.export &&
|
|
668
|
+
target.export[target.export.length - 1] !== "default" &&
|
|
669
|
+
moduleGraph
|
|
670
|
+
.getExportsInfo(target.module)
|
|
671
|
+
.isExportProvided(target.export) === false
|
|
672
|
+
) {
|
|
673
|
+
continue;
|
|
737
674
|
}
|
|
738
675
|
|
|
739
|
-
const externalTarget = exportInfo.getTarget(moduleGraph);
|
|
740
676
|
if (
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
codeGenerationResults.has(
|
|
677
|
+
target &&
|
|
678
|
+
target.module.is("external") &&
|
|
679
|
+
target.export &&
|
|
680
|
+
target.export.length === 1 &&
|
|
681
|
+
codeGenerationResults.has(target.module, chunk.runtime)
|
|
746
682
|
) {
|
|
747
683
|
const reexport = codeGenerationResults.getData(
|
|
748
|
-
|
|
684
|
+
target.module,
|
|
749
685
|
chunk.runtime,
|
|
750
686
|
"externalReexport"
|
|
751
687
|
);
|
|
752
688
|
if (reexport) {
|
|
753
|
-
|
|
689
|
+
// The getter stays in the body, written into the object
|
|
690
|
+
needExportsDeclaration = true;
|
|
754
691
|
result.add(
|
|
755
|
-
`export { ${toExportName(
|
|
692
|
+
`export { ${toExportName(target.export[0])} as ${toExportName(originalName)} } ${reexport};\n`
|
|
756
693
|
);
|
|
757
694
|
alreadyRenderedExports.add(originalName);
|
|
758
695
|
continue;
|
|
759
696
|
}
|
|
760
697
|
}
|
|
761
698
|
|
|
762
|
-
// The exports of entry module are never inlined
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
699
|
+
// The exports of entry module are never inlined, and a merged exports
|
|
700
|
+
// object is keyed by the original names rather than the mangled ones.
|
|
701
|
+
const usedName = mergedModules
|
|
702
|
+
? originalName
|
|
703
|
+
: /** @type {string} */
|
|
704
|
+
(exportInfo.getUsedName(originalName, chunk.runtime));
|
|
766
705
|
/** @type {string | undefined} */
|
|
767
706
|
const definition = definitions[usedName];
|
|
768
707
|
/** @type {string | undefined} */
|
|
769
|
-
const directLocal =
|
|
770
|
-
definition === undefined && directBindings
|
|
771
|
-
? directBindings.get(originalName)
|
|
772
|
-
: undefined;
|
|
773
|
-
/** @type {string | undefined} */
|
|
774
708
|
let finalName;
|
|
775
709
|
|
|
776
710
|
if (definition) {
|
|
777
711
|
finalName = definition;
|
|
778
|
-
} else if (directLocal !== undefined) {
|
|
779
|
-
// Live binding to the inlined entry's own top-level declaration
|
|
780
|
-
finalName = directLocal;
|
|
781
|
-
// The declaration is only there for the definitions written into it; with
|
|
782
|
-
// those taken over (and not re-emitted here) nothing reads the object.
|
|
783
|
-
if (!bindingsTakenOver) needExportsDeclaration = true;
|
|
784
712
|
} else {
|
|
785
713
|
// Fallback to `__webpack_exports__` property access
|
|
786
714
|
// when no direct export binding was found
|
|
@@ -801,7 +729,6 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
801
729
|
finalName.includes("("))
|
|
802
730
|
) {
|
|
803
731
|
if (exportInfo.isReexport()) {
|
|
804
|
-
const { data } = codeGenerationResults.get(module, chunk.runtime);
|
|
805
732
|
const topLevelDeclarations =
|
|
806
733
|
(data && data.get("topLevelDeclarations")) ||
|
|
807
734
|
(module.buildInfo && module.buildInfo.topLevelDeclarations);
|
|
@@ -844,6 +771,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
844
771
|
module,
|
|
845
772
|
moduleGraph,
|
|
846
773
|
chunk.runtime,
|
|
774
|
+
codeGenerationResults,
|
|
847
775
|
exports,
|
|
848
776
|
alreadyRenderedExports
|
|
849
777
|
);
|
|
@@ -880,19 +808,13 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
880
808
|
renderModuleContent(
|
|
881
809
|
source,
|
|
882
810
|
module,
|
|
883
|
-
{ factory, inlinedInIIFE, chunk },
|
|
811
|
+
{ factory, inlinedInIIFE, chunk, codeGenerationResults },
|
|
884
812
|
libraryContext
|
|
885
813
|
) {
|
|
886
|
-
const
|
|
887
|
-
|
|
888
|
-
const exportsSource =
|
|
889
|
-
|
|
890
|
-
buildMeta.exportsSourceByRuntime &&
|
|
891
|
-
buildMeta.exportsSourceByRuntime.get(runtimeKey);
|
|
892
|
-
const bindingSource =
|
|
893
|
-
buildMeta &&
|
|
894
|
-
buildMeta.exportsBindingSourceByRuntime &&
|
|
895
|
-
buildMeta.exportsBindingSourceByRuntime.get(runtimeKey);
|
|
814
|
+
const { data } = codeGenerationResults.get(module, chunk.runtime);
|
|
815
|
+
if (data === undefined) return source;
|
|
816
|
+
const exportsSource = data.get("exportsSource");
|
|
817
|
+
const bindingSource = data.get("exportsBindingSource");
|
|
896
818
|
|
|
897
819
|
// Re-add the exports source in a factory or IIFE-wrapped startup module; value
|
|
898
820
|
// bindings read the declarations above them, so those go after the body.
|