webpack 5.106.1 → 5.107.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 +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- 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 +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +101 -19
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -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 +2 -1
- package/lib/ProgressPlugin.js +158 -68
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +19 -6
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +33 -4
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +5 -2
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- 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} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -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 +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -0
- package/lib/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -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 +22 -1
- 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 +39 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- 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 +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -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 +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- 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 +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- 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 +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- 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 +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -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 +18 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- 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 +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- 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 +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- 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/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /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
|
@@ -10,6 +10,11 @@ const { equals } = require("../util/ArrayHelpers");
|
|
|
10
10
|
const { getTrimmedIdsAndRange } = require("../util/chainedImports");
|
|
11
11
|
const makeSerializable = require("../util/makeSerializable");
|
|
12
12
|
const { propertyAccess } = require("../util/property");
|
|
13
|
+
const {
|
|
14
|
+
ESM_MODULE_EXPORTS_NAME,
|
|
15
|
+
getRequireEsmModuleExportsAccess,
|
|
16
|
+
isRequireEsmModuleExportsModule
|
|
17
|
+
} = require("./CommonJsDependencyHelpers");
|
|
13
18
|
const ModuleDependency = require("./ModuleDependency");
|
|
14
19
|
|
|
15
20
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
@@ -26,6 +31,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
26
31
|
|
|
27
32
|
class CommonJsFullRequireDependency extends ModuleDependency {
|
|
28
33
|
/**
|
|
34
|
+
* Creates an instance of CommonJsFullRequireDependency.
|
|
29
35
|
* @param {string} request the request string
|
|
30
36
|
* @param {Range} range location in source code
|
|
31
37
|
* @param {ExportInfoName[]} names accessed properties on module
|
|
@@ -54,19 +60,28 @@ class CommonJsFullRequireDependency extends ModuleDependency {
|
|
|
54
60
|
* @returns {ReferencedExports} referenced exports
|
|
55
61
|
*/
|
|
56
62
|
getReferencedExports(moduleGraph, runtime) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const importedModule = moduleGraph.getModule(this);
|
|
64
|
+
if (
|
|
65
|
+
importedModule &&
|
|
66
|
+
isRequireEsmModuleExportsModule(importedModule, moduleGraph)
|
|
67
|
+
) {
|
|
68
|
+
// When `require(esm)` unwraps a `"module.exports"` named export, the
|
|
69
|
+
// user's property access lands on that value (which webpack does not
|
|
70
|
+
// model), so only the "module.exports" export itself is referenced.
|
|
71
|
+
return [[ESM_MODULE_EXPORTS_NAME]];
|
|
72
|
+
}
|
|
73
|
+
if (
|
|
74
|
+
this.call &&
|
|
75
|
+
(!importedModule ||
|
|
76
|
+
importedModule.getExportsType(moduleGraph, false) !== "namespace")
|
|
77
|
+
) {
|
|
78
|
+
return [this.names.slice(0, -1)];
|
|
65
79
|
}
|
|
66
80
|
return [this.names];
|
|
67
81
|
}
|
|
68
82
|
|
|
69
83
|
/**
|
|
84
|
+
* Serializes this instance into the provided serializer context.
|
|
70
85
|
* @param {ObjectSerializerContext} context context
|
|
71
86
|
*/
|
|
72
87
|
serialize(context) {
|
|
@@ -79,6 +94,7 @@ class CommonJsFullRequireDependency extends ModuleDependency {
|
|
|
79
94
|
}
|
|
80
95
|
|
|
81
96
|
/**
|
|
97
|
+
* Restores this instance from the provided deserializer context.
|
|
82
98
|
* @param {ObjectDeserializerContext} context context
|
|
83
99
|
*/
|
|
84
100
|
deserialize(context) {
|
|
@@ -103,6 +119,7 @@ CommonJsFullRequireDependency.Template = class CommonJsFullRequireDependencyTemp
|
|
|
103
119
|
ModuleDependency.Template
|
|
104
120
|
) {
|
|
105
121
|
/**
|
|
122
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
106
123
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
107
124
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
108
125
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -124,6 +141,10 @@ CommonJsFullRequireDependency.Template = class CommonJsFullRequireDependencyTemp
|
|
|
124
141
|
runtimeRequirements
|
|
125
142
|
});
|
|
126
143
|
|
|
144
|
+
const esmRequireAccess = importedModule
|
|
145
|
+
? getRequireEsmModuleExportsAccess(importedModule, moduleGraph, runtime)
|
|
146
|
+
: null;
|
|
147
|
+
|
|
127
148
|
const {
|
|
128
149
|
trimmedRange: [trimmedRangeStart, trimmedRangeEnd],
|
|
129
150
|
trimmedIds
|
|
@@ -135,7 +156,13 @@ CommonJsFullRequireDependency.Template = class CommonJsFullRequireDependencyTemp
|
|
|
135
156
|
dep
|
|
136
157
|
);
|
|
137
158
|
|
|
138
|
-
if (
|
|
159
|
+
if (esmRequireAccess !== null) {
|
|
160
|
+
const access = `${esmRequireAccess}${propertyAccess(trimmedIds)}`;
|
|
161
|
+
requireExpr =
|
|
162
|
+
dep.asiSafe === true
|
|
163
|
+
? `(${requireExpr}${access})`
|
|
164
|
+
: `${requireExpr}${access}`;
|
|
165
|
+
} else if (importedModule) {
|
|
139
166
|
const usedImported = moduleGraph
|
|
140
167
|
.getExportsInfo(importedModule)
|
|
141
168
|
.getUsedName(trimmedIds, runtime);
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const CommentCompilationWarning = require("../CommentCompilationWarning");
|
|
9
8
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
|
-
const
|
|
9
|
+
const CommentCompilationWarning = require("../errors/CommentCompilationWarning");
|
|
10
|
+
const UnsupportedFeatureWarning = require("../errors/UnsupportedFeatureWarning");
|
|
11
11
|
const {
|
|
12
12
|
evaluateToIdentifier,
|
|
13
13
|
evaluateToString,
|
|
@@ -42,6 +42,7 @@ const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency
|
|
|
42
42
|
/** @typedef {import("./LocalModule")} LocalModule */
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
+
* Defines the common js import settings type used by this module.
|
|
45
46
|
* @typedef {object} CommonJsImportSettings
|
|
46
47
|
* @property {string=} name
|
|
47
48
|
* @property {string} context
|
|
@@ -50,6 +51,7 @@ const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency
|
|
|
50
51
|
const PLUGIN_NAME = "CommonJsImportsParserPlugin";
|
|
51
52
|
|
|
52
53
|
/**
|
|
54
|
+
* Checks whether this object is require call expression.
|
|
53
55
|
* @param {Expression} expression expression
|
|
54
56
|
* @returns {boolean} true, when expression is `require(...)` or `module.require(...)`
|
|
55
57
|
*/
|
|
@@ -73,6 +75,7 @@ const isRequireCallExpression = (expression) => {
|
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
/**
|
|
78
|
+
* Gets require referenced exports from destructuring.
|
|
76
79
|
* @param {JavascriptParser} parser parser
|
|
77
80
|
* @param {CallExpression | NewExpression} expr expression
|
|
78
81
|
* @returns {RawReferencedExports | null} referenced exports from destructuring
|
|
@@ -92,6 +95,7 @@ const getRequireReferencedExportsFromDestructuring = (parser, expr) => {
|
|
|
92
95
|
};
|
|
93
96
|
|
|
94
97
|
/**
|
|
98
|
+
* Creates a require cache dependency.
|
|
95
99
|
* @param {JavascriptParser} parser parser
|
|
96
100
|
* @returns {(expr: Expression) => boolean} handler
|
|
97
101
|
*/
|
|
@@ -103,6 +107,7 @@ const createRequireCacheDependency = (parser) =>
|
|
|
103
107
|
]);
|
|
104
108
|
|
|
105
109
|
/**
|
|
110
|
+
* Creates a require as expression handler.
|
|
106
111
|
* @param {JavascriptParser} parser parser
|
|
107
112
|
* @param {JavascriptParserOptions} options options
|
|
108
113
|
* @param {() => undefined | string} getContext context accessor
|
|
@@ -132,6 +137,7 @@ const createRequireAsExpressionHandler =
|
|
|
132
137
|
};
|
|
133
138
|
|
|
134
139
|
/**
|
|
140
|
+
* Creates a require call handler.
|
|
135
141
|
* @param {JavascriptParser} parser parser
|
|
136
142
|
* @param {JavascriptParserOptions} options options
|
|
137
143
|
* @param {() => undefined | string} getContext context accessor
|
|
@@ -139,6 +145,7 @@ const createRequireAsExpressionHandler =
|
|
|
139
145
|
*/
|
|
140
146
|
const createRequireCallHandler = (parser, options, getContext) => {
|
|
141
147
|
/**
|
|
148
|
+
* Process require item.
|
|
142
149
|
* @param {CallExpression | NewExpression} expr expression
|
|
143
150
|
* @param {BasicEvaluatedExpression} param param
|
|
144
151
|
* @returns {boolean | void} true when handled
|
|
@@ -153,7 +160,8 @@ const createRequireCallHandler = (parser, options, getContext) => {
|
|
|
153
160
|
/** @type {string} */ (param.string),
|
|
154
161
|
/** @type {Range} */ (param.range),
|
|
155
162
|
getContext(),
|
|
156
|
-
referencedExports
|
|
163
|
+
referencedExports,
|
|
164
|
+
/** @type {Range} */ (expr.range)
|
|
157
165
|
);
|
|
158
166
|
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
|
159
167
|
dep.optional = Boolean(parser.scope.inTry);
|
|
@@ -162,6 +170,7 @@ const createRequireCallHandler = (parser, options, getContext) => {
|
|
|
162
170
|
}
|
|
163
171
|
};
|
|
164
172
|
/**
|
|
173
|
+
* Process require context.
|
|
165
174
|
* @param {CallExpression | NewExpression} expr expression
|
|
166
175
|
* @param {BasicEvaluatedExpression} param param
|
|
167
176
|
* @returns {boolean | void} true when handled
|
|
@@ -278,6 +287,7 @@ const createRequireCallHandler = (parser, options, getContext) => {
|
|
|
278
287
|
};
|
|
279
288
|
|
|
280
289
|
/**
|
|
290
|
+
* Creates a process resolve handler.
|
|
281
291
|
* @param {JavascriptParser} parser parser
|
|
282
292
|
* @param {JavascriptParserOptions} options options
|
|
283
293
|
* @param {() => undefined | string} getContext context accessor
|
|
@@ -285,6 +295,7 @@ const createRequireCallHandler = (parser, options, getContext) => {
|
|
|
285
295
|
*/
|
|
286
296
|
const createProcessResolveHandler = (parser, options, getContext) => {
|
|
287
297
|
/**
|
|
298
|
+
* Process resolve item.
|
|
288
299
|
* @param {CallExpression} expr call expression
|
|
289
300
|
* @param {BasicEvaluatedExpression} param param
|
|
290
301
|
* @param {boolean} weak weak
|
|
@@ -305,6 +316,7 @@ const createProcessResolveHandler = (parser, options, getContext) => {
|
|
|
305
316
|
}
|
|
306
317
|
};
|
|
307
318
|
/**
|
|
319
|
+
* Process resolve context.
|
|
308
320
|
* @param {CallExpression} expr call expression
|
|
309
321
|
* @param {BasicEvaluatedExpression} param param
|
|
310
322
|
* @param {boolean} weak weak
|
|
@@ -395,6 +407,7 @@ const createProcessResolveHandler = (parser, options, getContext) => {
|
|
|
395
407
|
|
|
396
408
|
class CommonJsImportsParserPlugin {
|
|
397
409
|
/**
|
|
410
|
+
* Creates an instance of CommonJsImportsParserPlugin.
|
|
398
411
|
* @param {JavascriptParserOptions} options parser options
|
|
399
412
|
*/
|
|
400
413
|
constructor(options) {
|
|
@@ -402,6 +415,7 @@ class CommonJsImportsParserPlugin {
|
|
|
402
415
|
}
|
|
403
416
|
|
|
404
417
|
/**
|
|
418
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
405
419
|
* @param {JavascriptParser} parser the parser
|
|
406
420
|
* @returns {void}
|
|
407
421
|
*/
|
|
@@ -425,6 +439,7 @@ class CommonJsImportsParserPlugin {
|
|
|
425
439
|
|
|
426
440
|
// #region metadata
|
|
427
441
|
/**
|
|
442
|
+
* Tap require expression.
|
|
428
443
|
* @param {string} expression expression
|
|
429
444
|
* @param {() => Members} getMembers get members
|
|
430
445
|
*/
|
|
@@ -491,6 +506,7 @@ class CommonJsImportsParserPlugin {
|
|
|
491
506
|
|
|
492
507
|
// #region Renaming
|
|
493
508
|
/**
|
|
509
|
+
* Returns true when set undefined.
|
|
494
510
|
* @param {Expression} expr expression
|
|
495
511
|
* @returns {boolean} true when set undefined
|
|
496
512
|
*/
|
|
@@ -516,6 +532,7 @@ class CommonJsImportsParserPlugin {
|
|
|
516
532
|
|
|
517
533
|
// #region Require as expression
|
|
518
534
|
/**
|
|
535
|
+
* Require as expression handler.
|
|
519
536
|
* @param {Expression} expr expression
|
|
520
537
|
* @returns {boolean} true when handled
|
|
521
538
|
*/
|
|
@@ -531,6 +548,7 @@ class CommonJsImportsParserPlugin {
|
|
|
531
548
|
|
|
532
549
|
// #region Require
|
|
533
550
|
/**
|
|
551
|
+
* Creates a require handler.
|
|
534
552
|
* @param {boolean} callNew true, when require is called with new
|
|
535
553
|
* @returns {(expr: CallExpression | NewExpression) => (boolean | void)} handler
|
|
536
554
|
*/
|
|
@@ -555,6 +573,7 @@ class CommonJsImportsParserPlugin {
|
|
|
555
573
|
|
|
556
574
|
// #region Require with property access
|
|
557
575
|
/**
|
|
576
|
+
* Returns true when handled.
|
|
558
577
|
* @param {Expression} expr expression
|
|
559
578
|
* @param {CalleeMembers} calleeMembers callee members
|
|
560
579
|
* @param {CallExpression} callExpr call expression
|
|
@@ -591,6 +610,7 @@ class CommonJsImportsParserPlugin {
|
|
|
591
610
|
}
|
|
592
611
|
};
|
|
593
612
|
/**
|
|
613
|
+
* Call chain handler.
|
|
594
614
|
* @param {CallExpression} expr expression
|
|
595
615
|
* @param {CalleeMembers} calleeMembers callee members
|
|
596
616
|
* @param {CallExpression} callExpr call expression
|
|
@@ -644,6 +664,7 @@ class CommonJsImportsParserPlugin {
|
|
|
644
664
|
|
|
645
665
|
// #region Require.resolve
|
|
646
666
|
/**
|
|
667
|
+
* Processes the provided expr.
|
|
647
668
|
* @param {CallExpression} expr call expression
|
|
648
669
|
* @param {boolean} weak weak
|
|
649
670
|
* @returns {boolean | void} true when handled
|
|
@@ -44,7 +44,7 @@ const PLUGIN_NAME = "CommonJsPlugin";
|
|
|
44
44
|
|
|
45
45
|
class CommonJsPlugin {
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
48
48
|
* @param {Compiler} compiler the compiler instance
|
|
49
49
|
* @returns {void}
|
|
50
50
|
*/
|
|
@@ -174,6 +174,7 @@ class CommonJsPlugin {
|
|
|
174
174
|
});
|
|
175
175
|
|
|
176
176
|
/**
|
|
177
|
+
* Handles the hook callback for this code path.
|
|
177
178
|
* @param {Parser} parser parser parser
|
|
178
179
|
* @param {JavascriptParserOptions} parserOptions parserOptions
|
|
179
180
|
* @returns {void}
|
|
@@ -266,6 +267,7 @@ class HarmonyModuleDecoratorRuntimeModule extends RuntimeModule {
|
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
/**
|
|
270
|
+
* Generates runtime code for this runtime module.
|
|
269
271
|
* @returns {string | null} runtime code
|
|
270
272
|
*/
|
|
271
273
|
generate() {
|
|
@@ -296,6 +298,7 @@ class NodeModuleDecoratorRuntimeModule extends RuntimeModule {
|
|
|
296
298
|
}
|
|
297
299
|
|
|
298
300
|
/**
|
|
301
|
+
* Generates runtime code for this runtime module.
|
|
299
302
|
* @returns {string | null} runtime code
|
|
300
303
|
*/
|
|
301
304
|
generate() {
|
|
@@ -21,6 +21,7 @@ const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTempl
|
|
|
21
21
|
|
|
22
22
|
class CommonJsRequireContextDependency extends ContextDependency {
|
|
23
23
|
/**
|
|
24
|
+
* Creates an instance of CommonJsRequireContextDependency.
|
|
24
25
|
* @param {ContextDependencyOptions} options options for the context module
|
|
25
26
|
* @param {Range} range location in source code
|
|
26
27
|
* @param {Range=} valueRange location of the require call
|
|
@@ -57,6 +58,7 @@ class CommonJsRequireContextDependency extends ContextDependency {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
/**
|
|
61
|
+
* Serializes this instance into the provided serializer context.
|
|
60
62
|
* @param {ObjectSerializerContext} context context
|
|
61
63
|
*/
|
|
62
64
|
serialize(context) {
|
|
@@ -70,6 +72,7 @@ class CommonJsRequireContextDependency extends ContextDependency {
|
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
/**
|
|
75
|
+
* Restores this instance from the provided deserializer context.
|
|
73
76
|
* @param {ObjectDeserializerContext} context context
|
|
74
77
|
*/
|
|
75
78
|
deserialize(context) {
|
|
@@ -7,11 +7,18 @@
|
|
|
7
7
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
|
+
const {
|
|
11
|
+
ESM_MODULE_EXPORTS_NAME,
|
|
12
|
+
getRequireEsmModuleExportsAccess,
|
|
13
|
+
isRequireEsmModuleExportsModule
|
|
14
|
+
} = require("./CommonJsDependencyHelpers");
|
|
10
15
|
const ModuleDependency = require("./ModuleDependency");
|
|
11
|
-
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
|
12
16
|
|
|
17
|
+
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
18
|
/** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */
|
|
14
19
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
20
|
+
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
21
|
+
/** @typedef {import("../Module")} Module */
|
|
15
22
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
16
23
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
17
24
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
@@ -20,16 +27,25 @@ const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
|
|
20
27
|
|
|
21
28
|
class CommonJsRequireDependency extends ModuleDependency {
|
|
22
29
|
/**
|
|
30
|
+
* Creates an instance of CommonJsRequireDependency.
|
|
23
31
|
* @param {string} request request
|
|
24
|
-
* @param {Range=} range location in source code
|
|
32
|
+
* @param {Range=} range location in source code of the string-literal argument (gets replaced by the module id)
|
|
25
33
|
* @param {string=} context request context
|
|
26
34
|
* @param {RawReferencedExports | null=} referencedExports list of referenced exports
|
|
35
|
+
* @param {Range=} valueRange location in source code of the whole `require(...)` call (for `require(esm)` interop)
|
|
27
36
|
*/
|
|
28
|
-
constructor(
|
|
37
|
+
constructor(
|
|
38
|
+
request,
|
|
39
|
+
range,
|
|
40
|
+
context,
|
|
41
|
+
referencedExports = null,
|
|
42
|
+
valueRange = undefined
|
|
43
|
+
) {
|
|
29
44
|
super(request);
|
|
30
45
|
this.range = range;
|
|
31
46
|
this._context = context;
|
|
32
47
|
this.referencedExports = referencedExports;
|
|
48
|
+
this.valueRange = valueRange;
|
|
33
49
|
}
|
|
34
50
|
|
|
35
51
|
get type() {
|
|
@@ -47,6 +63,15 @@ class CommonJsRequireDependency extends ModuleDependency {
|
|
|
47
63
|
* @returns {ReferencedExports} referenced exports
|
|
48
64
|
*/
|
|
49
65
|
getReferencedExports(moduleGraph, runtime) {
|
|
66
|
+
const importedModule = moduleGraph.getModule(this);
|
|
67
|
+
if (
|
|
68
|
+
importedModule &&
|
|
69
|
+
isRequireEsmModuleExportsModule(importedModule, moduleGraph)
|
|
70
|
+
) {
|
|
71
|
+
// `require(esm)` will unwrap the "module.exports" named export; only
|
|
72
|
+
// that export is observable through this `require()` call.
|
|
73
|
+
return [[ESM_MODULE_EXPORTS_NAME]];
|
|
74
|
+
}
|
|
50
75
|
if (!this.referencedExports) return Dependency.EXPORTS_OBJECT_REFERENCED;
|
|
51
76
|
return this.referencedExports.map((name) => ({
|
|
52
77
|
name,
|
|
@@ -55,25 +80,66 @@ class CommonJsRequireDependency extends ModuleDependency {
|
|
|
55
80
|
}
|
|
56
81
|
|
|
57
82
|
/**
|
|
83
|
+
* Serializes this instance into the provided serializer context.
|
|
58
84
|
* @param {ObjectSerializerContext} context context
|
|
59
85
|
*/
|
|
60
86
|
serialize(context) {
|
|
61
87
|
const { write } = context;
|
|
62
88
|
write(this.referencedExports);
|
|
89
|
+
write(this.valueRange);
|
|
63
90
|
super.serialize(context);
|
|
64
91
|
}
|
|
65
92
|
|
|
66
93
|
/**
|
|
94
|
+
* Restores this instance from the provided deserializer context.
|
|
67
95
|
* @param {ObjectDeserializerContext} context context
|
|
68
96
|
*/
|
|
69
97
|
deserialize(context) {
|
|
70
98
|
const { read } = context;
|
|
71
99
|
this.referencedExports = read();
|
|
100
|
+
this.valueRange = read();
|
|
72
101
|
super.deserialize(context);
|
|
73
102
|
}
|
|
74
103
|
}
|
|
75
104
|
|
|
76
|
-
CommonJsRequireDependency.Template =
|
|
105
|
+
CommonJsRequireDependency.Template = class CommonJsRequireDependencyTemplate extends (
|
|
106
|
+
ModuleDependency.Template
|
|
107
|
+
) {
|
|
108
|
+
/**
|
|
109
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
110
|
+
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
111
|
+
* @param {ReplaceSource} source the current replace source which can be modified
|
|
112
|
+
* @param {DependencyTemplateContext} templateContext the context object
|
|
113
|
+
* @returns {void}
|
|
114
|
+
*/
|
|
115
|
+
apply(
|
|
116
|
+
dependency,
|
|
117
|
+
source,
|
|
118
|
+
{ runtimeTemplate, moduleGraph, chunkGraph, runtime }
|
|
119
|
+
) {
|
|
120
|
+
const dep = /** @type {CommonJsRequireDependency} */ (dependency);
|
|
121
|
+
if (!dep.range) return;
|
|
122
|
+
const importedModule = /** @type {Module} */ (moduleGraph.getModule(dep));
|
|
123
|
+
const content = runtimeTemplate.moduleId({
|
|
124
|
+
module: importedModule,
|
|
125
|
+
chunkGraph,
|
|
126
|
+
request: dep.request,
|
|
127
|
+
weak: dep.weak
|
|
128
|
+
});
|
|
129
|
+
source.replace(dep.range[0], dep.range[1] - 1, content);
|
|
130
|
+
|
|
131
|
+
if (dep.valueRange && importedModule) {
|
|
132
|
+
const access = getRequireEsmModuleExportsAccess(
|
|
133
|
+
importedModule,
|
|
134
|
+
moduleGraph,
|
|
135
|
+
runtime
|
|
136
|
+
);
|
|
137
|
+
if (access !== null) {
|
|
138
|
+
source.insert(dep.valueRange[1], access);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
};
|
|
77
143
|
|
|
78
144
|
makeSerializable(
|
|
79
145
|
CommonJsRequireDependency,
|
|
@@ -25,6 +25,7 @@ const NullDependency = require("./NullDependency");
|
|
|
25
25
|
|
|
26
26
|
class CommonJsSelfReferenceDependency extends NullDependency {
|
|
27
27
|
/**
|
|
28
|
+
* Creates an instance of CommonJsSelfReferenceDependency.
|
|
28
29
|
* @param {Range} range range
|
|
29
30
|
* @param {CommonJSDependencyBaseKeywords} base base
|
|
30
31
|
* @param {ExportInfoName[]} names names
|
|
@@ -47,6 +48,7 @@ class CommonJsSelfReferenceDependency extends NullDependency {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
/**
|
|
51
|
+
* Returns an identifier to merge equal requests.
|
|
50
52
|
* @returns {string | null} an identifier to merge equal requests
|
|
51
53
|
*/
|
|
52
54
|
getResourceIdentifier() {
|
|
@@ -64,6 +66,7 @@ class CommonJsSelfReferenceDependency extends NullDependency {
|
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
/**
|
|
69
|
+
* Serializes this instance into the provided serializer context.
|
|
67
70
|
* @param {ObjectSerializerContext} context context
|
|
68
71
|
*/
|
|
69
72
|
serialize(context) {
|
|
@@ -76,6 +79,7 @@ class CommonJsSelfReferenceDependency extends NullDependency {
|
|
|
76
79
|
}
|
|
77
80
|
|
|
78
81
|
/**
|
|
82
|
+
* Restores this instance from the provided deserializer context.
|
|
79
83
|
* @param {ObjectDeserializerContext} context context
|
|
80
84
|
*/
|
|
81
85
|
deserialize(context) {
|
|
@@ -97,6 +101,7 @@ CommonJsSelfReferenceDependency.Template = class CommonJsSelfReferenceDependency
|
|
|
97
101
|
NullDependency.Template
|
|
98
102
|
) {
|
|
99
103
|
/**
|
|
104
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
100
105
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
101
106
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
102
107
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -22,6 +22,7 @@ const NullDependency = require("./NullDependency");
|
|
|
22
22
|
|
|
23
23
|
class ConstDependency extends NullDependency {
|
|
24
24
|
/**
|
|
25
|
+
* Creates an instance of ConstDependency.
|
|
25
26
|
* @param {string} expression the expression
|
|
26
27
|
* @param {number | Range} range the source range
|
|
27
28
|
* @param {RawRuntimeRequirements | null=} runtimeRequirements runtime requirements
|
|
@@ -38,7 +39,7 @@ class ConstDependency extends NullDependency {
|
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
+
* Updates the hash with the data contributed by this instance.
|
|
42
43
|
* @param {Hash} hash hash to be updated
|
|
43
44
|
* @param {UpdateHashContext} context context
|
|
44
45
|
* @returns {void}
|
|
@@ -58,6 +59,7 @@ class ConstDependency extends NullDependency {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
/**
|
|
62
|
+
* Gets module evaluation side effects state.
|
|
61
63
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
62
64
|
* @returns {ConnectionState} how this dependency connects the module to referencing modules
|
|
63
65
|
*/
|
|
@@ -66,6 +68,7 @@ class ConstDependency extends NullDependency {
|
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
/**
|
|
71
|
+
* Serializes this instance into the provided serializer context.
|
|
69
72
|
* @param {ObjectSerializerContext} context context
|
|
70
73
|
*/
|
|
71
74
|
serialize(context) {
|
|
@@ -77,6 +80,7 @@ class ConstDependency extends NullDependency {
|
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
/**
|
|
83
|
+
* Restores this instance from the provided deserializer context.
|
|
80
84
|
* @param {ObjectDeserializerContext} context context
|
|
81
85
|
*/
|
|
82
86
|
deserialize(context) {
|
|
@@ -94,6 +98,7 @@ ConstDependency.Template = class ConstDependencyTemplate extends (
|
|
|
94
98
|
NullDependency.Template
|
|
95
99
|
) {
|
|
96
100
|
/**
|
|
101
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
97
102
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
98
103
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
99
104
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -14,7 +14,7 @@ const memoize = require("../util/memoize");
|
|
|
14
14
|
/** @typedef {import("../ContextModule").ContextOptions} ContextOptions */
|
|
15
15
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
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
|
|
|
@@ -27,6 +27,7 @@ const getCriticalDependencyWarning = memoize(() =>
|
|
|
27
27
|
/** @typedef {{ value: string, range: Range }[]} Replaces */
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
+
* Returns stringified regexp.
|
|
30
31
|
* @param {RegExp | false | null | undefined} r regexp
|
|
31
32
|
* @returns {string} stringified regexp
|
|
32
33
|
*/
|
|
@@ -34,6 +35,7 @@ const regExpToString = (r) => (r ? String(r) : "");
|
|
|
34
35
|
|
|
35
36
|
class ContextDependency extends Dependency {
|
|
36
37
|
/**
|
|
38
|
+
* Creates an instance of ContextDependency.
|
|
37
39
|
* @param {ContextDependencyOptions} options options for the context module
|
|
38
40
|
* @param {string=} context request context
|
|
39
41
|
*/
|
|
@@ -69,6 +71,7 @@ class ContextDependency extends Dependency {
|
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
/**
|
|
74
|
+
* Returns a request context.
|
|
72
75
|
* @returns {string | undefined} a request context
|
|
73
76
|
*/
|
|
74
77
|
getContext() {
|
|
@@ -80,6 +83,7 @@ class ContextDependency extends Dependency {
|
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
/**
|
|
86
|
+
* Could affect referencing module.
|
|
83
87
|
* @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
|
|
84
88
|
*/
|
|
85
89
|
couldAffectReferencingModule() {
|
|
@@ -87,6 +91,7 @@ class ContextDependency extends Dependency {
|
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
/**
|
|
94
|
+
* Returns an identifier to merge equal requests.
|
|
90
95
|
* @returns {string | null} an identifier to merge equal requests
|
|
91
96
|
*/
|
|
92
97
|
getResourceIdentifier() {
|
|
@@ -108,7 +113,7 @@ class ContextDependency extends Dependency {
|
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
/**
|
|
111
|
-
* Returns warnings
|
|
116
|
+
* Returns warnings.
|
|
112
117
|
* @param {ModuleGraph} moduleGraph module graph
|
|
113
118
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
114
119
|
*/
|
|
@@ -135,6 +140,7 @@ class ContextDependency extends Dependency {
|
|
|
135
140
|
}
|
|
136
141
|
|
|
137
142
|
/**
|
|
143
|
+
* Serializes this instance into the provided serializer context.
|
|
138
144
|
* @param {ObjectSerializerContext} context context
|
|
139
145
|
*/
|
|
140
146
|
serialize(context) {
|
|
@@ -154,6 +160,7 @@ class ContextDependency extends Dependency {
|
|
|
154
160
|
}
|
|
155
161
|
|
|
156
162
|
/**
|
|
163
|
+
* Restores this instance from the provided deserializer context.
|
|
157
164
|
* @param {ObjectDeserializerContext} context context
|
|
158
165
|
*/
|
|
159
166
|
deserialize(context) {
|
|
@@ -25,6 +25,7 @@ const { parseResource } = require("../util/identifier");
|
|
|
25
25
|
const quoteMeta = (str) => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
+
* Split context from prefix.
|
|
28
29
|
* @param {string} prefix prefix
|
|
29
30
|
* @returns {{ prefix: string, context: string }} result
|
|
30
31
|
*/
|
|
@@ -45,11 +46,13 @@ const splitContextFromPrefix = (prefix) => {
|
|
|
45
46
|
/** @typedef {{ new (options: ContextDependencyOptions, range: Range, valueRange: Range, ...args: EXPECTED_ANY[]): ContextDependency }} ContextDependencyConstructor */
|
|
46
47
|
|
|
47
48
|
/**
|
|
49
|
+
* Defines the get additional dep args type used by this module.
|
|
48
50
|
* @template T
|
|
49
|
-
* @typedef {T extends new (options: ContextDependencyOptions, range: Range, valueRange: Range, ...remains: infer R) =>
|
|
51
|
+
* @typedef {T extends new (options: ContextDependencyOptions, range: Range, valueRange: Range, ...remains: infer R) => ContextDependency ? R : []} GetAdditionalDepArgs
|
|
50
52
|
*/
|
|
51
53
|
|
|
52
54
|
/**
|
|
55
|
+
* Returns the created Dependency.
|
|
53
56
|
* @template {ContextDependencyConstructor} T
|
|
54
57
|
* @param {T} Dep the Dependency class
|
|
55
58
|
* @param {Range} range source range
|
|
@@ -14,6 +14,7 @@ const ContextDependency = require("./ContextDependency");
|
|
|
14
14
|
|
|
15
15
|
class ContextDependencyTemplateAsId extends ContextDependency.Template {
|
|
16
16
|
/**
|
|
17
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
17
18
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
18
19
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
19
20
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -16,6 +16,7 @@ class ContextDependencyTemplateAsRequireCall
|
|
|
16
16
|
extends ContextDependency.Template
|
|
17
17
|
{
|
|
18
18
|
/**
|
|
19
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
19
20
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
20
21
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
21
22
|
* @param {DependencyTemplateContext} templateContext the context object
|