@depup/webpack 5.106.1-depup.0 → 5.109.2-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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -21,25 +21,30 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
21
21
|
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
|
|
22
22
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */
|
|
23
23
|
/**
|
|
24
|
+
* Defines the shared type used by this module.
|
|
24
25
|
* @template T
|
|
25
26
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
26
27
|
*/
|
|
27
28
|
|
|
28
29
|
/**
|
|
30
|
+
* Defines the export property library plugin parsed type used by this module.
|
|
29
31
|
* @typedef {object} ExportPropertyLibraryPluginParsed
|
|
30
32
|
* @property {LibraryExport=} export
|
|
31
33
|
*/
|
|
32
34
|
|
|
33
35
|
/**
|
|
36
|
+
* Defines the export property library plugin options type used by this module.
|
|
34
37
|
* @typedef {object} ExportPropertyLibraryPluginOptions
|
|
35
38
|
* @property {LibraryType} type
|
|
36
39
|
*/
|
|
37
40
|
/**
|
|
41
|
+
* Represents the export property library plugin runtime component.
|
|
38
42
|
* @typedef {ExportPropertyLibraryPluginParsed} T
|
|
39
43
|
* @extends {AbstractLibraryPlugin<ExportPropertyLibraryPluginParsed>}
|
|
40
44
|
*/
|
|
41
45
|
class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
42
46
|
/**
|
|
47
|
+
* Creates an instance of ExportPropertyLibraryPlugin.
|
|
43
48
|
* @param {ExportPropertyLibraryPluginOptions} options options
|
|
44
49
|
*/
|
|
45
50
|
constructor({ type }) {
|
|
@@ -50,6 +55,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
/**
|
|
58
|
+
* Returns preprocess as needed by overriding.
|
|
53
59
|
* @param {LibraryOptions} library normalized library option
|
|
54
60
|
* @returns {T} preprocess as needed by overriding
|
|
55
61
|
*/
|
|
@@ -60,6 +66,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
/**
|
|
69
|
+
* Finish entry module.
|
|
63
70
|
* @param {Module} module the exporting entry module
|
|
64
71
|
* @param {string} entryName the name of the entrypoint
|
|
65
72
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -78,6 +85,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
78
85
|
);
|
|
79
86
|
exportsInfo.setUsed(UsageState.Used, runtime);
|
|
80
87
|
exportsInfo.canMangleUse = false;
|
|
88
|
+
exportsInfo.canInlineUse = false;
|
|
81
89
|
} else {
|
|
82
90
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
83
91
|
exportsInfo.setUsedInUnknownWay(runtime);
|
|
@@ -86,6 +94,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
/**
|
|
97
|
+
* Processes the provided chunk.
|
|
89
98
|
* @param {Chunk} chunk the chunk
|
|
90
99
|
* @param {RuntimeRequirements} set runtime requirements
|
|
91
100
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -96,6 +105,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
96
105
|
}
|
|
97
106
|
|
|
98
107
|
/**
|
|
108
|
+
* Renders source with library export.
|
|
99
109
|
* @param {Source} source source
|
|
100
110
|
* @param {Module} module module
|
|
101
111
|
* @param {StartupRenderContext} renderContext render context
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const WebpackError = require("
|
|
8
|
+
const WebpackError = require("../errors/WebpackError");
|
|
9
9
|
|
|
10
10
|
class FalseIIFEUmdWarning extends WebpackError {
|
|
11
11
|
constructor() {
|
|
12
12
|
super();
|
|
13
13
|
/** @type {string} */
|
|
14
14
|
this.name = "FalseIIFEUmdWarning";
|
|
15
|
+
/** @type {string} */
|
|
15
16
|
this.message =
|
|
16
17
|
"Configuration:\nSetting 'output.iife' to 'false' is incompatible with 'output.library.type' set to 'umd'. This configuration may cause unexpected behavior, as UMD libraries are expected to use an IIFE (Immediately Invoked Function Expression) to support various module formats. Consider setting 'output.iife' to 'true' or choosing a different 'library.type' to ensure compatibility.\nLearn more: https://webpack.js.org/configuration/output/";
|
|
17
18
|
}
|
|
@@ -17,26 +17,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
17
17
|
/** @typedef {import("../util/Hash")} Hash */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
+
* Defines the shared type used by this module.
|
|
20
21
|
* @template T
|
|
21
22
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
22
23
|
*/
|
|
23
24
|
|
|
24
25
|
/**
|
|
26
|
+
* Defines the jsonp library plugin options type used by this module.
|
|
25
27
|
* @typedef {object} JsonpLibraryPluginOptions
|
|
26
28
|
* @property {LibraryType} type
|
|
27
29
|
*/
|
|
28
30
|
|
|
29
31
|
/**
|
|
32
|
+
* Defines the jsonp library plugin parsed type used by this module.
|
|
30
33
|
* @typedef {object} JsonpLibraryPluginParsed
|
|
31
34
|
* @property {string} name
|
|
32
35
|
*/
|
|
33
36
|
|
|
34
37
|
/**
|
|
38
|
+
* Represents the jsonp library plugin runtime component.
|
|
35
39
|
* @typedef {JsonpLibraryPluginParsed} T
|
|
36
40
|
* @extends {AbstractLibraryPlugin<JsonpLibraryPluginParsed>}
|
|
37
41
|
*/
|
|
38
42
|
class JsonpLibraryPlugin extends AbstractLibraryPlugin {
|
|
39
43
|
/**
|
|
44
|
+
* Creates an instance of JsonpLibraryPlugin.
|
|
40
45
|
* @param {JsonpLibraryPluginOptions} options the plugin options
|
|
41
46
|
*/
|
|
42
47
|
constructor(options) {
|
|
@@ -47,6 +52,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
/**
|
|
55
|
+
* Returns preprocess as needed by overriding.
|
|
50
56
|
* @param {LibraryOptions} library normalized library option
|
|
51
57
|
* @returns {T} preprocess as needed by overriding
|
|
52
58
|
*/
|
|
@@ -64,6 +70,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
/**
|
|
73
|
+
* Returns source with library export.
|
|
67
74
|
* @param {Source} source source
|
|
68
75
|
* @param {RenderContext} renderContext render context
|
|
69
76
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -77,6 +84,7 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
/**
|
|
87
|
+
* Processes the provided chunk.
|
|
80
88
|
* @param {Chunk} chunk the chunk
|
|
81
89
|
* @param {Hash} hash hash
|
|
82
90
|
* @param {ChunkHashContext} chunkHashContext chunk hash context
|
|
@@ -11,7 +11,10 @@ const ExternalModule = require("../ExternalModule");
|
|
|
11
11
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
12
12
|
const Template = require("../Template");
|
|
13
13
|
const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
|
|
14
|
+
const HarmonyExportSpecifierDependency = require("../dependencies/HarmonyExportSpecifierDependency");
|
|
15
|
+
const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
|
|
14
16
|
const ConcatenatedModule = require("../optimize/ConcatenatedModule");
|
|
17
|
+
const { InlinedUsedName } = require("../optimize/InlineExports");
|
|
15
18
|
const { propertyAccess } = require("../util/property");
|
|
16
19
|
const { getEntryRuntime, getRuntimeKey } = require("../util/runtime");
|
|
17
20
|
const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
@@ -30,18 +33,22 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
30
33
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").ModuleRenderContext} ModuleRenderContext */
|
|
31
34
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
32
35
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
|
36
|
+
/** @typedef {import("../javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
|
|
33
37
|
|
|
34
38
|
/**
|
|
39
|
+
* Defines the shared type used by this module.
|
|
35
40
|
* @template T
|
|
36
41
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
37
42
|
*/
|
|
38
43
|
|
|
39
44
|
/**
|
|
45
|
+
* Defines the module library plugin options type used by this module.
|
|
40
46
|
* @typedef {object} ModuleLibraryPluginOptions
|
|
41
47
|
* @property {LibraryType} type
|
|
42
48
|
*/
|
|
43
49
|
|
|
44
50
|
/**
|
|
51
|
+
* Defines the module library plugin parsed type used by this module.
|
|
45
52
|
* @typedef {object} ModuleLibraryPluginParsed
|
|
46
53
|
* @property {string} name
|
|
47
54
|
* @property {LibraryExport=} export
|
|
@@ -50,11 +57,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
50
57
|
const PLUGIN_NAME = "ModuleLibraryPlugin";
|
|
51
58
|
|
|
52
59
|
/**
|
|
60
|
+
* Represents the module library plugin runtime component.
|
|
53
61
|
* @typedef {ModuleLibraryPluginParsed} T
|
|
54
62
|
* @extends {AbstractLibraryPlugin<ModuleLibraryPluginParsed>}
|
|
55
63
|
*/
|
|
56
64
|
class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
57
65
|
/**
|
|
66
|
+
* Creates an instance of ModuleLibraryPlugin.
|
|
58
67
|
* @param {ModuleLibraryPluginOptions} options the plugin options
|
|
59
68
|
*/
|
|
60
69
|
constructor(options) {
|
|
@@ -65,7 +74,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
65
74
|
}
|
|
66
75
|
|
|
67
76
|
/**
|
|
68
|
-
*
|
|
77
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
69
78
|
* @param {Compiler} compiler the compiler instance
|
|
70
79
|
* @returns {void}
|
|
71
80
|
*/
|
|
@@ -75,6 +84,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
75
84
|
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
76
85
|
const { onDemandExportsGeneration } =
|
|
77
86
|
ConcatenatedModule.getCompilationHooks(compilation);
|
|
87
|
+
const javascriptHooks =
|
|
88
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation);
|
|
78
89
|
onDemandExportsGeneration.tap(
|
|
79
90
|
PLUGIN_NAME,
|
|
80
91
|
(module, runtimes, source, finalName) => {
|
|
@@ -100,10 +111,88 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
100
111
|
return true;
|
|
101
112
|
}
|
|
102
113
|
);
|
|
114
|
+
|
|
115
|
+
// `ModuleLibraryPlugin` stashes the on-demand exports source via
|
|
116
|
+
// `onDemandExportsGeneration` and only re-emits it when the
|
|
117
|
+
// module is wrapped in an IIFE/factory. When the entry is
|
|
118
|
+
// inlined directly, the stashed source — and the
|
|
119
|
+
// `definePropertyGetters` / `requireScope` runtime helpers it
|
|
120
|
+
// pulled in — never make it into the output. Drop those helpers
|
|
121
|
+
// from the chunk's set so the bundle stays clean.
|
|
122
|
+
compilation.hooks.additionalChunkRuntimeRequirements.tap(
|
|
123
|
+
PLUGIN_NAME,
|
|
124
|
+
(chunk, set, { chunkGraph, codeGenerationResults }) => {
|
|
125
|
+
if (!set.has(RuntimeGlobals.definePropertyGetters)) return;
|
|
126
|
+
if (chunkGraph.getNumberOfEntryModules(chunk) !== 1) return;
|
|
127
|
+
if (chunkGraph.hasChunkEntryDependentChunks(chunk)) return;
|
|
128
|
+
if (
|
|
129
|
+
set.has(RuntimeGlobals.moduleFactories) ||
|
|
130
|
+
set.has(RuntimeGlobals.moduleCache) ||
|
|
131
|
+
set.has(RuntimeGlobals.interceptModuleExecution) ||
|
|
132
|
+
set.has(RuntimeGlobals.module) ||
|
|
133
|
+
set.has(RuntimeGlobals.thisAsExports)
|
|
134
|
+
) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (javascriptHooks.inlineInRuntimeBailout.isUsed()) return;
|
|
138
|
+
|
|
139
|
+
const [module] = chunkGraph.getChunkEntryModulesIterable(chunk);
|
|
140
|
+
const exportsSourceByRuntime =
|
|
141
|
+
module.buildMeta && module.buildMeta.exportsSourceByRuntime;
|
|
142
|
+
if (
|
|
143
|
+
!exportsSourceByRuntime ||
|
|
144
|
+
!exportsSourceByRuntime.has(getRuntimeKey(chunk.runtime))
|
|
145
|
+
) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const codeGenResult = codeGenerationResults.get(
|
|
149
|
+
module,
|
|
150
|
+
chunk.runtime
|
|
151
|
+
);
|
|
152
|
+
const jsSource =
|
|
153
|
+
codeGenResult && codeGenResult.sources.get("javascript");
|
|
154
|
+
if (
|
|
155
|
+
jsSource &&
|
|
156
|
+
String(jsSource.source()).includes(`${RuntimeGlobals.require}.`)
|
|
157
|
+
) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Check whether any other module in the chunk still needs
|
|
162
|
+
// the helpers we want to remove.
|
|
163
|
+
let otherNeedsDefine = false;
|
|
164
|
+
let otherNeedsExports = false;
|
|
165
|
+
let otherNeedsRequireScope = false;
|
|
166
|
+
for (const m of chunkGraph.getChunkModulesIterable(chunk)) {
|
|
167
|
+
if (m === module) continue;
|
|
168
|
+
const requirements = chunkGraph.getModuleRuntimeRequirements(
|
|
169
|
+
m,
|
|
170
|
+
chunk.runtime
|
|
171
|
+
);
|
|
172
|
+
if (!requirements) continue;
|
|
173
|
+
if (requirements.has(RuntimeGlobals.definePropertyGetters)) {
|
|
174
|
+
otherNeedsDefine = true;
|
|
175
|
+
}
|
|
176
|
+
if (requirements.has(RuntimeGlobals.exports)) {
|
|
177
|
+
otherNeedsExports = true;
|
|
178
|
+
}
|
|
179
|
+
if (requirements.has(RuntimeGlobals.requireScope)) {
|
|
180
|
+
otherNeedsRequireScope = true;
|
|
181
|
+
}
|
|
182
|
+
if (otherNeedsDefine) break;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (otherNeedsDefine) return;
|
|
186
|
+
set.delete(RuntimeGlobals.definePropertyGetters);
|
|
187
|
+
if (!otherNeedsExports) set.delete(RuntimeGlobals.exports);
|
|
188
|
+
if (!otherNeedsRequireScope) set.delete(RuntimeGlobals.requireScope);
|
|
189
|
+
}
|
|
190
|
+
);
|
|
103
191
|
});
|
|
104
192
|
}
|
|
105
193
|
|
|
106
194
|
/**
|
|
195
|
+
* Finish entry module.
|
|
107
196
|
* @param {Module} module the exporting entry module
|
|
108
197
|
* @param {string} entryName the name of the entrypoint
|
|
109
198
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -122,24 +211,31 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
122
211
|
);
|
|
123
212
|
exportsInfo.setUsed(UsageState.Used, runtime);
|
|
124
213
|
exportsInfo.canMangleUse = false;
|
|
214
|
+
exportsInfo.canInlineUse = false;
|
|
125
215
|
} else {
|
|
126
216
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
127
217
|
|
|
128
218
|
if (
|
|
129
219
|
// If the entry module is commonjs, its exports cannot be mangled
|
|
130
|
-
(module.buildMeta &&
|
|
220
|
+
(module.buildMeta &&
|
|
221
|
+
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
|
|
222
|
+
.treatAsCommonJs) ||
|
|
131
223
|
// The entry module provides unknown exports
|
|
132
224
|
exportsInfo._otherExportsInfo.provided === null
|
|
133
225
|
) {
|
|
134
226
|
exportsInfo.setUsedInUnknownWay(runtime);
|
|
135
227
|
} else {
|
|
136
228
|
exportsInfo.setAllKnownExportsUsed(runtime);
|
|
229
|
+
for (const exportInfo of exportsInfo.ownedExports) {
|
|
230
|
+
exportInfo.canInlineUse = false;
|
|
231
|
+
}
|
|
137
232
|
}
|
|
138
233
|
}
|
|
139
234
|
moduleGraph.addExtraReason(module, "used as library export");
|
|
140
235
|
}
|
|
141
236
|
|
|
142
237
|
/**
|
|
238
|
+
* Returns preprocess as needed by overriding.
|
|
143
239
|
* @param {LibraryOptions} library normalized library option
|
|
144
240
|
* @returns {T} preprocess as needed by overriding
|
|
145
241
|
*/
|
|
@@ -158,6 +254,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
158
254
|
}
|
|
159
255
|
|
|
160
256
|
/**
|
|
257
|
+
* Analyze unknown provided exports.
|
|
161
258
|
* @param {Source} source source
|
|
162
259
|
* @param {Module} module module
|
|
163
260
|
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
@@ -177,10 +274,11 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
177
274
|
const result = new ConcatSource(source);
|
|
178
275
|
/** @type {Set<string>} */
|
|
179
276
|
const moduleRequests = new Set();
|
|
180
|
-
/** @type {Map<string, string>} */
|
|
277
|
+
/** @type {Map<string, string | InlinedUsedName>} */
|
|
181
278
|
const unknownProvidedExports = new Map();
|
|
182
279
|
|
|
183
280
|
/**
|
|
281
|
+
* Resolves dynamic star reexport.
|
|
184
282
|
* @param {Module} module the module
|
|
185
283
|
* @param {boolean} isDynamicReexport if module is dynamic reexported
|
|
186
284
|
*/
|
|
@@ -218,7 +316,9 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
218
316
|
continue;
|
|
219
317
|
}
|
|
220
318
|
const originalName = exportInfo.name;
|
|
221
|
-
const usedName =
|
|
319
|
+
const usedName =
|
|
320
|
+
/** @type {string | InlinedUsedName | false} */
|
|
321
|
+
(exportInfo.getUsedName(originalName, runtime));
|
|
222
322
|
|
|
223
323
|
if (!alreadyRenderedExports.has(originalName) && usedName) {
|
|
224
324
|
unknownProvidedExports.set(originalName, usedName);
|
|
@@ -238,7 +338,13 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
238
338
|
for (const [origin, used] of unknownProvidedExports) {
|
|
239
339
|
exports.push([
|
|
240
340
|
origin,
|
|
241
|
-
|
|
341
|
+
used instanceof InlinedUsedName
|
|
342
|
+
? used.render(
|
|
343
|
+
Template.toNormalComment(
|
|
344
|
+
`inlined export ${propertyAccess([origin])}`
|
|
345
|
+
)
|
|
346
|
+
)
|
|
347
|
+
: `${RuntimeGlobals.exports}${propertyAccess([used])}`
|
|
242
348
|
]);
|
|
243
349
|
}
|
|
244
350
|
|
|
@@ -246,6 +352,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
246
352
|
}
|
|
247
353
|
|
|
248
354
|
/**
|
|
355
|
+
* Renders source with library export.
|
|
249
356
|
* @param {Source} source source
|
|
250
357
|
* @param {Module} module module
|
|
251
358
|
* @param {StartupRenderContext} renderContext render context
|
|
@@ -295,9 +402,38 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
295
402
|
const isAsync = moduleGraph.isAsync(module);
|
|
296
403
|
|
|
297
404
|
const treatAsCommonJs =
|
|
298
|
-
module.buildMeta &&
|
|
405
|
+
module.buildMeta &&
|
|
406
|
+
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
|
|
407
|
+
.treatAsCommonJs;
|
|
299
408
|
const skipRenderDefaultExport = Boolean(treatAsCommonJs);
|
|
300
409
|
|
|
410
|
+
// A single (non-concatenated) inlined entry is rendered at the top
|
|
411
|
+
// level, so its own declarations are top-level bindings we can export
|
|
412
|
+
// directly — keeping ESM live bindings instead of snapshotting
|
|
413
|
+
// `__webpack_exports__.x` into a `const`. Concatenated entries already
|
|
414
|
+
// get direct bindings via `definitions` above.
|
|
415
|
+
/** @type {Map<string, string> | undefined} */
|
|
416
|
+
let directBindings;
|
|
417
|
+
if (isInlinedEntryWithoutIIFE && !treatAsCommonJs) {
|
|
418
|
+
const { data } = codeGenerationResults.get(module, chunk.runtime);
|
|
419
|
+
const topLevelDeclarations =
|
|
420
|
+
(data && data.get("topLevelDeclarations")) ||
|
|
421
|
+
(module.buildInfo && module.buildInfo.topLevelDeclarations);
|
|
422
|
+
if (topLevelDeclarations) {
|
|
423
|
+
for (const dep of module.dependencies) {
|
|
424
|
+
if (
|
|
425
|
+
dep instanceof HarmonyExportSpecifierDependency &&
|
|
426
|
+
topLevelDeclarations.has(dep.id)
|
|
427
|
+
) {
|
|
428
|
+
(directBindings || (directBindings = new Map())).set(
|
|
429
|
+
dep.name,
|
|
430
|
+
dep.id
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
301
437
|
const moduleExportsInfo = moduleGraph.getExportsInfo(module);
|
|
302
438
|
|
|
303
439
|
// Define ESM compatibility flag will rely on `__webpack_exports__`
|
|
@@ -340,16 +476,26 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
340
476
|
}
|
|
341
477
|
}
|
|
342
478
|
|
|
479
|
+
// The exports of entry module are never inlined
|
|
343
480
|
const usedName =
|
|
344
481
|
/** @type {string} */
|
|
345
482
|
(exportInfo.getUsedName(originalName, chunk.runtime));
|
|
346
483
|
/** @type {string | undefined} */
|
|
347
484
|
const definition = definitions[usedName];
|
|
348
485
|
/** @type {string | undefined} */
|
|
486
|
+
const directLocal =
|
|
487
|
+
definition === undefined && directBindings
|
|
488
|
+
? directBindings.get(originalName)
|
|
489
|
+
: undefined;
|
|
490
|
+
/** @type {string | undefined} */
|
|
349
491
|
let finalName;
|
|
350
492
|
|
|
351
493
|
if (definition) {
|
|
352
494
|
finalName = definition;
|
|
495
|
+
} else if (directLocal !== undefined) {
|
|
496
|
+
// Live binding to the inlined entry's own top-level declaration
|
|
497
|
+
finalName = directLocal;
|
|
498
|
+
needExportsDeclaration = true;
|
|
353
499
|
} else {
|
|
354
500
|
// Fallback to `__webpack_exports__` property access
|
|
355
501
|
// when no direct export binding was found
|
|
@@ -389,7 +535,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
389
535
|
}
|
|
390
536
|
} else {
|
|
391
537
|
shortHandedExports.push(
|
|
392
|
-
|
|
538
|
+
finalName === originalName
|
|
393
539
|
? finalName
|
|
394
540
|
: `${finalName} as ${originalName}`
|
|
395
541
|
);
|
|
@@ -431,6 +577,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
431
577
|
}
|
|
432
578
|
|
|
433
579
|
/**
|
|
580
|
+
* Renders module content.
|
|
434
581
|
* @param {Source} source source
|
|
435
582
|
* @param {Module} module module
|
|
436
583
|
* @param {ModuleRenderContext} renderContext render context
|
|
@@ -21,26 +21,31 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
21
21
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
|
|
22
22
|
/** @typedef {import("../util/Hash")} Hash */
|
|
23
23
|
/**
|
|
24
|
+
* Defines the shared type used by this module.
|
|
24
25
|
* @template T
|
|
25
26
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
26
27
|
*/
|
|
27
28
|
|
|
28
29
|
/**
|
|
30
|
+
* Defines the system library plugin options type used by this module.
|
|
29
31
|
* @typedef {object} SystemLibraryPluginOptions
|
|
30
32
|
* @property {LibraryType} type
|
|
31
33
|
*/
|
|
32
34
|
|
|
33
35
|
/**
|
|
36
|
+
* Defines the system library plugin parsed type used by this module.
|
|
34
37
|
* @typedef {object} SystemLibraryPluginParsed
|
|
35
38
|
* @property {string} name
|
|
36
39
|
*/
|
|
37
40
|
|
|
38
41
|
/**
|
|
42
|
+
* Represents the system library plugin runtime component.
|
|
39
43
|
* @typedef {SystemLibraryPluginParsed} T
|
|
40
44
|
* @extends {AbstractLibraryPlugin<SystemLibraryPluginParsed>}
|
|
41
45
|
*/
|
|
42
46
|
class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
43
47
|
/**
|
|
48
|
+
* Creates an instance of SystemLibraryPlugin.
|
|
44
49
|
* @param {SystemLibraryPluginOptions} options the plugin options
|
|
45
50
|
*/
|
|
46
51
|
constructor(options) {
|
|
@@ -51,6 +56,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
/**
|
|
59
|
+
* Returns preprocess as needed by overriding.
|
|
54
60
|
* @param {LibraryOptions} library normalized library option
|
|
55
61
|
* @returns {T} preprocess as needed by overriding
|
|
56
62
|
*/
|
|
@@ -68,6 +74,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
/**
|
|
77
|
+
* Returns source with library export.
|
|
71
78
|
* @param {Source} source source
|
|
72
79
|
* @param {RenderContext} renderContext render context
|
|
73
80
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -134,9 +141,9 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
134
141
|
/** @type {ExportInfoName[]} */
|
|
135
142
|
const handledNames = [];
|
|
136
143
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
chunk.runtime
|
|
144
|
+
// The exports of `ExternalModule` are never inlined
|
|
145
|
+
const used = /** @type {string | false} */ (
|
|
146
|
+
exportInfo.getUsedName(undefined, chunk.runtime)
|
|
140
147
|
);
|
|
141
148
|
if (used) {
|
|
142
149
|
if (otherUnused || used !== exportInfo.name) {
|
|
@@ -239,6 +246,7 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
239
246
|
}
|
|
240
247
|
|
|
241
248
|
/**
|
|
249
|
+
* Processes the provided chunk.
|
|
242
250
|
* @param {Chunk} chunk the chunk
|
|
243
251
|
* @param {Hash} hash hash
|
|
244
252
|
* @param {ChunkHashContext} chunkHashContext chunk hash context
|
|
@@ -20,11 +20,13 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
|
20
20
|
/** @typedef {import("../ExternalModule").RequestRecord} RequestRecord */
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Defines the shared type used by this module.
|
|
23
24
|
* @template T
|
|
24
25
|
* @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T>
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
28
|
/**
|
|
29
|
+
* Accessor to object access.
|
|
28
30
|
* @param {string[]} accessor the accessor to convert to path
|
|
29
31
|
* @returns {string} the path
|
|
30
32
|
*/
|
|
@@ -34,6 +36,7 @@ const accessorToObjectAccess = (accessor) =>
|
|
|
34
36
|
/** @typedef {string | string[]} Accessor */
|
|
35
37
|
|
|
36
38
|
/**
|
|
39
|
+
* Returns the path.
|
|
37
40
|
* @param {string | undefined} base the path prefix
|
|
38
41
|
* @param {Accessor} accessor the accessor
|
|
39
42
|
* @param {string=} joinWith the element separator
|
|
@@ -56,12 +59,14 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
|
|
|
56
59
|
};
|
|
57
60
|
|
|
58
61
|
/**
|
|
62
|
+
* Defines the umd library plugin options type used by this module.
|
|
59
63
|
* @typedef {object} UmdLibraryPluginOptions
|
|
60
64
|
* @property {LibraryType} type
|
|
61
65
|
* @property {boolean=} optionalAmdExternalAsGlobal
|
|
62
66
|
*/
|
|
63
67
|
|
|
64
68
|
/**
|
|
69
|
+
* Defines the umd library plugin parsed type used by this module.
|
|
65
70
|
* @typedef {object} UmdLibraryPluginParsed
|
|
66
71
|
* @property {string | string[] | undefined} name
|
|
67
72
|
* @property {LibraryCustomUmdObject} names
|
|
@@ -70,11 +75,13 @@ const accessorAccess = (base, accessor, joinWith = ", ") => {
|
|
|
70
75
|
*/
|
|
71
76
|
|
|
72
77
|
/**
|
|
78
|
+
* Represents the umd library plugin runtime component.
|
|
73
79
|
* @typedef {UmdLibraryPluginParsed} T
|
|
74
80
|
* @extends {AbstractLibraryPlugin<UmdLibraryPluginParsed>}
|
|
75
81
|
*/
|
|
76
82
|
class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
77
83
|
/**
|
|
84
|
+
* Creates an instance of UmdLibraryPlugin.
|
|
78
85
|
* @param {UmdLibraryPluginOptions} options the plugin option
|
|
79
86
|
*/
|
|
80
87
|
constructor(options) {
|
|
@@ -88,6 +95,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
88
95
|
}
|
|
89
96
|
|
|
90
97
|
/**
|
|
98
|
+
* Returns preprocess as needed by overriding.
|
|
91
99
|
* @param {LibraryOptions} library normalized library option
|
|
92
100
|
* @returns {T} preprocess as needed by overriding
|
|
93
101
|
*/
|
|
@@ -117,6 +125,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
117
125
|
}
|
|
118
126
|
|
|
119
127
|
/**
|
|
128
|
+
* Returns source with library export.
|
|
120
129
|
* @param {Source} source source
|
|
121
130
|
* @param {RenderContext} renderContext render context
|
|
122
131
|
* @param {LibraryContext<T>} libraryContext context
|
|
@@ -153,6 +162,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
153
162
|
}
|
|
154
163
|
|
|
155
164
|
/**
|
|
165
|
+
* Returns the replaced keys.
|
|
156
166
|
* @param {string} str the string to replace
|
|
157
167
|
* @returns {string} the replaced keys
|
|
158
168
|
*/
|
|
@@ -162,6 +172,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
162
172
|
});
|
|
163
173
|
|
|
164
174
|
/**
|
|
175
|
+
* Externals deps array.
|
|
165
176
|
* @param {ExternalModule[]} modules external modules
|
|
166
177
|
* @returns {string} result
|
|
167
178
|
*/
|
|
@@ -180,6 +191,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
180
191
|
)}]`;
|
|
181
192
|
|
|
182
193
|
/**
|
|
194
|
+
* Externals root array.
|
|
183
195
|
* @param {ExternalModule[]} modules external modules
|
|
184
196
|
* @returns {string} result
|
|
185
197
|
*/
|
|
@@ -201,6 +213,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
201
213
|
);
|
|
202
214
|
|
|
203
215
|
/**
|
|
216
|
+
* Externals require array.
|
|
204
217
|
* @param {string} type the type
|
|
205
218
|
* @returns {string} external require array
|
|
206
219
|
*/
|
|
@@ -233,6 +246,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
233
246
|
);
|
|
234
247
|
|
|
235
248
|
/**
|
|
249
|
+
* Externals arguments.
|
|
236
250
|
* @param {ExternalModule[]} modules external modules
|
|
237
251
|
* @returns {string} arguments
|
|
238
252
|
*/
|
|
@@ -247,6 +261,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
247
261
|
.join(", ");
|
|
248
262
|
|
|
249
263
|
/**
|
|
264
|
+
* Returns stringified library name.
|
|
250
265
|
* @param {Accessor} library library name
|
|
251
266
|
* @returns {string} stringified library name
|
|
252
267
|
*/
|
|
@@ -279,6 +294,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
|
279
294
|
const { auxiliaryComment, namedDefine, names } = options;
|
|
280
295
|
|
|
281
296
|
/**
|
|
297
|
+
* Gets auxiliary comment.
|
|
282
298
|
* @param {keyof LibraryCustomUmdCommentObject} type type
|
|
283
299
|
* @returns {string} comment
|
|
284
300
|
*/
|