@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
package/lib/DependenciesBlock.js
CHANGED
|
@@ -53,6 +53,7 @@ class DependenciesBlock {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
+
* Adds the provided dependency to the dependencies block.
|
|
56
57
|
* @param {Dependency} dependency dependency being tied to block.
|
|
57
58
|
* This is an "edge" pointing to another "node" on module graph.
|
|
58
59
|
* @returns {void}
|
|
@@ -62,6 +63,7 @@ class DependenciesBlock {
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
/**
|
|
66
|
+
* Removes dependency.
|
|
65
67
|
* @param {Dependency} dependency dependency being removed
|
|
66
68
|
* @returns {void}
|
|
67
69
|
*/
|
|
@@ -73,7 +75,7 @@ class DependenciesBlock {
|
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
/**
|
|
76
|
-
*
|
|
78
|
+
* Clear dependencies and blocks.
|
|
77
79
|
* @returns {void}
|
|
78
80
|
*/
|
|
79
81
|
clearDependenciesAndBlocks() {
|
|
@@ -82,6 +84,7 @@ class DependenciesBlock {
|
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
/**
|
|
87
|
+
* Updates the hash with the data contributed by this instance.
|
|
85
88
|
* @param {Hash} hash the hash used to track dependencies
|
|
86
89
|
* @param {UpdateHashContext} context context
|
|
87
90
|
* @returns {void}
|
|
@@ -96,6 +99,7 @@ class DependenciesBlock {
|
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
/**
|
|
102
|
+
* Serializes this instance into the provided serializer context.
|
|
99
103
|
* @param {ObjectSerializerContext} context context
|
|
100
104
|
*/
|
|
101
105
|
serialize({ write }) {
|
|
@@ -104,6 +108,7 @@ class DependenciesBlock {
|
|
|
104
108
|
}
|
|
105
109
|
|
|
106
110
|
/**
|
|
111
|
+
* Restores this instance from the provided deserializer context.
|
|
107
112
|
* @param {ObjectDeserializerContext} context context
|
|
108
113
|
*/
|
|
109
114
|
deserialize({ read }) {
|
package/lib/Dependency.js
CHANGED
|
@@ -14,13 +14,14 @@ const memoize = require("./util/memoize");
|
|
|
14
14
|
/** @typedef {import("./ModuleGraphConnection")} ModuleGraphConnection */
|
|
15
15
|
/** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
|
|
16
16
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
17
|
-
/** @typedef {import("./WebpackError")} WebpackError */
|
|
17
|
+
/** @typedef {import("./errors/WebpackError")} WebpackError */
|
|
18
18
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
19
19
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
20
20
|
/** @typedef {import("./util/Hash")} Hash */
|
|
21
21
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
22
22
|
/** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */
|
|
23
23
|
/**
|
|
24
|
+
* Defines the update hash context type used by this module.
|
|
24
25
|
* @typedef {object} UpdateHashContext
|
|
25
26
|
* @property {ChunkGraph} chunkGraph
|
|
26
27
|
* @property {RuntimeSpec} runtime
|
|
@@ -28,12 +29,14 @@ const memoize = require("./util/memoize");
|
|
|
28
29
|
*/
|
|
29
30
|
|
|
30
31
|
/**
|
|
32
|
+
* Defines the source position type used by this module.
|
|
31
33
|
* @typedef {object} SourcePosition
|
|
32
34
|
* @property {number} line
|
|
33
35
|
* @property {number=} column
|
|
34
36
|
*/
|
|
35
37
|
|
|
36
38
|
/**
|
|
39
|
+
* Defines the real dependency location type used by this module.
|
|
37
40
|
* @typedef {object} RealDependencyLocation
|
|
38
41
|
* @property {SourcePosition} start
|
|
39
42
|
* @property {SourcePosition=} end
|
|
@@ -41,6 +44,7 @@ const memoize = require("./util/memoize");
|
|
|
41
44
|
*/
|
|
42
45
|
|
|
43
46
|
/**
|
|
47
|
+
* Defines the synthetic dependency location type used by this module.
|
|
44
48
|
* @typedef {object} SyntheticDependencyLocation
|
|
45
49
|
* @property {string} name
|
|
46
50
|
* @property {number=} index
|
|
@@ -51,20 +55,24 @@ const memoize = require("./util/memoize");
|
|
|
51
55
|
/** @typedef {string} ExportInfoName */
|
|
52
56
|
|
|
53
57
|
/**
|
|
58
|
+
* Defines the export spec type used by this module.
|
|
54
59
|
* @typedef {object} ExportSpec
|
|
55
60
|
* @property {ExportInfoName} name the name of the export
|
|
56
61
|
* @property {boolean=} canMangle can the export be renamed (defaults to true)
|
|
57
62
|
* @property {boolean=} terminalBinding is the export a terminal binding that should be checked for export star conflicts
|
|
63
|
+
* @property {boolean=} isPure calling this export has no observable side effects
|
|
58
64
|
* @property {(string | ExportSpec)[]=} exports nested exports
|
|
59
65
|
* @property {ModuleGraphConnection=} from when reexported: from which module
|
|
60
66
|
* @property {string[] | null=} export when reexported: from which export
|
|
61
67
|
* @property {number=} priority when reexported: with which priority
|
|
62
68
|
* @property {boolean=} hidden export is not visible, because another export blends over it
|
|
69
|
+
* @property {import("./optimize/InlineExports").InlinedValue=} inlined when set: the export binds to a small primitive constant eligible for inlining
|
|
63
70
|
*/
|
|
64
71
|
|
|
65
72
|
/** @typedef {Set<string>} ExportsSpecExcludeExports */
|
|
66
73
|
|
|
67
74
|
/**
|
|
75
|
+
* Defines the exports spec type used by this module.
|
|
68
76
|
* @typedef {object} ExportsSpec
|
|
69
77
|
* @property {(string | ExportSpec)[] | true | null} exports exported names, true for unknown exports or null for no exports
|
|
70
78
|
* @property {ExportsSpecExcludeExports=} excludeExports when exports = true, list of unaffected exports
|
|
@@ -73,13 +81,16 @@ const memoize = require("./util/memoize");
|
|
|
73
81
|
* @property {number=} priority when reexported: with which priority
|
|
74
82
|
* @property {boolean=} canMangle can the export be renamed (defaults to true)
|
|
75
83
|
* @property {boolean=} terminalBinding are the exports terminal bindings that should be checked for export star conflicts
|
|
84
|
+
* @property {boolean=} isPure calling these exports has no observable side effects
|
|
76
85
|
* @property {Module[]=} dependencies module on which the result depends on
|
|
77
86
|
*/
|
|
78
87
|
|
|
79
88
|
/**
|
|
89
|
+
* Defines the referenced export type used by this module.
|
|
80
90
|
* @typedef {object} ReferencedExport
|
|
81
91
|
* @property {string[]} name name of the referenced export
|
|
82
92
|
* @property {boolean=} canMangle when false, referenced export can not be mangled, defaults to true
|
|
93
|
+
* @property {boolean=} canInline when false, the referenced export can not be substituted with an inlined literal at this site, defaults to true
|
|
83
94
|
*/
|
|
84
95
|
|
|
85
96
|
/** @typedef {string[][]} RawReferencedExports */
|
|
@@ -87,6 +98,20 @@ const memoize = require("./util/memoize");
|
|
|
87
98
|
|
|
88
99
|
/** @typedef {(moduleGraphConnection: ModuleGraphConnection, runtime: RuntimeSpec) => ConnectionState} GetConditionFn */
|
|
89
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Lazy barrel classification of a dependency within a side-effect-free module.
|
|
103
|
+
* `LAZY_UNTIL_LOCAL`: locally provided export name (`getLazyName`), requesting it requires no dependency.
|
|
104
|
+
* `LAZY_UNTIL_ID`: named re-export (`getLazyName`) deferred until the export name is requested.
|
|
105
|
+
* `LAZY_UNTIL_FALLBACK`: star re-export, deferred until an unknown name or all names are requested.
|
|
106
|
+
* `LAZY_UNTIL_REQUEST`: deferred together with other dependencies of the same request.
|
|
107
|
+
* @typedef {"local" | "id" | "*" | "@"} LazyUntil
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
const LAZY_UNTIL_LOCAL = /** @type {"local"} */ ("local");
|
|
111
|
+
const LAZY_UNTIL_ID = /** @type {"id"} */ ("id");
|
|
112
|
+
const LAZY_UNTIL_FALLBACK = /** @type {"*"} */ ("*");
|
|
113
|
+
const LAZY_UNTIL_REQUEST = /** @type {"@"} */ ("@");
|
|
114
|
+
|
|
90
115
|
const TRANSITIVE = /** @type {symbol} */ (Symbol("transitive"));
|
|
91
116
|
|
|
92
117
|
const getIgnoredModule = memoize(() => {
|
|
@@ -105,15 +130,16 @@ class Dependency {
|
|
|
105
130
|
this._parentDependenciesBlock = undefined;
|
|
106
131
|
/** @type {number} */
|
|
107
132
|
this._parentDependenciesBlockIndex = -1;
|
|
108
|
-
//
|
|
109
|
-
/** @type {boolean} */
|
|
110
|
-
this.weak = false;
|
|
111
|
-
// TODO check if this can be moved into ModuleDependency
|
|
133
|
+
// stays on base: also set on ContextDependency, which is not a ModuleDependency
|
|
112
134
|
/** @type {boolean | undefined} */
|
|
113
135
|
this.optional = false;
|
|
136
|
+
/** @type {number} */
|
|
114
137
|
this._locSL = 0;
|
|
138
|
+
/** @type {number} */
|
|
115
139
|
this._locSC = 0;
|
|
140
|
+
/** @type {number} */
|
|
116
141
|
this._locEL = 0;
|
|
142
|
+
/** @type {number} */
|
|
117
143
|
this._locEC = 0;
|
|
118
144
|
/** @type {undefined | number} */
|
|
119
145
|
this._locI = undefined;
|
|
@@ -124,6 +150,7 @@ class Dependency {
|
|
|
124
150
|
}
|
|
125
151
|
|
|
126
152
|
/**
|
|
153
|
+
* Returns a display name for the type of dependency.
|
|
127
154
|
* @returns {string} a display name for the type of dependency
|
|
128
155
|
*/
|
|
129
156
|
get type() {
|
|
@@ -131,6 +158,7 @@ class Dependency {
|
|
|
131
158
|
}
|
|
132
159
|
|
|
133
160
|
/**
|
|
161
|
+
* Returns a dependency category, typical categories are "commonjs", "amd", "esm".
|
|
134
162
|
* @returns {string} a dependency category, typical categories are "commonjs", "amd", "esm"
|
|
135
163
|
*/
|
|
136
164
|
get category() {
|
|
@@ -138,6 +166,7 @@ class Dependency {
|
|
|
138
166
|
}
|
|
139
167
|
|
|
140
168
|
/**
|
|
169
|
+
* Returns location.
|
|
141
170
|
* @returns {DependencyLocation} location
|
|
142
171
|
*/
|
|
143
172
|
get loc() {
|
|
@@ -179,10 +208,14 @@ class Dependency {
|
|
|
179
208
|
}
|
|
180
209
|
this._locI = "index" in loc ? loc.index : undefined;
|
|
181
210
|
this._locN = "name" in loc ? loc.name : undefined;
|
|
182
|
-
|
|
211
|
+
// Don't retain the passed object; `get loc` rebuilds it from the numbers
|
|
212
|
+
// above on demand, so dependencies whose loc is never read hold 4 numbers
|
|
213
|
+
// instead of a SourceLocation + two Position objects.
|
|
214
|
+
this._loc = undefined;
|
|
183
215
|
}
|
|
184
216
|
|
|
185
217
|
/**
|
|
218
|
+
* Updates loc using the provided start line.
|
|
186
219
|
* @param {number} startLine start line
|
|
187
220
|
* @param {number} startColumn start column
|
|
188
221
|
* @param {number} endLine end line
|
|
@@ -199,6 +232,43 @@ class Dependency {
|
|
|
199
232
|
}
|
|
200
233
|
|
|
201
234
|
/**
|
|
235
|
+
* Updates loc from a source location plus an explicit index, without
|
|
236
|
+
* materializing the `loc` object (keeps `get loc` lazy). Replaces the
|
|
237
|
+
* `dep.loc = Object.create(loc); dep.loc.index = i` pattern, which both
|
|
238
|
+
* allocated a copy and stored the index outside the serialized fields.
|
|
239
|
+
* @param {DependencyLocation} loc source location (start/end/name read from it)
|
|
240
|
+
* @param {number} index dependency index within the statement
|
|
241
|
+
*/
|
|
242
|
+
setLocWithIndex(loc, index) {
|
|
243
|
+
this.loc = loc;
|
|
244
|
+
this._locI = index;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Compares two dependencies by source location for sorting a module's
|
|
249
|
+
* `dependencies`, without materializing the `loc` objects (`get loc` caches
|
|
250
|
+
* its result, so comparing through it would retain a location object on every
|
|
251
|
+
* sorted dependency). These dependencies always carry a real source position,
|
|
252
|
+
* so only start (line, column) and the within-statement index are compared; a
|
|
253
|
+
* dependency without an index sorts after one that has an index at the same
|
|
254
|
+
* position.
|
|
255
|
+
* @param {Dependency} a first dependency
|
|
256
|
+
* @param {Dependency} b second dependency
|
|
257
|
+
* @returns {-1 | 0 | 1} compare result
|
|
258
|
+
*/
|
|
259
|
+
static compareLocations(a, b) {
|
|
260
|
+
if (a._locSL !== b._locSL) return a._locSL < b._locSL ? -1 : 1;
|
|
261
|
+
if (a._locSC !== b._locSC) return a._locSC < b._locSC ? -1 : 1;
|
|
262
|
+
const ai = a._locI;
|
|
263
|
+
const bi = b._locI;
|
|
264
|
+
if (ai === bi) return 0;
|
|
265
|
+
if (ai === undefined) return 1;
|
|
266
|
+
if (bi === undefined) return -1;
|
|
267
|
+
return ai < bi ? -1 : 1;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Returns a request context.
|
|
202
272
|
* @returns {string | undefined} a request context
|
|
203
273
|
*/
|
|
204
274
|
getContext() {
|
|
@@ -206,6 +276,7 @@ class Dependency {
|
|
|
206
276
|
}
|
|
207
277
|
|
|
208
278
|
/**
|
|
279
|
+
* Returns an identifier to merge equal requests.
|
|
209
280
|
* @returns {string | null} an identifier to merge equal requests
|
|
210
281
|
*/
|
|
211
282
|
getResourceIdentifier() {
|
|
@@ -213,12 +284,52 @@ class Dependency {
|
|
|
213
284
|
}
|
|
214
285
|
|
|
215
286
|
/**
|
|
287
|
+
* Could affect referencing module.
|
|
216
288
|
* @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
|
|
217
289
|
*/
|
|
218
290
|
couldAffectReferencingModule() {
|
|
219
291
|
return TRANSITIVE;
|
|
220
292
|
}
|
|
221
293
|
|
|
294
|
+
/**
|
|
295
|
+
* Returns the export name this dependency requests from its target module (lazy barrel optimization).
|
|
296
|
+
* @returns {string | true | null} export name, true for all exports, null for none
|
|
297
|
+
*/
|
|
298
|
+
getForwardId() {
|
|
299
|
+
// unknown dependency types conservatively request all exports
|
|
300
|
+
return true;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Returns how this dependency may be deferred when its parent module is side-effect-free (lazy barrel optimization).
|
|
305
|
+
* @returns {LazyUntil | null} lazy classification, null when it must be processed eagerly
|
|
306
|
+
*/
|
|
307
|
+
getLazyUntil() {
|
|
308
|
+
return null;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Returns the export name for a `LAZY_UNTIL_LOCAL`/`LAZY_UNTIL_ID` classification (lazy barrel optimization).
|
|
313
|
+
* @returns {string | null} export name, null when not applicable
|
|
314
|
+
*/
|
|
315
|
+
getLazyName() {
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Whether the lazy barrel currently defers creating this dependency's target module (lazy barrel optimization).
|
|
321
|
+
* @returns {boolean} true while deferred, so it must not be processed or rendered
|
|
322
|
+
*/
|
|
323
|
+
isLazy() {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Sets whether the lazy barrel defers creating this dependency's target module (lazy barrel optimization).
|
|
329
|
+
* @param {boolean} value true to defer, false to create it now
|
|
330
|
+
*/
|
|
331
|
+
setLazy(value) {}
|
|
332
|
+
|
|
222
333
|
/**
|
|
223
334
|
* Returns the referenced module and export
|
|
224
335
|
* @deprecated
|
|
@@ -242,6 +353,7 @@ class Dependency {
|
|
|
242
353
|
}
|
|
243
354
|
|
|
244
355
|
/**
|
|
356
|
+
* Returns function to determine if the connection is active.
|
|
245
357
|
* @param {ModuleGraph} moduleGraph module graph
|
|
246
358
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
247
359
|
*/
|
|
@@ -259,7 +371,7 @@ class Dependency {
|
|
|
259
371
|
}
|
|
260
372
|
|
|
261
373
|
/**
|
|
262
|
-
* Returns warnings
|
|
374
|
+
* Returns warnings.
|
|
263
375
|
* @param {ModuleGraph} moduleGraph module graph
|
|
264
376
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
265
377
|
*/
|
|
@@ -268,7 +380,7 @@ class Dependency {
|
|
|
268
380
|
}
|
|
269
381
|
|
|
270
382
|
/**
|
|
271
|
-
* Returns errors
|
|
383
|
+
* Returns errors.
|
|
272
384
|
* @param {ModuleGraph} moduleGraph module graph
|
|
273
385
|
* @returns {WebpackError[] | null | undefined} errors
|
|
274
386
|
*/
|
|
@@ -277,7 +389,7 @@ class Dependency {
|
|
|
277
389
|
}
|
|
278
390
|
|
|
279
391
|
/**
|
|
280
|
-
*
|
|
392
|
+
* Updates the hash with the data contributed by this instance.
|
|
281
393
|
* @param {Hash} hash hash to be updated
|
|
282
394
|
* @param {UpdateHashContext} context context
|
|
283
395
|
* @returns {void}
|
|
@@ -293,6 +405,7 @@ class Dependency {
|
|
|
293
405
|
}
|
|
294
406
|
|
|
295
407
|
/**
|
|
408
|
+
* Gets module evaluation side effects state.
|
|
296
409
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
297
410
|
* @returns {ConnectionState} how this dependency connects the module to referencing modules
|
|
298
411
|
*/
|
|
@@ -301,6 +414,7 @@ class Dependency {
|
|
|
301
414
|
}
|
|
302
415
|
|
|
303
416
|
/**
|
|
417
|
+
* Creates an ignored module.
|
|
304
418
|
* @param {string} context context directory
|
|
305
419
|
* @returns {Module} ignored module
|
|
306
420
|
*/
|
|
@@ -309,10 +423,18 @@ class Dependency {
|
|
|
309
423
|
}
|
|
310
424
|
|
|
311
425
|
/**
|
|
426
|
+
* Returns true if this dependency can be concatenated
|
|
427
|
+
* @returns {boolean} true if this dependency can be concatenated
|
|
428
|
+
*/
|
|
429
|
+
canConcatenate() {
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Serializes this instance into the provided serializer context.
|
|
312
435
|
* @param {ObjectSerializerContext} context context
|
|
313
436
|
*/
|
|
314
437
|
serialize({ write }) {
|
|
315
|
-
write(this.weak);
|
|
316
438
|
write(this.optional);
|
|
317
439
|
write(this._locSL);
|
|
318
440
|
write(this._locSC);
|
|
@@ -323,10 +445,10 @@ class Dependency {
|
|
|
323
445
|
}
|
|
324
446
|
|
|
325
447
|
/**
|
|
448
|
+
* Restores this instance from the provided deserializer context.
|
|
326
449
|
* @param {ObjectDeserializerContext} context context
|
|
327
450
|
*/
|
|
328
451
|
deserialize({ read }) {
|
|
329
|
-
this.weak = read();
|
|
330
452
|
this.optional = read();
|
|
331
453
|
this._locSL = read();
|
|
332
454
|
this._locSC = read();
|
|
@@ -341,10 +463,16 @@ class Dependency {
|
|
|
341
463
|
Dependency.NO_EXPORTS_REFERENCED = [];
|
|
342
464
|
/** @type {RawReferencedExports} */
|
|
343
465
|
Dependency.EXPORTS_OBJECT_REFERENCED = [[]];
|
|
466
|
+
// Like EXPORTS_OBJECT_REFERENCED, but the reference can be rendered as a
|
|
467
|
+
// decoupled namespace object, so the module's exports stay mangleable.
|
|
468
|
+
// Same shape as EXPORTS_OBJECT_REFERENCED; only distinguished by identity.
|
|
469
|
+
/** @type {RawReferencedExports} */
|
|
470
|
+
Dependency.EXPORTS_OBJECT_REFERENCED_MANGLEABLE = [[]];
|
|
344
471
|
|
|
345
472
|
// TODO remove in webpack 6
|
|
346
473
|
Object.defineProperty(Dependency.prototype, "module", {
|
|
347
474
|
/**
|
|
475
|
+
* Returns throws.
|
|
348
476
|
* @deprecated
|
|
349
477
|
* @returns {EXPECTED_ANY} throws
|
|
350
478
|
*/
|
|
@@ -355,6 +483,7 @@ Object.defineProperty(Dependency.prototype, "module", {
|
|
|
355
483
|
},
|
|
356
484
|
|
|
357
485
|
/**
|
|
486
|
+
* Updates module.
|
|
358
487
|
* @deprecated
|
|
359
488
|
* @returns {never} throws
|
|
360
489
|
*/
|
|
@@ -366,15 +495,30 @@ Object.defineProperty(Dependency.prototype, "module", {
|
|
|
366
495
|
});
|
|
367
496
|
|
|
368
497
|
/**
|
|
498
|
+
* Returns true if the dependency is a low priority dependency.
|
|
369
499
|
* @param {Dependency} dependency dep
|
|
370
500
|
* @returns {boolean} true if the dependency is a low priority dependency
|
|
371
501
|
*/
|
|
372
502
|
Dependency.isLowPriorityDependency = (dependency) =>
|
|
373
503
|
/** @type {ModuleDependency} */ (dependency).sourceOrder === Infinity;
|
|
374
504
|
|
|
505
|
+
// TODO in webpack 6, call canConcatenate() directly on the dependency instance instead of using this static method.
|
|
506
|
+
/**
|
|
507
|
+
* Returns true if the dependency can be concatenated (scope hoisting).
|
|
508
|
+
* @param {Dependency} dependency dep
|
|
509
|
+
* @returns {boolean} true if this dependency supports concatenation
|
|
510
|
+
*/
|
|
511
|
+
Dependency.canConcatenate = (dependency) => {
|
|
512
|
+
if (typeof dependency.canConcatenate === "function") {
|
|
513
|
+
return dependency.canConcatenate();
|
|
514
|
+
}
|
|
515
|
+
return false;
|
|
516
|
+
};
|
|
517
|
+
|
|
375
518
|
// TODO remove in webpack 6
|
|
376
519
|
Object.defineProperty(Dependency.prototype, "disconnect", {
|
|
377
520
|
/**
|
|
521
|
+
* Returns throws.
|
|
378
522
|
* @deprecated
|
|
379
523
|
* @returns {EXPECTED_ANY} throws
|
|
380
524
|
*/
|
|
@@ -386,5 +530,9 @@ Object.defineProperty(Dependency.prototype, "disconnect", {
|
|
|
386
530
|
});
|
|
387
531
|
|
|
388
532
|
Dependency.TRANSITIVE = TRANSITIVE;
|
|
533
|
+
Dependency.LAZY_UNTIL_LOCAL = LAZY_UNTIL_LOCAL;
|
|
534
|
+
Dependency.LAZY_UNTIL_ID = LAZY_UNTIL_ID;
|
|
535
|
+
Dependency.LAZY_UNTIL_FALLBACK = LAZY_UNTIL_FALLBACK;
|
|
536
|
+
Dependency.LAZY_UNTIL_REQUEST = LAZY_UNTIL_REQUEST;
|
|
389
537
|
|
|
390
538
|
module.exports = Dependency;
|
|
@@ -19,11 +19,13 @@
|
|
|
19
19
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
+
* Defines the init fragment type used by this module.
|
|
22
23
|
* @template T
|
|
23
24
|
* @typedef {import("./InitFragment")<T>} InitFragment
|
|
24
25
|
*/
|
|
25
26
|
|
|
26
27
|
/**
|
|
28
|
+
* Defines the dependency template context type used by this module.
|
|
27
29
|
* @typedef {object} DependencyTemplateContext
|
|
28
30
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
|
29
31
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -39,15 +41,18 @@
|
|
|
39
41
|
*/
|
|
40
42
|
|
|
41
43
|
/**
|
|
44
|
+
* Defines the css dependency template context extras type used by this module.
|
|
42
45
|
* @typedef {object} CssDependencyTemplateContextExtras
|
|
43
46
|
* @property {CssData} cssData the css exports data
|
|
44
47
|
* @property {string} type the css exports data
|
|
45
48
|
*/
|
|
46
49
|
|
|
47
50
|
/**
|
|
51
|
+
* Defines the css data type used by this module.
|
|
48
52
|
* @typedef {object} CssData
|
|
49
53
|
* @property {boolean} esModule whether export __esModule
|
|
50
54
|
* @property {Map<string, string>} exports the css exports
|
|
55
|
+
* @property {Map<string, { line: number, column: number }>=} exportLocs source position (line is 1-based, column is 0-based) of each export's defining identifier in the original CSS, used to emit fine-grained JS-to-CSS source mappings
|
|
51
56
|
*/
|
|
52
57
|
|
|
53
58
|
/** @typedef {DependencyTemplateContext & CssDependencyTemplateContextExtras} CssDependencyTemplateContext */
|
|
@@ -55,6 +60,7 @@
|
|
|
55
60
|
class DependencyTemplate {
|
|
56
61
|
/* istanbul ignore next */
|
|
57
62
|
/**
|
|
63
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
58
64
|
* @abstract
|
|
59
65
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
60
66
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
@@ -62,7 +68,7 @@ class DependencyTemplate {
|
|
|
62
68
|
* @returns {void}
|
|
63
69
|
*/
|
|
64
70
|
apply(dependency, source, templateContext) {
|
|
65
|
-
const AbstractMethodError = require("./AbstractMethodError");
|
|
71
|
+
const AbstractMethodError = require("./errors/AbstractMethodError");
|
|
66
72
|
|
|
67
73
|
throw new AbstractMethodError();
|
|
68
74
|
}
|
|
@@ -14,6 +14,7 @@ const createHash = require("./util/createHash");
|
|
|
14
14
|
|
|
15
15
|
class DependencyTemplates {
|
|
16
16
|
/**
|
|
17
|
+
* Creates an instance of DependencyTemplates.
|
|
17
18
|
* @param {HashFunction} hashFunction the hash function to use
|
|
18
19
|
*/
|
|
19
20
|
constructor(hashFunction = DEFAULTS.HASH_FUNCTION) {
|
|
@@ -26,6 +27,7 @@ class DependencyTemplates {
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
/**
|
|
30
|
+
* Returns template for this dependency.
|
|
29
31
|
* @param {DependencyConstructor} dependency Constructor of Dependency
|
|
30
32
|
* @returns {DependencyTemplate | undefined} template for this dependency
|
|
31
33
|
*/
|
|
@@ -34,6 +36,7 @@ class DependencyTemplates {
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
/**
|
|
39
|
+
* Updates value using the provided dependency.
|
|
37
40
|
* @param {DependencyConstructor} dependency Constructor of Dependency
|
|
38
41
|
* @param {DependencyTemplate} dependencyTemplate template for this dependency
|
|
39
42
|
* @returns {void}
|
|
@@ -43,6 +46,7 @@ class DependencyTemplates {
|
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/**
|
|
49
|
+
* Updates the hash with the data contributed by this instance.
|
|
46
50
|
* @param {string} part additional hash contributor
|
|
47
51
|
* @returns {void}
|
|
48
52
|
*/
|
package/lib/DotenvPlugin.js
CHANGED
|
@@ -214,6 +214,7 @@ const envToDefinitions = (env) => {
|
|
|
214
214
|
|
|
215
215
|
class DotenvPlugin {
|
|
216
216
|
/**
|
|
217
|
+
* Creates an instance of DotenvPlugin.
|
|
217
218
|
* @param {DotenvPluginOptions=} options options object
|
|
218
219
|
*/
|
|
219
220
|
constructor(options = {}) {
|
|
@@ -222,6 +223,7 @@ class DotenvPlugin {
|
|
|
222
223
|
}
|
|
223
224
|
|
|
224
225
|
/**
|
|
226
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
225
227
|
* @param {Compiler} compiler the compiler instance
|
|
226
228
|
* @returns {void}
|
|
227
229
|
*/
|
|
@@ -355,6 +357,7 @@ class DotenvPlugin {
|
|
|
355
357
|
}
|
|
356
358
|
|
|
357
359
|
/**
|
|
360
|
+
* Loads the provided compiler.
|
|
358
361
|
* @private
|
|
359
362
|
* @param {Compiler} compiler compiler
|
|
360
363
|
* @param {ItemCacheFacade} itemCache item cache facade
|
|
@@ -21,6 +21,7 @@ const PLUGIN_NAME = "DynamicEntryPlugin";
|
|
|
21
21
|
|
|
22
22
|
class DynamicEntryPlugin {
|
|
23
23
|
/**
|
|
24
|
+
* Creates an instance of DynamicEntryPlugin.
|
|
24
25
|
* @param {string} context the context path
|
|
25
26
|
* @param {EntryDynamic} entry the entry value
|
|
26
27
|
*/
|
|
@@ -32,7 +33,7 @@ class DynamicEntryPlugin {
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
|
-
*
|
|
36
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
36
37
|
* @param {Compiler} compiler the compiler instance
|
|
37
38
|
* @returns {void}
|
|
38
39
|
*/
|
|
@@ -65,6 +66,7 @@ class DynamicEntryPlugin {
|
|
|
65
66
|
promises.push(
|
|
66
67
|
new Promise(
|
|
67
68
|
/**
|
|
69
|
+
* Handles the callback logic for this hook.
|
|
68
70
|
* @param {(value?: undefined) => void} resolve resolve
|
|
69
71
|
* @param {(reason?: Error) => void} reject reject
|
|
70
72
|
*/
|
package/lib/EntryOptionPlugin.js
CHANGED
|
@@ -5,15 +5,41 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const { SyncBailHook } = require("tapable");
|
|
9
|
+
|
|
8
10
|
/** @typedef {import("../declarations/WebpackOptions").EntryDescriptionNormalized} EntryDescription */
|
|
9
11
|
/** @typedef {import("../declarations/WebpackOptions").EntryNormalized} Entry */
|
|
10
12
|
/** @typedef {import("./Compiler")} Compiler */
|
|
11
13
|
/** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
|
|
12
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {object} EntryOptionPluginHooks
|
|
17
|
+
* @property {SyncBailHook<[string, string, EntryDescription], string | undefined>} entry transform an entry into a different request (e.g. wrap a non-HTML entry in a synthetic HTML module); return `undefined` to keep the default behavior
|
|
18
|
+
*/
|
|
19
|
+
|
|
13
20
|
const PLUGIN_NAME = "EntryOptionPlugin";
|
|
14
21
|
|
|
22
|
+
/** @type {WeakMap<Compiler, EntryOptionPluginHooks>} */
|
|
23
|
+
const hooksMap = new WeakMap();
|
|
24
|
+
|
|
15
25
|
class EntryOptionPlugin {
|
|
16
26
|
/**
|
|
27
|
+
* @param {Compiler} compiler the compiler
|
|
28
|
+
* @returns {EntryOptionPluginHooks} the hooks
|
|
29
|
+
*/
|
|
30
|
+
static getHooks(compiler) {
|
|
31
|
+
let hooks = hooksMap.get(compiler);
|
|
32
|
+
if (hooks === undefined) {
|
|
33
|
+
hooks = {
|
|
34
|
+
entry: new SyncBailHook(["context", "name", "entryDescription"])
|
|
35
|
+
};
|
|
36
|
+
hooksMap.set(compiler, hooks);
|
|
37
|
+
}
|
|
38
|
+
return hooks;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
17
43
|
* @param {Compiler} compiler the compiler instance one is tapping into
|
|
18
44
|
* @returns {void}
|
|
19
45
|
*/
|
|
@@ -25,6 +51,7 @@ class EntryOptionPlugin {
|
|
|
25
51
|
}
|
|
26
52
|
|
|
27
53
|
/**
|
|
54
|
+
* Apply entry option.
|
|
28
55
|
* @param {Compiler} compiler the compiler
|
|
29
56
|
* @param {string} context context directory
|
|
30
57
|
* @param {Entry} entry request
|
|
@@ -48,14 +75,26 @@ class EntryOptionPlugin {
|
|
|
48
75
|
const descImport =
|
|
49
76
|
/** @type {Exclude<EntryDescription["import"], undefined>} */
|
|
50
77
|
(desc.import);
|
|
51
|
-
|
|
52
|
-
|
|
78
|
+
// A plugin (e.g. HtmlModulesPlugin) may rewrite the entry into a
|
|
79
|
+
// single synthetic request; otherwise each import becomes an entry.
|
|
80
|
+
const request = EntryOptionPlugin.getHooks(compiler).entry.call(
|
|
81
|
+
context,
|
|
82
|
+
name,
|
|
83
|
+
desc
|
|
84
|
+
);
|
|
85
|
+
if (request !== undefined) {
|
|
86
|
+
new EntryPlugin(context, request, options).apply(compiler);
|
|
87
|
+
} else {
|
|
88
|
+
for (const entry of descImport) {
|
|
89
|
+
new EntryPlugin(context, entry, options).apply(compiler);
|
|
90
|
+
}
|
|
53
91
|
}
|
|
54
92
|
}
|
|
55
93
|
}
|
|
56
94
|
}
|
|
57
95
|
|
|
58
96
|
/**
|
|
97
|
+
* Entry description to options.
|
|
59
98
|
* @param {Compiler} compiler the compiler
|
|
60
99
|
* @param {string} name entry name
|
|
61
100
|
* @param {EntryDescription} desc entry description
|
|
@@ -74,6 +113,7 @@ class EntryOptionPlugin {
|
|
|
74
113
|
chunkLoading: desc.chunkLoading,
|
|
75
114
|
asyncChunks: desc.asyncChunks,
|
|
76
115
|
wasmLoading: desc.wasmLoading,
|
|
116
|
+
worker: desc.worker,
|
|
77
117
|
library: desc.library
|
|
78
118
|
};
|
|
79
119
|
if (desc.chunkLoading) {
|
package/lib/EntryPlugin.js
CHANGED
|
@@ -20,13 +20,15 @@ class EntryPlugin {
|
|
|
20
20
|
* @param {EntryOptions | string=} options entry options (passing a string is deprecated)
|
|
21
21
|
*/
|
|
22
22
|
constructor(context, entry, options) {
|
|
23
|
+
/** @type {string} */
|
|
23
24
|
this.context = context;
|
|
25
|
+
/** @type {string} */
|
|
24
26
|
this.entry = entry;
|
|
25
27
|
this.options = options || "";
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
|
-
*
|
|
31
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
30
32
|
* @param {Compiler} compiler the compiler instance
|
|
31
33
|
* @returns {void}
|
|
32
34
|
*/
|
|
@@ -52,6 +54,7 @@ class EntryPlugin {
|
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
/**
|
|
57
|
+
* Creates a dependency.
|
|
55
58
|
* @param {string} entry entry request
|
|
56
59
|
* @param {EntryOptions | string} options entry options (passing string is deprecated)
|
|
57
60
|
* @returns {EntryDependency} the dependency
|