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
|
@@ -40,6 +40,16 @@ const CSS_IMPORT_TYPE = "css-import";
|
|
|
40
40
|
*/
|
|
41
41
|
const CSS_URL_TYPE = "css-url";
|
|
42
42
|
|
|
43
|
+
/**
|
|
44
|
+
* @type {Readonly<"css-text">}
|
|
45
|
+
*/
|
|
46
|
+
const CSS_TEXT_TYPE = "css-text";
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @type {Readonly<"html">}
|
|
50
|
+
*/
|
|
51
|
+
const HTML_TYPE = "html";
|
|
52
|
+
|
|
43
53
|
/**
|
|
44
54
|
* @type {Readonly<"share-init">}
|
|
45
55
|
*/
|
|
@@ -61,7 +71,8 @@ const CONSUME_SHARED_GENERATOR_TYPE = "consume-shared";
|
|
|
61
71
|
const UNKNOWN_TYPE = "unknown";
|
|
62
72
|
|
|
63
73
|
/**
|
|
64
|
-
*
|
|
74
|
+
* Defines the all types type used by this module.
|
|
75
|
+
* @typedef {JAVASCRIPT_TYPE | RUNTIME_TYPE | WEBASSEMBLY_TYPE | ASSET_TYPE | CSS_TYPE | CSS_IMPORT_TYPE | CSS_URL_TYPE | CSS_TEXT_TYPE | HTML_TYPE | SHARED_INIT_TYPE | REMOTE_GENERATOR_TYPE | CONSUME_SHARED_GENERATOR_TYPE | UNKNOWN_TYPE} AllTypes
|
|
65
76
|
*/
|
|
66
77
|
|
|
67
78
|
/**
|
|
@@ -117,11 +128,26 @@ const CSS_TYPES = new Set([CSS_TYPE]);
|
|
|
117
128
|
* @type {ReadonlySet<"css-url">}
|
|
118
129
|
*/
|
|
119
130
|
const CSS_URL_TYPES = new Set([CSS_URL_TYPE]);
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @type {ReadonlySet<"css-text">}
|
|
134
|
+
*/
|
|
135
|
+
const CSS_TEXT_TYPES = new Set([CSS_TEXT_TYPE]);
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* @type {ReadonlySet<"javascript" | "css-text">}
|
|
139
|
+
*/
|
|
140
|
+
const JAVASCRIPT_AND_CSS_TEXT_TYPES = new Set([JAVASCRIPT_TYPE, CSS_TEXT_TYPE]);
|
|
120
141
|
/**
|
|
121
142
|
* @type {ReadonlySet<"css-import">}
|
|
122
143
|
*/
|
|
123
144
|
const CSS_IMPORT_TYPES = new Set([CSS_IMPORT_TYPE]);
|
|
124
145
|
|
|
146
|
+
/**
|
|
147
|
+
* @type {ReadonlySet<"html">}
|
|
148
|
+
*/
|
|
149
|
+
const HTML_TYPES = new Set([HTML_TYPE]);
|
|
150
|
+
|
|
125
151
|
/**
|
|
126
152
|
* @type {ReadonlySet<"webassembly">}
|
|
127
153
|
*/
|
|
@@ -159,11 +185,16 @@ module.exports.ASSET_TYPES = ASSET_TYPES;
|
|
|
159
185
|
module.exports.CONSUME_SHARED_TYPES = CONSUME_SHARED_TYPES;
|
|
160
186
|
module.exports.CSS_IMPORT_TYPE = CSS_IMPORT_TYPE;
|
|
161
187
|
module.exports.CSS_IMPORT_TYPES = CSS_IMPORT_TYPES;
|
|
188
|
+
module.exports.CSS_TEXT_TYPE = CSS_TEXT_TYPE;
|
|
189
|
+
module.exports.CSS_TEXT_TYPES = CSS_TEXT_TYPES;
|
|
162
190
|
module.exports.CSS_TYPE = CSS_TYPE;
|
|
163
191
|
module.exports.CSS_TYPE = CSS_TYPE;
|
|
164
192
|
module.exports.CSS_TYPES = CSS_TYPES;
|
|
165
193
|
module.exports.CSS_URL_TYPE = CSS_URL_TYPE;
|
|
166
194
|
module.exports.CSS_URL_TYPES = CSS_URL_TYPES;
|
|
195
|
+
module.exports.HTML_TYPE = HTML_TYPE;
|
|
196
|
+
module.exports.HTML_TYPES = HTML_TYPES;
|
|
197
|
+
module.exports.JAVASCRIPT_AND_CSS_TEXT_TYPES = JAVASCRIPT_AND_CSS_TEXT_TYPES;
|
|
167
198
|
module.exports.JAVASCRIPT_AND_CSS_TYPES = JAVASCRIPT_AND_CSS_TYPES;
|
|
168
199
|
module.exports.JAVASCRIPT_AND_CSS_URL_TYPES = JAVASCRIPT_AND_CSS_URL_TYPES;
|
|
169
200
|
module.exports.JAVASCRIPT_TYPE = JAVASCRIPT_TYPE;
|
package/lib/ModuleTemplate.js
CHANGED
|
@@ -20,6 +20,7 @@ const memoize = require("./util/memoize");
|
|
|
20
20
|
/** @typedef {import("./util/Hash")} Hash */
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
+
* Defines the if set type used by this module.
|
|
23
24
|
* @template T
|
|
24
25
|
* @typedef {import("tapable").IfSet<T>} IfSet
|
|
25
26
|
*/
|
|
@@ -31,6 +32,7 @@ const getJavascriptModulesPlugin = memoize(() =>
|
|
|
31
32
|
// TODO webpack 6: remove this class
|
|
32
33
|
class ModuleTemplate {
|
|
33
34
|
/**
|
|
35
|
+
* Creates an instance of ModuleTemplate.
|
|
34
36
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
35
37
|
* @param {Compilation} compilation the compilation
|
|
36
38
|
*/
|
|
@@ -41,6 +43,7 @@ class ModuleTemplate {
|
|
|
41
43
|
content: {
|
|
42
44
|
tap: util.deprecate(
|
|
43
45
|
/**
|
|
46
|
+
* Handles the callback logic for this hook.
|
|
44
47
|
* @template AdditionalOptions
|
|
45
48
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
46
49
|
* @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
@@ -66,6 +69,7 @@ class ModuleTemplate {
|
|
|
66
69
|
module: {
|
|
67
70
|
tap: util.deprecate(
|
|
68
71
|
/**
|
|
72
|
+
* Handles the callback logic for this hook.
|
|
69
73
|
* @template AdditionalOptions
|
|
70
74
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
71
75
|
* @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
@@ -91,6 +95,7 @@ class ModuleTemplate {
|
|
|
91
95
|
render: {
|
|
92
96
|
tap: util.deprecate(
|
|
93
97
|
/**
|
|
98
|
+
* Handles the callback logic for this hook.
|
|
94
99
|
* @template AdditionalOptions
|
|
95
100
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
96
101
|
* @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
@@ -116,6 +121,7 @@ class ModuleTemplate {
|
|
|
116
121
|
package: {
|
|
117
122
|
tap: util.deprecate(
|
|
118
123
|
/**
|
|
124
|
+
* Handles the callback logic for this hook.
|
|
119
125
|
* @template AdditionalOptions
|
|
120
126
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
121
127
|
* @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
@@ -141,6 +147,7 @@ class ModuleTemplate {
|
|
|
141
147
|
hash: {
|
|
142
148
|
tap: util.deprecate(
|
|
143
149
|
/**
|
|
150
|
+
* Handles the callback logic for this hook.
|
|
144
151
|
* @template AdditionalOptions
|
|
145
152
|
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
|
146
153
|
* @param {(hash: Hash) => void} fn fn
|
|
@@ -159,6 +166,7 @@ class ModuleTemplate {
|
|
|
159
166
|
Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
|
|
160
167
|
get: util.deprecate(
|
|
161
168
|
/**
|
|
169
|
+
* Returns output options.
|
|
162
170
|
* @this {ModuleTemplate}
|
|
163
171
|
* @returns {RuntimeTemplate} output options
|
|
164
172
|
*/
|
|
@@ -65,6 +65,13 @@ const CSS_MODULE_TYPE_MODULE = "css/module";
|
|
|
65
65
|
*/
|
|
66
66
|
const CSS_MODULE_TYPE_AUTO = "css/auto";
|
|
67
67
|
|
|
68
|
+
/**
|
|
69
|
+
* @type {Readonly<"html">}
|
|
70
|
+
* This is the module type used for HTML files when `experiments.html` is enabled.
|
|
71
|
+
* HTML modules are emitted as HTML assets and can be used as entry points.
|
|
72
|
+
*/
|
|
73
|
+
const HTML_MODULE_TYPE = "html";
|
|
74
|
+
|
|
68
75
|
/**
|
|
69
76
|
* @type {Readonly<"asset">}
|
|
70
77
|
* This is the module type used for automatically choosing between `asset/inline`, `asset/resource` based on asset size limit (8096).
|
|
@@ -140,11 +147,12 @@ const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy";
|
|
|
140
147
|
/** @typedef {"javascript/auto" | "javascript/dynamic" | "javascript/esm"} JavaScriptModuleTypes */
|
|
141
148
|
/** @typedef {"json"} JSONModuleType */
|
|
142
149
|
/** @typedef {"webassembly/async" | "webassembly/sync"} WebAssemblyModuleTypes */
|
|
143
|
-
/** @typedef {"css" | "css/global" | "css/module" | "css/auto"}
|
|
150
|
+
/** @typedef {"css" | "css/global" | "css/module" | "css/auto"} CssModuleTypes */
|
|
151
|
+
/** @typedef {"html"} HTMLModuleType */
|
|
144
152
|
/** @typedef {"asset" | "asset/inline" | "asset/resource" | "asset/source" | "asset/raw-data-url"} AssetModuleTypes */
|
|
145
153
|
/** @typedef {"runtime" | "fallback-module" | "remote-module" | "provide-module" | "consume-shared-module" | "lazy-compilation-proxy"} WebpackModuleTypes */
|
|
146
154
|
/** @typedef {string} UnknownModuleTypes */
|
|
147
|
-
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes |
|
|
155
|
+
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CssModuleTypes | HTMLModuleType | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
|
|
148
156
|
|
|
149
157
|
module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
|
|
150
158
|
module.exports.ASSET_MODULE_TYPE_BYTES = ASSET_MODULE_TYPE_BYTES;
|
|
@@ -152,7 +160,7 @@ module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
|
|
|
152
160
|
module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
|
|
153
161
|
module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
|
|
154
162
|
module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
|
|
155
|
-
/** @type {
|
|
163
|
+
/** @type {CssModuleTypes[]} */
|
|
156
164
|
module.exports.CSS_MODULES = [
|
|
157
165
|
CSS_MODULE_TYPE,
|
|
158
166
|
CSS_MODULE_TYPE_GLOBAL,
|
|
@@ -163,6 +171,7 @@ module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
|
|
|
163
171
|
module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
|
|
164
172
|
module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
|
|
165
173
|
module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
|
|
174
|
+
module.exports.HTML_MODULE_TYPE = HTML_MODULE_TYPE;
|
|
166
175
|
/** @type {JavaScriptModuleTypes[]} */
|
|
167
176
|
module.exports.JAVASCRIPT_MODULES = [
|
|
168
177
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
package/lib/MultiCompiler.js
CHANGED
|
@@ -8,17 +8,19 @@
|
|
|
8
8
|
const asyncLib = require("neo-async");
|
|
9
9
|
const { MultiHook, SyncHook } = require("tapable");
|
|
10
10
|
|
|
11
|
-
const ConcurrentCompilationError = require("./ConcurrentCompilationError");
|
|
12
11
|
const MultiStats = require("./MultiStats");
|
|
13
12
|
const MultiWatching = require("./MultiWatching");
|
|
14
|
-
const
|
|
13
|
+
const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
|
|
14
|
+
const WebpackError = require("./errors/WebpackError");
|
|
15
15
|
const ArrayQueue = require("./util/ArrayQueue");
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* Defines the shared type used by this module.
|
|
18
19
|
* @template T
|
|
19
20
|
* @typedef {import("tapable").AsyncSeriesHook<T>} AsyncSeriesHook<T>
|
|
20
21
|
*/
|
|
21
22
|
/**
|
|
23
|
+
* Defines the shared type used by this module.
|
|
22
24
|
* @template T
|
|
23
25
|
* @template R
|
|
24
26
|
* @typedef {import("tapable").SyncBailHook<T, R>} SyncBailHook<T, R>
|
|
@@ -27,6 +29,7 @@ const ArrayQueue = require("./util/ArrayQueue");
|
|
|
27
29
|
/** @typedef {import("../declarations/WebpackOptions").WatchOptions} WatchOptions */
|
|
28
30
|
/** @typedef {import("./Compiler")} Compiler */
|
|
29
31
|
/**
|
|
32
|
+
* Defines the callback type used by this module.
|
|
30
33
|
* @template T
|
|
31
34
|
* @template [R=void]
|
|
32
35
|
* @typedef {import("./webpack").Callback<T, R>} Callback
|
|
@@ -40,6 +43,7 @@ const ArrayQueue = require("./util/ArrayQueue");
|
|
|
40
43
|
/** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
|
|
41
44
|
|
|
42
45
|
/**
|
|
46
|
+
* Defines the run with dependencies handler callback.
|
|
43
47
|
* @callback RunWithDependenciesHandler
|
|
44
48
|
* @param {Compiler} compiler
|
|
45
49
|
* @param {Callback<MultiStats>} callback
|
|
@@ -47,6 +51,7 @@ const ArrayQueue = require("./util/ArrayQueue");
|
|
|
47
51
|
*/
|
|
48
52
|
|
|
49
53
|
/**
|
|
54
|
+
* Defines the multi compiler options type used by this module.
|
|
50
55
|
* @typedef {object} MultiCompilerOptions
|
|
51
56
|
* @property {number=} parallelism how many Compilers are allows to run at the same time in parallel
|
|
52
57
|
*/
|
|
@@ -57,6 +62,7 @@ const CLASS_NAME = "MultiCompiler";
|
|
|
57
62
|
|
|
58
63
|
module.exports = class MultiCompiler {
|
|
59
64
|
/**
|
|
65
|
+
* Creates an instance of MultiCompiler.
|
|
60
66
|
* @param {Compiler[] | Record<string, Compiler>} compilers child compilers
|
|
61
67
|
* @param {MultiCompilerOptions} options options
|
|
62
68
|
*/
|
|
@@ -129,6 +135,7 @@ module.exports = class MultiCompiler {
|
|
|
129
135
|
_validateCompilersOptions() {
|
|
130
136
|
if (this.compilers.length < 2) return;
|
|
131
137
|
/**
|
|
138
|
+
* Adds the provided compiler to the multi compiler.
|
|
132
139
|
* @param {Compiler} compiler compiler
|
|
133
140
|
* @param {WebpackError} warning warning
|
|
134
141
|
*/
|
|
@@ -187,6 +194,7 @@ module.exports = class MultiCompiler {
|
|
|
187
194
|
}
|
|
188
195
|
|
|
189
196
|
/**
|
|
197
|
+
* Sets input file system.
|
|
190
198
|
* @param {InputFileSystem} value the new input file system
|
|
191
199
|
*/
|
|
192
200
|
set inputFileSystem(value) {
|
|
@@ -200,6 +208,7 @@ module.exports = class MultiCompiler {
|
|
|
200
208
|
}
|
|
201
209
|
|
|
202
210
|
/**
|
|
211
|
+
* Sets output file system.
|
|
203
212
|
* @param {OutputFileSystem} value the new output file system
|
|
204
213
|
*/
|
|
205
214
|
set outputFileSystem(value) {
|
|
@@ -213,6 +222,7 @@ module.exports = class MultiCompiler {
|
|
|
213
222
|
}
|
|
214
223
|
|
|
215
224
|
/**
|
|
225
|
+
* Sets watch file system.
|
|
216
226
|
* @param {WatchFileSystem} value the new watch file system
|
|
217
227
|
*/
|
|
218
228
|
set watchFileSystem(value) {
|
|
@@ -222,6 +232,7 @@ module.exports = class MultiCompiler {
|
|
|
222
232
|
}
|
|
223
233
|
|
|
224
234
|
/**
|
|
235
|
+
* Sets intermediate file system.
|
|
225
236
|
* @param {IntermediateFileSystem} value the new intermediate file system
|
|
226
237
|
*/
|
|
227
238
|
set intermediateFileSystem(value) {
|
|
@@ -235,6 +246,7 @@ module.exports = class MultiCompiler {
|
|
|
235
246
|
}
|
|
236
247
|
|
|
237
248
|
/**
|
|
249
|
+
* Gets infrastructure logger.
|
|
238
250
|
* @param {string | (() => string)} name name of the logger, or function called once to get the logger name
|
|
239
251
|
* @returns {Logger} a logger with that name
|
|
240
252
|
*/
|
|
@@ -243,6 +255,7 @@ module.exports = class MultiCompiler {
|
|
|
243
255
|
}
|
|
244
256
|
|
|
245
257
|
/**
|
|
258
|
+
* Updates dependencies using the provided compiler.
|
|
246
259
|
* @param {Compiler} compiler the child compiler
|
|
247
260
|
* @param {string[]} dependencies its dependencies
|
|
248
261
|
* @returns {void}
|
|
@@ -252,6 +265,7 @@ module.exports = class MultiCompiler {
|
|
|
252
265
|
}
|
|
253
266
|
|
|
254
267
|
/**
|
|
268
|
+
* Validate dependencies.
|
|
255
269
|
* @param {Callback<MultiStats>} callback signals when the validation is complete
|
|
256
270
|
* @returns {boolean} true if the dependencies are valid
|
|
257
271
|
*/
|
|
@@ -261,6 +275,7 @@ module.exports = class MultiCompiler {
|
|
|
261
275
|
/** @type {string[]} */
|
|
262
276
|
const missing = [];
|
|
263
277
|
/**
|
|
278
|
+
* Returns target was found.
|
|
264
279
|
* @param {Compiler} compiler compiler
|
|
265
280
|
* @returns {boolean} target was found
|
|
266
281
|
*/
|
|
@@ -273,6 +288,7 @@ module.exports = class MultiCompiler {
|
|
|
273
288
|
return false;
|
|
274
289
|
};
|
|
275
290
|
/**
|
|
291
|
+
* Returns result.
|
|
276
292
|
* @param {{ source: Compiler, target: Compiler }} e1 edge 1
|
|
277
293
|
* @param {{ source: Compiler, target: Compiler }} e2 edge 2
|
|
278
294
|
* @returns {number} result
|
|
@@ -333,6 +349,7 @@ module.exports = class MultiCompiler {
|
|
|
333
349
|
|
|
334
350
|
// TODO webpack 6 remove
|
|
335
351
|
/**
|
|
352
|
+
* Run with dependencies.
|
|
336
353
|
* @deprecated This method should have been private
|
|
337
354
|
* @param {Compiler[]} compilers the child compilers
|
|
338
355
|
* @param {RunWithDependenciesHandler} fn a handler to run for each compiler
|
|
@@ -344,11 +361,13 @@ module.exports = class MultiCompiler {
|
|
|
344
361
|
const fulfilledNames = new Set();
|
|
345
362
|
let remainingCompilers = compilers;
|
|
346
363
|
/**
|
|
364
|
+
* Checks whether this multi compiler is dependency fulfilled.
|
|
347
365
|
* @param {string} d dependency
|
|
348
366
|
* @returns {boolean} when dependency was fulfilled
|
|
349
367
|
*/
|
|
350
368
|
const isDependencyFulfilled = (d) => fulfilledNames.has(d);
|
|
351
369
|
/**
|
|
370
|
+
* Gets ready compilers.
|
|
352
371
|
* @returns {Compiler[]} compilers
|
|
353
372
|
*/
|
|
354
373
|
const getReadyCompilers = () => {
|
|
@@ -369,6 +388,7 @@ module.exports = class MultiCompiler {
|
|
|
369
388
|
return readyCompilers;
|
|
370
389
|
};
|
|
371
390
|
/**
|
|
391
|
+
* Processes the provided stat.
|
|
372
392
|
* @param {Callback<Stats[]>} callback callback
|
|
373
393
|
* @returns {void}
|
|
374
394
|
*/
|
|
@@ -392,6 +412,7 @@ module.exports = class MultiCompiler {
|
|
|
392
412
|
}
|
|
393
413
|
|
|
394
414
|
/**
|
|
415
|
+
* Returns result of setup.
|
|
395
416
|
* @template SetupResult
|
|
396
417
|
* @param {(compiler: Compiler, index: number, doneCallback: Callback<Stats>, isBlocked: () => boolean, setChanged: () => void, setInvalid: () => void) => SetupResult} setup setup a single compiler
|
|
397
418
|
* @param {(compiler: Compiler, setupResult: SetupResult, callback: Callback<Stats>) => void} run run/continue a single compiler
|
|
@@ -448,6 +469,7 @@ module.exports = class MultiCompiler {
|
|
|
448
469
|
let running = 0;
|
|
449
470
|
const parallelism = /** @type {number} */ (this._options.parallelism);
|
|
450
471
|
/**
|
|
472
|
+
* Processes the provided node.
|
|
451
473
|
* @param {Node} node node
|
|
452
474
|
* @param {(Error | null)=} err error
|
|
453
475
|
* @param {Stats=} stats result
|
|
@@ -483,6 +505,7 @@ module.exports = class MultiCompiler {
|
|
|
483
505
|
processQueue();
|
|
484
506
|
};
|
|
485
507
|
/**
|
|
508
|
+
* Node invalid from parent.
|
|
486
509
|
* @param {Node} node node
|
|
487
510
|
* @returns {void}
|
|
488
511
|
*/
|
|
@@ -497,6 +520,7 @@ module.exports = class MultiCompiler {
|
|
|
497
520
|
}
|
|
498
521
|
};
|
|
499
522
|
/**
|
|
523
|
+
* Processes the provided node.
|
|
500
524
|
* @param {Node} node node
|
|
501
525
|
* @returns {void}
|
|
502
526
|
*/
|
|
@@ -511,6 +535,7 @@ module.exports = class MultiCompiler {
|
|
|
511
535
|
}
|
|
512
536
|
};
|
|
513
537
|
/**
|
|
538
|
+
* Processes the provided node.
|
|
514
539
|
* @param {Node} node node
|
|
515
540
|
* @returns {void}
|
|
516
541
|
*/
|
|
@@ -589,6 +614,7 @@ module.exports = class MultiCompiler {
|
|
|
589
614
|
}
|
|
590
615
|
|
|
591
616
|
/**
|
|
617
|
+
* Returns a compiler watcher.
|
|
592
618
|
* @param {WatchOptions | WatchOptions[]} watchOptions the watcher's options
|
|
593
619
|
* @param {Callback<MultiStats>} handler signals when the call finishes
|
|
594
620
|
* @returns {MultiWatching | undefined} a compiler watcher
|
|
@@ -627,6 +653,7 @@ module.exports = class MultiCompiler {
|
|
|
627
653
|
}
|
|
628
654
|
|
|
629
655
|
/**
|
|
656
|
+
* Processes the provided multi stat.
|
|
630
657
|
* @param {Callback<MultiStats>} callback signals when the call finishes
|
|
631
658
|
* @returns {void}
|
|
632
659
|
*/
|
|
@@ -661,6 +688,7 @@ module.exports = class MultiCompiler {
|
|
|
661
688
|
}
|
|
662
689
|
|
|
663
690
|
/**
|
|
691
|
+
* Processes the provided error callback.
|
|
664
692
|
* @param {ErrorCallback} callback signals when the compiler closes
|
|
665
693
|
* @returns {void}
|
|
666
694
|
*/
|
package/lib/MultiStats.js
CHANGED
|
@@ -17,6 +17,7 @@ const identifierUtils = require("./util/identifier");
|
|
|
17
17
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
+
* Returns indent.
|
|
20
21
|
* @param {string} str string
|
|
21
22
|
* @param {string} prefix pref
|
|
22
23
|
* @returns {string} indent
|
|
@@ -31,6 +32,7 @@ const indent = (str, prefix) => {
|
|
|
31
32
|
|
|
32
33
|
class MultiStats {
|
|
33
34
|
/**
|
|
35
|
+
* Creates an instance of MultiStats.
|
|
34
36
|
* @param {Stats[]} stats the child stats
|
|
35
37
|
*/
|
|
36
38
|
constructor(stats) {
|
|
@@ -42,6 +44,7 @@ class MultiStats {
|
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
/**
|
|
47
|
+
* Checks whether this multi stats has errors.
|
|
45
48
|
* @returns {boolean} true if a child compilation encountered an error
|
|
46
49
|
*/
|
|
47
50
|
hasErrors() {
|
|
@@ -49,6 +52,7 @@ class MultiStats {
|
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
/**
|
|
55
|
+
* Checks whether this multi stats has warnings.
|
|
52
56
|
* @returns {boolean} true if a child compilation had a warning
|
|
53
57
|
*/
|
|
54
58
|
hasWarnings() {
|
|
@@ -56,6 +60,7 @@ class MultiStats {
|
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
/**
|
|
63
|
+
* Create child options.
|
|
59
64
|
* @param {undefined | StatsValue} options stats options
|
|
60
65
|
* @param {CreateStatsOptionsContext} context context
|
|
61
66
|
* @returns {ChildOptions} context context
|
|
@@ -109,6 +114,7 @@ class MultiStats {
|
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
/**
|
|
117
|
+
* Returns json output.
|
|
112
118
|
* @param {StatsValue=} options stats options
|
|
113
119
|
* @returns {StatsCompilation} json output
|
|
114
120
|
*/
|
|
@@ -138,6 +144,7 @@ class MultiStats {
|
|
|
138
144
|
obj.hash = obj.children.map((j) => j.hash).join("");
|
|
139
145
|
}
|
|
140
146
|
/**
|
|
147
|
+
* Returns result.
|
|
141
148
|
* @param {StatsCompilation} j stats error
|
|
142
149
|
* @param {StatsError} obj Stats error
|
|
143
150
|
* @returns {StatsError} result
|
|
@@ -184,6 +191,7 @@ class MultiStats {
|
|
|
184
191
|
}
|
|
185
192
|
|
|
186
193
|
/**
|
|
194
|
+
* Returns a string representation.
|
|
187
195
|
* @param {StatsValue=} options stats options
|
|
188
196
|
* @returns {string} string output
|
|
189
197
|
*/
|
package/lib/MultiWatching.js
CHANGED
|
@@ -13,6 +13,7 @@ const asyncLib = require("neo-async");
|
|
|
13
13
|
|
|
14
14
|
class MultiWatching {
|
|
15
15
|
/**
|
|
16
|
+
* Creates an instance of MultiWatching.
|
|
16
17
|
* @param {Watching[]} watchings child compilers' watchers
|
|
17
18
|
* @param {MultiCompiler} compiler the compiler
|
|
18
19
|
*/
|
|
@@ -22,6 +23,7 @@ class MultiWatching {
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
/**
|
|
26
|
+
* Processes the provided error callback.
|
|
25
27
|
* @param {ErrorCallback=} callback signals when the build has completed again
|
|
26
28
|
* @returns {void}
|
|
27
29
|
*/
|
|
@@ -54,6 +56,7 @@ class MultiWatching {
|
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/**
|
|
59
|
+
* Processes the provided error callback.
|
|
57
60
|
* @param {ErrorCallback} callback signals when the watcher is closed
|
|
58
61
|
* @returns {void}
|
|
59
62
|
*/
|
package/lib/NodeStuffPlugin.js
CHANGED
|
@@ -10,13 +10,13 @@ const {
|
|
|
10
10
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
11
11
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
12
12
|
} = require("./ModuleTypeConstants");
|
|
13
|
-
const NodeStuffInWebError = require("./NodeStuffInWebError");
|
|
14
13
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
15
14
|
const CachedConstDependency = require("./dependencies/CachedConstDependency");
|
|
16
15
|
const ConstDependency = require("./dependencies/ConstDependency");
|
|
17
16
|
const ExternalModuleDependency = require("./dependencies/ExternalModuleDependency");
|
|
18
17
|
const ExternalModuleInitFragmentDependency = require("./dependencies/ExternalModuleInitFragmentDependency");
|
|
19
18
|
const ImportMetaPlugin = require("./dependencies/ImportMetaPlugin");
|
|
19
|
+
const NodeStuffInWebError = require("./errors/NodeStuffInWebError");
|
|
20
20
|
const { evaluateToString } = require("./javascript/JavascriptParserHelpers");
|
|
21
21
|
const { relative } = require("./util/fs");
|
|
22
22
|
const { parseResource } = require("./util/identifier");
|
|
@@ -36,6 +36,7 @@ const URL_MODULE_CONSTANT_FUNCTION_NAME = "__webpack_fileURLToPath__";
|
|
|
36
36
|
|
|
37
37
|
class NodeStuffPlugin {
|
|
38
38
|
/**
|
|
39
|
+
* Creates an instance of NodeStuffPlugin.
|
|
39
40
|
* @param {NodeOptions} options options
|
|
40
41
|
*/
|
|
41
42
|
constructor(options) {
|
|
@@ -43,7 +44,7 @@ class NodeStuffPlugin {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
47
48
|
* @param {Compiler} compiler the compiler instance
|
|
48
49
|
* @returns {void}
|
|
49
50
|
*/
|
|
@@ -63,12 +64,14 @@ class NodeStuffPlugin {
|
|
|
63
64
|
);
|
|
64
65
|
|
|
65
66
|
/**
|
|
67
|
+
* Processes the provided parser.
|
|
66
68
|
* @param {JavascriptParser} parser the parser
|
|
67
69
|
* @param {NodeOptions} nodeOptions options
|
|
68
70
|
* @returns {void}
|
|
69
71
|
*/
|
|
70
72
|
const globalHandler = (parser, nodeOptions) => {
|
|
71
73
|
/**
|
|
74
|
+
* Returns const dependency.
|
|
72
75
|
* @param {Expression} expr expression
|
|
73
76
|
* @returns {ConstDependency} const dependency
|
|
74
77
|
*/
|
|
@@ -116,6 +119,7 @@ class NodeStuffPlugin {
|
|
|
116
119
|
const hooks = ImportMetaPlugin.getCompilationHooks(compilation);
|
|
117
120
|
|
|
118
121
|
/**
|
|
122
|
+
* Sets module constant.
|
|
119
123
|
* @param {JavascriptParser} parser the parser
|
|
120
124
|
* @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
|
|
121
125
|
* @param {(module: NormalModule) => string} fn function
|
|
@@ -149,6 +153,7 @@ class NodeStuffPlugin {
|
|
|
149
153
|
};
|
|
150
154
|
|
|
151
155
|
/**
|
|
156
|
+
* Sets cached module constant.
|
|
152
157
|
* @param {JavascriptParser} parser the parser
|
|
153
158
|
* @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
|
|
154
159
|
* @param {(module: NormalModule) => string} fn function
|
|
@@ -207,6 +212,7 @@ class NodeStuffPlugin {
|
|
|
207
212
|
};
|
|
208
213
|
|
|
209
214
|
/**
|
|
215
|
+
* Updates constant using the provided parser.
|
|
210
216
|
* @param {JavascriptParser} parser the parser
|
|
211
217
|
* @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
|
|
212
218
|
* @param {string} value value
|
|
@@ -230,6 +236,7 @@ class NodeStuffPlugin {
|
|
|
230
236
|
);
|
|
231
237
|
|
|
232
238
|
/**
|
|
239
|
+
* Sets url module constant.
|
|
233
240
|
* @param {JavascriptParser} parser the parser
|
|
234
241
|
* @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
|
|
235
242
|
* @param {"dirname" | "filename"} property property
|
|
@@ -344,6 +351,7 @@ class NodeStuffPlugin {
|
|
|
344
351
|
};
|
|
345
352
|
|
|
346
353
|
/**
|
|
354
|
+
* Dirname and filename handler.
|
|
347
355
|
* @param {JavascriptParser} parser the parser
|
|
348
356
|
* @param {NodeOptions} nodeOptions options
|
|
349
357
|
* @param {{ dirname: "__dirname" | "import.meta.dirname", filename: "__filename" | "import.meta.filename" }} identifiers options
|
|
@@ -516,6 +524,7 @@ class NodeStuffPlugin {
|
|
|
516
524
|
};
|
|
517
525
|
|
|
518
526
|
/**
|
|
527
|
+
* Handles the hook callback for this code path.
|
|
519
528
|
* @param {JavascriptParser} parser the parser
|
|
520
529
|
* @param {JavascriptParserOptions} parserOptions the javascript parser options
|
|
521
530
|
* @param {boolean} a true when we need to handle `__filename` and `__dirname`, otherwise false
|