webpack 5.59.0 → 5.94.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 +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
@@ -8,6 +8,7 @@
|
|
8
8
|
const { ConcatSource, RawSource, CachedSource } = require("webpack-sources");
|
9
9
|
const { UsageState } = require("./ExportsInfo");
|
10
10
|
const Template = require("./Template");
|
11
|
+
const CssModulesPlugin = require("./css/CssModulesPlugin");
|
11
12
|
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
12
13
|
|
13
14
|
/** @typedef {import("webpack-sources").Source} Source */
|
@@ -15,10 +16,16 @@ const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
15
16
|
/** @typedef {import("./ExportsInfo")} ExportsInfo */
|
16
17
|
/** @typedef {import("./ExportsInfo").ExportInfo} ExportInfo */
|
17
18
|
/** @typedef {import("./Module")} Module */
|
19
|
+
/** @typedef {import("./Module").BuildMeta} BuildMeta */
|
18
20
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
19
21
|
/** @typedef {import("./ModuleTemplate")} ModuleTemplate */
|
20
22
|
/** @typedef {import("./RequestShortener")} RequestShortener */
|
21
23
|
|
24
|
+
/**
|
25
|
+
* @template T
|
26
|
+
* @param {Iterable<T>} iterable iterable
|
27
|
+
* @returns {string} joined with comma
|
28
|
+
*/
|
22
29
|
const joinIterableWithComma = iterable => {
|
23
30
|
// This is more performant than Array.from().join(", ")
|
24
31
|
// as it doesn't create an array
|
@@ -78,7 +85,7 @@ const printExportsInfoToSource = (
|
|
78
85
|
for (const exportInfo of printedExports) {
|
79
86
|
const target = exportInfo.getTarget(moduleGraph);
|
80
87
|
source.add(
|
81
|
-
Template.toComment(
|
88
|
+
`${Template.toComment(
|
82
89
|
`${indent}export ${JSON.stringify(exportInfo.name).slice(
|
83
90
|
1,
|
84
91
|
-1
|
@@ -90,15 +97,15 @@ const printExportsInfoToSource = (
|
|
90
97
|
.map(e => JSON.stringify(e).slice(1, -1))
|
91
98
|
.join(".")}`
|
92
99
|
: ""
|
93
|
-
|
100
|
+
}`
|
94
101
|
: ""
|
95
102
|
}`
|
96
|
-
)
|
103
|
+
)}\n`
|
97
104
|
);
|
98
105
|
if (exportInfo.exportsInfo) {
|
99
106
|
printExportsInfoToSource(
|
100
107
|
source,
|
101
|
-
indent
|
108
|
+
`${indent} `,
|
102
109
|
exportInfo.exportsInfo,
|
103
110
|
moduleGraph,
|
104
111
|
requestShortener,
|
@@ -109,9 +116,9 @@ const printExportsInfoToSource = (
|
|
109
116
|
|
110
117
|
if (alreadyPrintedExports) {
|
111
118
|
source.add(
|
112
|
-
Template.toComment(
|
119
|
+
`${Template.toComment(
|
113
120
|
`${indent}... (${alreadyPrintedExports} already listed exports)`
|
114
|
-
)
|
121
|
+
)}\n`
|
115
122
|
);
|
116
123
|
}
|
117
124
|
|
@@ -127,19 +134,19 @@ const printExportsInfoToSource = (
|
|
127
134
|
? "other exports"
|
128
135
|
: "exports";
|
129
136
|
source.add(
|
130
|
-
Template.toComment(
|
137
|
+
`${Template.toComment(
|
131
138
|
`${indent}${title} [${otherExportsInfo.getProvidedInfo()}] [${otherExportsInfo.getUsedInfo()}]${
|
132
139
|
target
|
133
140
|
? ` -> ${target.module.readableIdentifier(requestShortener)}`
|
134
141
|
: ""
|
135
142
|
}`
|
136
|
-
)
|
143
|
+
)}\n`
|
137
144
|
);
|
138
145
|
}
|
139
146
|
}
|
140
147
|
};
|
141
148
|
|
142
|
-
/** @type {WeakMap<RequestShortener, WeakMap<Module, { header: RawSource, full: WeakMap<Source, CachedSource> }>>} */
|
149
|
+
/** @type {WeakMap<RequestShortener, WeakMap<Module, { header: RawSource | undefined, full: WeakMap<Source, CachedSource> }>>} */
|
143
150
|
const caches = new WeakMap();
|
144
151
|
|
145
152
|
class ModuleInfoHeaderPlugin {
|
@@ -149,6 +156,7 @@ class ModuleInfoHeaderPlugin {
|
|
149
156
|
constructor(verbose = true) {
|
150
157
|
this._verbose = verbose;
|
151
158
|
}
|
159
|
+
|
152
160
|
/**
|
153
161
|
* @param {Compiler} compiler the compiler
|
154
162
|
* @returns {void}
|
@@ -156,8 +164,9 @@ class ModuleInfoHeaderPlugin {
|
|
156
164
|
apply(compiler) {
|
157
165
|
const { _verbose: verbose } = this;
|
158
166
|
compiler.hooks.compilation.tap("ModuleInfoHeaderPlugin", compilation => {
|
159
|
-
const
|
160
|
-
|
167
|
+
const javascriptHooks =
|
168
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation);
|
169
|
+
javascriptHooks.renderModulePackage.tap(
|
161
170
|
"ModuleInfoHeaderPlugin",
|
162
171
|
(
|
163
172
|
moduleSource,
|
@@ -188,22 +197,19 @@ class ModuleInfoHeaderPlugin {
|
|
188
197
|
const source = new ConcatSource();
|
189
198
|
let header = cacheEntry.header;
|
190
199
|
if (header === undefined) {
|
191
|
-
|
192
|
-
const reqStr = req.replace(/\*\//g, "*_/");
|
193
|
-
const reqStrStar = "*".repeat(reqStr.length);
|
194
|
-
const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`;
|
195
|
-
header = new RawSource(headerStr);
|
200
|
+
header = this.generateHeader(module, requestShortener);
|
196
201
|
cacheEntry.header = header;
|
197
202
|
}
|
198
203
|
source.add(header);
|
199
204
|
if (verbose) {
|
200
|
-
const exportsType = module.buildMeta
|
205
|
+
const exportsType = /** @type {BuildMeta} */ (module.buildMeta)
|
206
|
+
.exportsType;
|
201
207
|
source.add(
|
202
|
-
Template.toComment(
|
208
|
+
`${Template.toComment(
|
203
209
|
exportsType
|
204
210
|
? `${exportsType} exports`
|
205
211
|
: "unknown exports (runtime-defined)"
|
206
|
-
)
|
212
|
+
)}\n`
|
207
213
|
);
|
208
214
|
if (exportsType) {
|
209
215
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
@@ -216,40 +222,93 @@ class ModuleInfoHeaderPlugin {
|
|
216
222
|
);
|
217
223
|
}
|
218
224
|
source.add(
|
219
|
-
Template.toComment(
|
225
|
+
`${Template.toComment(
|
220
226
|
`runtime requirements: ${joinIterableWithComma(
|
221
227
|
chunkGraph.getModuleRuntimeRequirements(module, chunk.runtime)
|
222
228
|
)}`
|
223
|
-
)
|
229
|
+
)}\n`
|
224
230
|
);
|
225
231
|
const optimizationBailout =
|
226
232
|
moduleGraph.getOptimizationBailout(module);
|
227
233
|
if (optimizationBailout) {
|
228
234
|
for (const text of optimizationBailout) {
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
} else {
|
233
|
-
code = text;
|
234
|
-
}
|
235
|
-
source.add(Template.toComment(`${code}`) + "\n");
|
235
|
+
const code =
|
236
|
+
typeof text === "function" ? text(requestShortener) : text;
|
237
|
+
source.add(`${Template.toComment(`${code}`)}\n`);
|
236
238
|
}
|
237
239
|
}
|
238
240
|
source.add(moduleSource);
|
239
241
|
return source;
|
242
|
+
}
|
243
|
+
source.add(moduleSource);
|
244
|
+
const cachedSource = new CachedSource(source);
|
245
|
+
cacheEntry.full.set(moduleSource, cachedSource);
|
246
|
+
return cachedSource;
|
247
|
+
}
|
248
|
+
);
|
249
|
+
javascriptHooks.chunkHash.tap(
|
250
|
+
"ModuleInfoHeaderPlugin",
|
251
|
+
(_chunk, hash) => {
|
252
|
+
hash.update("ModuleInfoHeaderPlugin");
|
253
|
+
hash.update("1");
|
254
|
+
}
|
255
|
+
);
|
256
|
+
const cssHooks = CssModulesPlugin.getCompilationHooks(compilation);
|
257
|
+
cssHooks.renderModulePackage.tap(
|
258
|
+
"ModuleInfoHeaderPlugin",
|
259
|
+
(moduleSource, module, { runtimeTemplate }) => {
|
260
|
+
const { requestShortener } = runtimeTemplate;
|
261
|
+
let cacheEntry;
|
262
|
+
let cache = caches.get(requestShortener);
|
263
|
+
if (cache === undefined) {
|
264
|
+
caches.set(requestShortener, (cache = new WeakMap()));
|
265
|
+
cache.set(
|
266
|
+
module,
|
267
|
+
(cacheEntry = { header: undefined, full: new WeakMap() })
|
268
|
+
);
|
240
269
|
} else {
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
270
|
+
cacheEntry = cache.get(module);
|
271
|
+
if (cacheEntry === undefined) {
|
272
|
+
cache.set(
|
273
|
+
module,
|
274
|
+
(cacheEntry = { header: undefined, full: new WeakMap() })
|
275
|
+
);
|
276
|
+
} else if (!verbose) {
|
277
|
+
const cachedSource = cacheEntry.full.get(moduleSource);
|
278
|
+
if (cachedSource !== undefined) return cachedSource;
|
279
|
+
}
|
245
280
|
}
|
281
|
+
const source = new ConcatSource();
|
282
|
+
let header = cacheEntry.header;
|
283
|
+
if (header === undefined) {
|
284
|
+
header = this.generateHeader(module, requestShortener);
|
285
|
+
cacheEntry.header = header;
|
286
|
+
}
|
287
|
+
source.add(header);
|
288
|
+
source.add(moduleSource);
|
289
|
+
const cachedSource = new CachedSource(source);
|
290
|
+
cacheEntry.full.set(moduleSource, cachedSource);
|
291
|
+
return cachedSource;
|
246
292
|
}
|
247
293
|
);
|
248
|
-
|
294
|
+
cssHooks.chunkHash.tap("ModuleInfoHeaderPlugin", (_chunk, hash) => {
|
249
295
|
hash.update("ModuleInfoHeaderPlugin");
|
250
296
|
hash.update("1");
|
251
297
|
});
|
252
298
|
});
|
253
299
|
}
|
300
|
+
|
301
|
+
/**
|
302
|
+
* @param {Module} module the module
|
303
|
+
* @param {RequestShortener} requestShortener request shortener
|
304
|
+
* @returns {RawSource} the header
|
305
|
+
*/
|
306
|
+
generateHeader(module, requestShortener) {
|
307
|
+
const req = module.readableIdentifier(requestShortener);
|
308
|
+
const reqStr = req.replace(/\*\//g, "*_/");
|
309
|
+
const reqStrStar = "*".repeat(reqStr.length);
|
310
|
+
const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`;
|
311
|
+
return new RawSource(headerStr);
|
312
|
+
}
|
254
313
|
}
|
255
314
|
module.exports = ModuleInfoHeaderPlugin;
|
@@ -43,7 +43,7 @@ const previouslyPolyfilledBuiltinModules = {
|
|
43
43
|
|
44
44
|
class ModuleNotFoundError extends WebpackError {
|
45
45
|
/**
|
46
|
-
* @param {Module} module module tied to dependency
|
46
|
+
* @param {Module | null} module module tied to dependency
|
47
47
|
* @param {Error&any} err error thrown
|
48
48
|
* @param {DependencyLocation} loc location of dependency
|
49
49
|
*/
|
@@ -54,7 +54,10 @@ class ModuleNotFoundError extends WebpackError {
|
|
54
54
|
const match = err.message.match(/Can't resolve '([^']+)'/);
|
55
55
|
if (match) {
|
56
56
|
const request = match[1];
|
57
|
-
const alias =
|
57
|
+
const alias =
|
58
|
+
previouslyPolyfilledBuiltinModules[
|
59
|
+
/** @type {keyof previouslyPolyfilledBuiltinModules} */ (request)
|
60
|
+
];
|
58
61
|
if (alias) {
|
59
62
|
const pathIndex = alias.indexOf("/");
|
60
63
|
const dependency = pathIndex > 0 ? alias.slice(0, pathIndex) : alias;
|
package/lib/ModuleParseError.js
CHANGED
@@ -8,18 +8,21 @@
|
|
8
8
|
const WebpackError = require("./WebpackError");
|
9
9
|
const makeSerializable = require("./util/makeSerializable");
|
10
10
|
|
11
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
12
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
13
|
+
|
11
14
|
const WASM_HEADER = Buffer.from([0x00, 0x61, 0x73, 0x6d]);
|
12
15
|
|
13
16
|
class ModuleParseError extends WebpackError {
|
14
17
|
/**
|
15
18
|
* @param {string | Buffer} source source code
|
16
|
-
* @param {Error&any} err the parse error
|
19
|
+
* @param {Error & any} err the parse error
|
17
20
|
* @param {string[]} loaders the loaders used
|
18
21
|
* @param {string} type module type
|
19
22
|
*/
|
20
23
|
constructor(source, err, loaders, type) {
|
21
|
-
let message =
|
22
|
-
let loc
|
24
|
+
let message = `Module parse failed: ${err && err.message}`;
|
25
|
+
let loc;
|
23
26
|
|
24
27
|
if (
|
25
28
|
((Buffer.isBuffer(source) && source.slice(0, 4).equals(WASM_HEADER)) ||
|
@@ -54,7 +57,7 @@ class ModuleParseError extends WebpackError {
|
|
54
57
|
typeof err.loc === "object" &&
|
55
58
|
typeof err.loc.line === "number"
|
56
59
|
) {
|
57
|
-
|
60
|
+
const lineNumber = err.loc.line;
|
58
61
|
|
59
62
|
if (
|
60
63
|
Buffer.isBuffer(source) ||
|
@@ -69,15 +72,14 @@ class ModuleParseError extends WebpackError {
|
|
69
72
|
const theLine = sourceLines[lineNumber - 1];
|
70
73
|
const linesAfter = sourceLines.slice(lineNumber, lineNumber + 2);
|
71
74
|
|
72
|
-
message +=
|
73
|
-
|
74
|
-
|
75
|
-
linesAfter.map(l => `\n| ${l}`).join("");
|
75
|
+
message += `${linesBefore
|
76
|
+
.map(l => `\n| ${l}`)
|
77
|
+
.join("")}\n> ${theLine}${linesAfter.map(l => `\n| ${l}`).join("")}`;
|
76
78
|
}
|
77
79
|
|
78
80
|
loc = { start: err.loc };
|
79
81
|
} else if (err && err.stack) {
|
80
|
-
message +=
|
82
|
+
message += `\n${err.stack}`;
|
81
83
|
}
|
82
84
|
|
83
85
|
super(message);
|
@@ -87,6 +89,9 @@ class ModuleParseError extends WebpackError {
|
|
87
89
|
this.error = err;
|
88
90
|
}
|
89
91
|
|
92
|
+
/**
|
93
|
+
* @param {ObjectSerializerContext} context context
|
94
|
+
*/
|
90
95
|
serialize(context) {
|
91
96
|
const { write } = context;
|
92
97
|
|
@@ -95,6 +100,9 @@ class ModuleParseError extends WebpackError {
|
|
95
100
|
super.serialize(context);
|
96
101
|
}
|
97
102
|
|
103
|
+
/**
|
104
|
+
* @param {ObjectDeserializerContext} context context
|
105
|
+
*/
|
98
106
|
deserialize(context) {
|
99
107
|
const { read } = context;
|
100
108
|
|
package/lib/ModuleProfile.js
CHANGED
@@ -34,6 +34,7 @@ class ModuleProfile {
|
|
34
34
|
this.storing = 0;
|
35
35
|
this.storingParallelismFactor = 0;
|
36
36
|
|
37
|
+
/** @type {{ start: number, end: number }[] | undefined } */
|
37
38
|
this.additionalFactoryTimes = undefined;
|
38
39
|
this.additionalFactories = 0;
|
39
40
|
this.additionalFactoriesParallelismFactor = 0;
|
@@ -16,7 +16,8 @@ class ModuleRestoreError extends WebpackError {
|
|
16
16
|
*/
|
17
17
|
constructor(module, err) {
|
18
18
|
let message = "Module restore failed: ";
|
19
|
-
|
19
|
+
/** @type {string | undefined} */
|
20
|
+
const details = undefined;
|
20
21
|
if (err !== null && typeof err === "object") {
|
21
22
|
if (typeof err.stack === "string" && err.stack) {
|
22
23
|
const stack = err.stack;
|
@@ -33,6 +34,7 @@ class ModuleRestoreError extends WebpackError {
|
|
33
34
|
super(message);
|
34
35
|
|
35
36
|
this.name = "ModuleRestoreError";
|
37
|
+
/** @type {string | undefined} */
|
36
38
|
this.details = details;
|
37
39
|
this.module = module;
|
38
40
|
this.error = err;
|
package/lib/ModuleStoreError.js
CHANGED
@@ -16,7 +16,8 @@ class ModuleStoreError extends WebpackError {
|
|
16
16
|
*/
|
17
17
|
constructor(module, err) {
|
18
18
|
let message = "Module storing failed: ";
|
19
|
-
|
19
|
+
/** @type {string | undefined} */
|
20
|
+
const details = undefined;
|
20
21
|
if (err !== null && typeof err === "object") {
|
21
22
|
if (typeof err.stack === "string" && err.stack) {
|
22
23
|
const stack = err.stack;
|
@@ -33,7 +34,7 @@ class ModuleStoreError extends WebpackError {
|
|
33
34
|
super(message);
|
34
35
|
|
35
36
|
this.name = "ModuleStoreError";
|
36
|
-
this.details = details;
|
37
|
+
this.details = /** @type {string | undefined} */ (details);
|
37
38
|
this.module = module;
|
38
39
|
this.error = err;
|
39
40
|
}
|
package/lib/ModuleTemplate.js
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
const util = require("util");
|
9
9
|
const memoize = require("./util/memoize");
|
10
10
|
|
11
|
+
/** @typedef {import("tapable").Tap} Tap */
|
11
12
|
/** @typedef {import("webpack-sources").Source} Source */
|
12
13
|
/** @typedef {import("./Chunk")} Chunk */
|
13
14
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
@@ -16,8 +17,14 @@ const memoize = require("./util/memoize");
|
|
16
17
|
/** @typedef {import("./Module")} Module */
|
17
18
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
18
19
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
20
|
+
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
19
21
|
/** @typedef {import("./util/Hash")} Hash */
|
20
22
|
|
23
|
+
/**
|
24
|
+
* @template T
|
25
|
+
* @typedef {import("tapable").IfSet<T>} IfSet
|
26
|
+
*/
|
27
|
+
|
21
28
|
const getJavascriptModulesPlugin = memoize(() =>
|
22
29
|
require("./javascript/JavascriptModulesPlugin")
|
23
30
|
);
|
@@ -34,6 +41,11 @@ class ModuleTemplate {
|
|
34
41
|
this.hooks = Object.freeze({
|
35
42
|
content: {
|
36
43
|
tap: util.deprecate(
|
44
|
+
/**
|
45
|
+
* @template AdditionalOptions
|
46
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
47
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
48
|
+
*/
|
37
49
|
(options, fn) => {
|
38
50
|
getJavascriptModulesPlugin()
|
39
51
|
.getCompilationHooks(compilation)
|
@@ -54,6 +66,11 @@ class ModuleTemplate {
|
|
54
66
|
},
|
55
67
|
module: {
|
56
68
|
tap: util.deprecate(
|
69
|
+
/**
|
70
|
+
* @template AdditionalOptions
|
71
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
72
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
73
|
+
*/
|
57
74
|
(options, fn) => {
|
58
75
|
getJavascriptModulesPlugin()
|
59
76
|
.getCompilationHooks(compilation)
|
@@ -74,6 +91,11 @@ class ModuleTemplate {
|
|
74
91
|
},
|
75
92
|
render: {
|
76
93
|
tap: util.deprecate(
|
94
|
+
/**
|
95
|
+
* @template AdditionalOptions
|
96
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
97
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
98
|
+
*/
|
77
99
|
(options, fn) => {
|
78
100
|
getJavascriptModulesPlugin()
|
79
101
|
.getCompilationHooks(compilation)
|
@@ -94,6 +116,11 @@ class ModuleTemplate {
|
|
94
116
|
},
|
95
117
|
package: {
|
96
118
|
tap: util.deprecate(
|
119
|
+
/**
|
120
|
+
* @template AdditionalOptions
|
121
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
122
|
+
* @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
|
123
|
+
*/
|
97
124
|
(options, fn) => {
|
98
125
|
getJavascriptModulesPlugin()
|
99
126
|
.getCompilationHooks(compilation)
|
@@ -114,6 +141,11 @@ class ModuleTemplate {
|
|
114
141
|
},
|
115
142
|
hash: {
|
116
143
|
tap: util.deprecate(
|
144
|
+
/**
|
145
|
+
* @template AdditionalOptions
|
146
|
+
* @param {string | Tap & IfSet<AdditionalOptions>} options options
|
147
|
+
* @param {function(Hash): void} fn fn
|
148
|
+
*/
|
117
149
|
(options, fn) => {
|
118
150
|
compilation.hooks.fullHash.tap(options, fn);
|
119
151
|
},
|
@@ -129,7 +161,7 @@ Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
|
|
129
161
|
get: util.deprecate(
|
130
162
|
/**
|
131
163
|
* @this {ModuleTemplate}
|
132
|
-
* @returns {
|
164
|
+
* @returns {RuntimeTemplate} output options
|
133
165
|
*/
|
134
166
|
function () {
|
135
167
|
return this._runtimeTemplate;
|
@@ -0,0 +1,168 @@
|
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Sean Larkin @TheLarkInn
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @type {Readonly<"javascript/auto">}
|
10
|
+
*/
|
11
|
+
const JAVASCRIPT_MODULE_TYPE_AUTO = "javascript/auto";
|
12
|
+
|
13
|
+
/**
|
14
|
+
* @type {Readonly<"javascript/dynamic">}
|
15
|
+
*/
|
16
|
+
const JAVASCRIPT_MODULE_TYPE_DYNAMIC = "javascript/dynamic";
|
17
|
+
|
18
|
+
/**
|
19
|
+
* @type {Readonly<"javascript/esm">}
|
20
|
+
* This is the module type used for _strict_ ES Module syntax. This means that all legacy formats
|
21
|
+
* that webpack supports (CommonJS, AMD, SystemJS) are not supported.
|
22
|
+
*/
|
23
|
+
const JAVASCRIPT_MODULE_TYPE_ESM = "javascript/esm";
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @type {Readonly<"json">}
|
27
|
+
* This is the module type used for JSON files. JSON files are always parsed as ES Module.
|
28
|
+
*/
|
29
|
+
const JSON_MODULE_TYPE = "json";
|
30
|
+
|
31
|
+
/**
|
32
|
+
* @type {Readonly<"webassembly/async">}
|
33
|
+
* This is the module type used for WebAssembly modules. In webpack 5 they are always treated as async modules.
|
34
|
+
*/
|
35
|
+
const WEBASSEMBLY_MODULE_TYPE_ASYNC = "webassembly/async";
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @type {Readonly<"webassembly/sync">}
|
39
|
+
* This is the module type used for WebAssembly modules. In webpack 4 they are always treated as sync modules.
|
40
|
+
* There is a legacy option to support this usage in webpack 5 and up.
|
41
|
+
*/
|
42
|
+
const WEBASSEMBLY_MODULE_TYPE_SYNC = "webassembly/sync";
|
43
|
+
|
44
|
+
/**
|
45
|
+
* @type {Readonly<"css">}
|
46
|
+
* This is the module type used for CSS files.
|
47
|
+
*/
|
48
|
+
const CSS_MODULE_TYPE = "css";
|
49
|
+
|
50
|
+
/**
|
51
|
+
* @type {Readonly<"css/global">}
|
52
|
+
* This is the module type used for CSS modules files where you need to use `:local` in selector list to hash classes.
|
53
|
+
*/
|
54
|
+
const CSS_MODULE_TYPE_GLOBAL = "css/global";
|
55
|
+
|
56
|
+
/**
|
57
|
+
* @type {Readonly<"css/module">}
|
58
|
+
* This is the module type used for CSS modules files, by default all classes are hashed.
|
59
|
+
*/
|
60
|
+
const CSS_MODULE_TYPE_MODULE = "css/module";
|
61
|
+
|
62
|
+
/**
|
63
|
+
* @type {Readonly<"css/auto">}
|
64
|
+
* This is the module type used for CSS files, the module will be parsed as CSS modules if it's filename contains `.module.` or `.modules.`.
|
65
|
+
*/
|
66
|
+
const CSS_MODULE_TYPE_AUTO = "css/auto";
|
67
|
+
|
68
|
+
/**
|
69
|
+
* @type {Readonly<"asset">}
|
70
|
+
* This is the module type used for automatically choosing between `asset/inline`, `asset/resource` based on asset size limit (8096).
|
71
|
+
*/
|
72
|
+
const ASSET_MODULE_TYPE = "asset";
|
73
|
+
|
74
|
+
/**
|
75
|
+
* @type {Readonly<"asset/inline">}
|
76
|
+
* This is the module type used for assets that are inlined as a data URI. This is the equivalent of `url-loader`.
|
77
|
+
*/
|
78
|
+
const ASSET_MODULE_TYPE_INLINE = "asset/inline";
|
79
|
+
|
80
|
+
/**
|
81
|
+
* @type {Readonly<"asset/resource">}
|
82
|
+
* This is the module type used for assets that are copied to the output directory. This is the equivalent of `file-loader`.
|
83
|
+
*/
|
84
|
+
const ASSET_MODULE_TYPE_RESOURCE = "asset/resource";
|
85
|
+
|
86
|
+
/**
|
87
|
+
* @type {Readonly<"asset/source">}
|
88
|
+
* This is the module type used for assets that are imported as source code. This is the equivalent of `raw-loader`.
|
89
|
+
*/
|
90
|
+
const ASSET_MODULE_TYPE_SOURCE = "asset/source";
|
91
|
+
|
92
|
+
/**
|
93
|
+
* @type {Readonly<"asset/raw-data-url">}
|
94
|
+
* TODO: Document what this asset type is for. See css-loader tests for its usage.
|
95
|
+
*/
|
96
|
+
const ASSET_MODULE_TYPE_RAW_DATA_URL = "asset/raw-data-url";
|
97
|
+
|
98
|
+
/**
|
99
|
+
* @type {Readonly<"runtime">}
|
100
|
+
* This is the module type used for the webpack runtime abstractions.
|
101
|
+
*/
|
102
|
+
const WEBPACK_MODULE_TYPE_RUNTIME = "runtime";
|
103
|
+
|
104
|
+
/**
|
105
|
+
* @type {Readonly<"fallback-module">}
|
106
|
+
* This is the module type used for the ModuleFederation feature's FallbackModule class.
|
107
|
+
* TODO: Document this better.
|
108
|
+
*/
|
109
|
+
const WEBPACK_MODULE_TYPE_FALLBACK = "fallback-module";
|
110
|
+
|
111
|
+
/**
|
112
|
+
* @type {Readonly<"remote-module">}
|
113
|
+
* This is the module type used for the ModuleFederation feature's RemoteModule class.
|
114
|
+
* TODO: Document this better.
|
115
|
+
*/
|
116
|
+
const WEBPACK_MODULE_TYPE_REMOTE = "remote-module";
|
117
|
+
|
118
|
+
/**
|
119
|
+
* @type {Readonly<"provide-module">}
|
120
|
+
* This is the module type used for the ModuleFederation feature's ProvideModule class.
|
121
|
+
* TODO: Document this better.
|
122
|
+
*/
|
123
|
+
const WEBPACK_MODULE_TYPE_PROVIDE = "provide-module";
|
124
|
+
|
125
|
+
/**
|
126
|
+
* @type {Readonly<"consume-shared-module">}
|
127
|
+
* This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
|
128
|
+
*/
|
129
|
+
const WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = "consume-shared-module";
|
130
|
+
|
131
|
+
/**
|
132
|
+
* @type {Readonly<"lazy-compilation-proxy">}
|
133
|
+
* Module type used for `experiments.lazyCompilation` feature. See `LazyCompilationPlugin` for more information.
|
134
|
+
*/
|
135
|
+
const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy";
|
136
|
+
|
137
|
+
/** @typedef {"javascript/auto" | "javascript/dynamic" | "javascript/esm"} JavaScriptModuleTypes */
|
138
|
+
/** @typedef {"json"} JSONModuleType */
|
139
|
+
/** @typedef {"webassembly/async" | "webassembly/sync"} WebAssemblyModuleTypes */
|
140
|
+
/** @typedef {"css" | "css/global" | "css/module"} CSSModuleTypes */
|
141
|
+
/** @typedef {"asset" | "asset/inline" | "asset/resource" | "asset/source" | "asset/raw-data-url"} AssetModuleTypes */
|
142
|
+
/** @typedef {"runtime" | "fallback-module" | "remote-module" | "provide-module" | "consume-shared-module" | "lazy-compilation-proxy"} WebpackModuleTypes */
|
143
|
+
/** @typedef {string} UnknownModuleTypes */
|
144
|
+
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CSSModuleTypes | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
|
145
|
+
|
146
|
+
module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
|
147
|
+
module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
|
148
|
+
module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
|
149
|
+
module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
|
150
|
+
module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
|
151
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_AUTO = JAVASCRIPT_MODULE_TYPE_AUTO;
|
152
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = JAVASCRIPT_MODULE_TYPE_DYNAMIC;
|
153
|
+
module.exports.JAVASCRIPT_MODULE_TYPE_ESM = JAVASCRIPT_MODULE_TYPE_ESM;
|
154
|
+
module.exports.JSON_MODULE_TYPE = JSON_MODULE_TYPE;
|
155
|
+
module.exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = WEBASSEMBLY_MODULE_TYPE_ASYNC;
|
156
|
+
module.exports.WEBASSEMBLY_MODULE_TYPE_SYNC = WEBASSEMBLY_MODULE_TYPE_SYNC;
|
157
|
+
module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
|
158
|
+
module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
|
159
|
+
module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
|
160
|
+
module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
|
161
|
+
module.exports.WEBPACK_MODULE_TYPE_RUNTIME = WEBPACK_MODULE_TYPE_RUNTIME;
|
162
|
+
module.exports.WEBPACK_MODULE_TYPE_FALLBACK = WEBPACK_MODULE_TYPE_FALLBACK;
|
163
|
+
module.exports.WEBPACK_MODULE_TYPE_REMOTE = WEBPACK_MODULE_TYPE_REMOTE;
|
164
|
+
module.exports.WEBPACK_MODULE_TYPE_PROVIDE = WEBPACK_MODULE_TYPE_PROVIDE;
|
165
|
+
module.exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE =
|
166
|
+
WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE;
|
167
|
+
module.exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY =
|
168
|
+
WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY;
|
package/lib/ModuleWarning.js
CHANGED
@@ -9,6 +9,9 @@ const { cleanUp } = require("./ErrorHelpers");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
10
10
|
const makeSerializable = require("./util/makeSerializable");
|
11
11
|
|
12
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
|
+
|
12
15
|
class ModuleWarning extends WebpackError {
|
13
16
|
/**
|
14
17
|
* @param {Error} warning error thrown
|
@@ -17,11 +20,7 @@ class ModuleWarning extends WebpackError {
|
|
17
20
|
constructor(warning, { from = null } = {}) {
|
18
21
|
let message = "Module Warning";
|
19
22
|
|
20
|
-
|
21
|
-
message += ` (from ${from}):\n`;
|
22
|
-
} else {
|
23
|
-
message += ": ";
|
24
|
-
}
|
23
|
+
message += from ? ` (from ${from}):\n` : ": ";
|
25
24
|
|
26
25
|
if (warning && typeof warning === "object" && warning.message) {
|
27
26
|
message += warning.message;
|
@@ -39,6 +38,9 @@ class ModuleWarning extends WebpackError {
|
|
39
38
|
: undefined;
|
40
39
|
}
|
41
40
|
|
41
|
+
/**
|
42
|
+
* @param {ObjectSerializerContext} context context
|
43
|
+
*/
|
42
44
|
serialize(context) {
|
43
45
|
const { write } = context;
|
44
46
|
|
@@ -47,6 +49,9 @@ class ModuleWarning extends WebpackError {
|
|
47
49
|
super.serialize(context);
|
48
50
|
}
|
49
51
|
|
52
|
+
/**
|
53
|
+
* @param {ObjectDeserializerContext} context context
|
54
|
+
*/
|
50
55
|
deserialize(context) {
|
51
56
|
const { read } = context;
|
52
57
|
|