@depup/webpack 5.109.2-depup.0 → 5.110.1-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +26 -17
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +117 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +50 -13
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +101 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +32 -47
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +141 -85
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +332 -169
- package/lib/RuntimeTemplate.js +2792 -352
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +2 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +261 -79
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +36 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +57 -24
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +168 -88
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5324 -0
- package/lib/css/syntax.js +9579 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +156 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +27 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +37 -29
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +2 -2
- package/lib/dependencies/ImportDependency.js +24 -20
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +49 -35
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +51 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
- package/lib/dependencies/WorkerDependency.js +28 -22
- package/lib/dependencies/WorkletDependency.js +15 -14
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +282 -162
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +5557 -1155
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +98 -113
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +14 -1
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +985 -470
- package/lib/optimize/ConstExportsPlugin.js +11 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +9 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +10 -6
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -78
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +24 -15
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +7 -7
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +12 -14
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1050 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +5 -1
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +6 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
- package/lib/web/FetchCompileWasmPlugin.js +46 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +670 -36
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3144 -454
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} HotspotDetails
|
|
12
|
+
* @property {"loader" | "plugin"} kind what the name refers to
|
|
13
|
+
* @property {string} name the loader or plugin, as it identified itself
|
|
14
|
+
* @property {number} ms milliseconds it held the main thread
|
|
15
|
+
* @property {number} runs how many times it ran
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {object} HookDetails
|
|
20
|
+
* @property {string} name the hook
|
|
21
|
+
* @property {number} ms milliseconds its taps held the main thread
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class HotspotsWarning extends WebpackError {
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of HotspotsWarning.
|
|
27
|
+
* @param {HotspotDetails[]} hotspots the worst offenders, slowest first
|
|
28
|
+
* @param {number} total how many are over the threshold in all
|
|
29
|
+
* @param {HookDetails[]} hooks the same time grouped by hook instead
|
|
30
|
+
*/
|
|
31
|
+
constructor(hotspots, total, hooks) {
|
|
32
|
+
const list = hotspots
|
|
33
|
+
.map(
|
|
34
|
+
(hotspot) =>
|
|
35
|
+
`\n ${hotspot.kind} ${hotspot.name} (${Math.round(hotspot.ms)} ms over ${
|
|
36
|
+
hotspot.runs
|
|
37
|
+
} ${hotspot.runs === 1 ? "run" : "runs"})`
|
|
38
|
+
)
|
|
39
|
+
.join("");
|
|
40
|
+
|
|
41
|
+
const byHook =
|
|
42
|
+
hooks.length > 0
|
|
43
|
+
? `\nThe same time, grouped by the hook it ran under:${hooks
|
|
44
|
+
.map((hook) => `\n ${hook.name} (${Math.round(hook.ms)} ms)`)
|
|
45
|
+
.join("")}`
|
|
46
|
+
: "";
|
|
47
|
+
|
|
48
|
+
super(
|
|
49
|
+
`hotspots: ${total} ${total === 1 ? "thing holds" : "things hold"} the main thread long enough to be worth looking at:${list}${byHook}\nThis is the time each one held the main thread itself, with anything it called out to charged to that instead — so it is what the loader or plugin costs, not what it waited for. Only synchronous stretches count, so work resumed after an await is missing from it. 'ProfilingPlugin' records the same work as a trace when the ordering matters.\nFor more info visit https://webpack.js.org/plugins/profiling-plugin/`
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
/** @type {string} */
|
|
53
|
+
this.name = "HotspotsWarning";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = HotspotsWarning;
|
|
@@ -7,9 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
const ModuleFactory = require("../ModuleFactory");
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @import {
|
|
12
|
+
* ModuleFactoryCallback,
|
|
13
|
+
* ModuleFactoryCreateData
|
|
14
|
+
* } from "../ModuleFactory"
|
|
15
|
+
*/
|
|
16
|
+
/** @import NormalModuleFactory from "../NormalModuleFactory" */
|
|
13
17
|
|
|
14
18
|
/**
|
|
15
19
|
* Ignores error when module is unresolved
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} InlinedAssetDetails
|
|
12
|
+
* @property {string} name the asset, by path
|
|
13
|
+
* @property {number} size the bytes it adds to the JavaScript
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
class InlinedAssetsWarning extends WebpackError {
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of InlinedAssetsWarning.
|
|
19
|
+
* @param {InlinedAssetDetails[]} assets the assets inlined as data urls
|
|
20
|
+
* @param {number} total the bytes they add between them
|
|
21
|
+
*/
|
|
22
|
+
constructor(assets, total) {
|
|
23
|
+
const list = assets
|
|
24
|
+
.map((it) => `\n ${it.name} (${it.size} bytes)`)
|
|
25
|
+
.join("");
|
|
26
|
+
|
|
27
|
+
super(
|
|
28
|
+
`inlined assets: ${total} bytes of asset data are embedded in the JavaScript:${list}\nA data url is base64, so it costs about a third more than the file it replaces, cannot be cached on its own, and is downloaded again whenever the code around it changes. 'Rule.parser.dataUrlCondition.maxSize' decides which files are small enough to be worth that.\nFor more info visit https://webpack.js.org/guides/asset-modules/#general-asset-type`
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
/** @type {string} */
|
|
32
|
+
this.name = "InlinedAssetsWarning";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = InlinedAssetsWarning;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
11
|
+
/** @import Module from "../Module" */
|
|
12
12
|
|
|
13
13
|
class InvalidDependenciesModuleWarning extends WebpackError {
|
|
14
14
|
/**
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const formatSize = require("../util/formatSize");
|
|
9
|
+
const WebpackError = require("./WebpackError");
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {object} LargeModuleDetails
|
|
13
|
+
* @property {string} name the module, shortened for the report
|
|
14
|
+
* @property {string} chunk the chunk it weighs down
|
|
15
|
+
* @property {number} size bytes the module contributes
|
|
16
|
+
* @property {number} chunkSize bytes the whole chunk contributes
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
class LargeModulesWarning extends WebpackError {
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of LargeModulesWarning.
|
|
22
|
+
* @param {LargeModuleDetails[]} modules the worst offenders, largest first
|
|
23
|
+
* @param {number} total how many dominating modules there are in all
|
|
24
|
+
*/
|
|
25
|
+
constructor(modules, total) {
|
|
26
|
+
const list = modules
|
|
27
|
+
.map((module) => {
|
|
28
|
+
const share = Math.round((module.size / module.chunkSize) * 100);
|
|
29
|
+
|
|
30
|
+
return `\n ${module.name} is ${share}% of '${module.chunk}' (${formatSize(
|
|
31
|
+
module.size
|
|
32
|
+
)} of ${formatSize(module.chunkSize)})`;
|
|
33
|
+
})
|
|
34
|
+
.join("");
|
|
35
|
+
|
|
36
|
+
super(
|
|
37
|
+
`large modules: ${total} ${total === 1 ? "module carries" : "modules carry"} most of the chunk ${total === 1 ? "it is" : "they are"} in:${list}\nEverything else in the chunk together weighs less than this one module, so splitting it out with 'optimization.splitChunks', loading it on demand, or replacing it is what changes the size.\nFor more info visit https://webpack.js.org/guides/code-splitting/`
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
/** @type {string} */
|
|
41
|
+
this.name = "LargeModulesWarning";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = LargeModulesWarning;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const formatSize = require("../util/formatSize");
|
|
9
|
+
const WebpackError = require("./WebpackError");
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {object} LegacyPackageDetails
|
|
13
|
+
* @property {string} name the package doing the emulating
|
|
14
|
+
* @property {number} modules how many of its modules are in the build
|
|
15
|
+
* @property {number} size bytes they contribute
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
class LegacyJavascriptWarning extends WebpackError {
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of LegacyJavascriptWarning.
|
|
21
|
+
* @param {LegacyPackageDetails[]} packages the ones found, largest first
|
|
22
|
+
* @param {number} totalSize bytes they contribute between them
|
|
23
|
+
* @param {string[]} features the ones the target already has
|
|
24
|
+
*/
|
|
25
|
+
constructor(packages, totalSize, features) {
|
|
26
|
+
const list = packages
|
|
27
|
+
.map(
|
|
28
|
+
(item) =>
|
|
29
|
+
`\n ${item.name} (${item.modules} ${
|
|
30
|
+
item.modules === 1 ? "module" : "modules"
|
|
31
|
+
}, ${formatSize(item.size)})`
|
|
32
|
+
)
|
|
33
|
+
.join("");
|
|
34
|
+
|
|
35
|
+
super(
|
|
36
|
+
`legacy javascript: ${formatSize(
|
|
37
|
+
totalSize
|
|
38
|
+
)} of the build emulates syntax the target already has natively:${list}\n'output.environment' says this target supports ${features.join(
|
|
39
|
+
", "
|
|
40
|
+
)}, so whatever lowers the syntax — usually '@babel/preset-env' — is compiling for older browsers than webpack is. Lining its targets up with the browserslist webpack reads drops them.\nFor more info visit https://webpack.js.org/configuration/target/#browserslist`
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
/** @type {string} */
|
|
44
|
+
this.name = "LegacyJavascriptWarning";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module.exports = LegacyJavascriptWarning;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("../WebpackError");
|
|
9
|
+
|
|
10
|
+
/** @typedef {{ name: string, modules: number, size: number }} MissingSideEffectsDetails */
|
|
11
|
+
|
|
12
|
+
class MissingSideEffectsWarning extends WebpackError {
|
|
13
|
+
/**
|
|
14
|
+
* Creates an instance of MissingSideEffectsWarning.
|
|
15
|
+
* @param {MissingSideEffectsDetails[]} packages the packages to name, costliest first
|
|
16
|
+
* @param {number} total how many packages were found
|
|
17
|
+
* @param {number} wasted the bytes they keep in the bundle
|
|
18
|
+
*/
|
|
19
|
+
constructor(packages, total, wasted) {
|
|
20
|
+
super(
|
|
21
|
+
`missing sideEffects: ${total} ${total === 1 ? "package keeps" : "packages keep"} ${wasted} bytes of unused code because ${total === 1 ? "its" : "their"} package.json does not declare 'sideEffects':
|
|
22
|
+
${packages
|
|
23
|
+
.map(
|
|
24
|
+
({ name, modules, size }) =>
|
|
25
|
+
` ${name} (${size} bytes in ${modules} ${modules === 1 ? "module" : "modules"})`
|
|
26
|
+
)
|
|
27
|
+
.join("\n")}
|
|
28
|
+
|
|
29
|
+
Without the field webpack must assume every module runs code on import. For more info visit https://webpack.js.org/guides/tree-shaking/`
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
this.name = "MissingSideEffectsWarning";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = MissingSideEffectsWarning;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} MixedExportsDetails
|
|
12
|
+
* @property {string} name the entry, by name
|
|
13
|
+
* @property {string[]} named the named exports sitting beside the default
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
class MixedExportsWarning extends WebpackError {
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of MixedExportsWarning.
|
|
19
|
+
* @param {MixedExportsDetails[]} entries the entries that mix them
|
|
20
|
+
* @param {string} type the library type they are built for
|
|
21
|
+
*/
|
|
22
|
+
constructor(entries, type) {
|
|
23
|
+
const list = entries
|
|
24
|
+
.map(
|
|
25
|
+
(entry) =>
|
|
26
|
+
`\n ${entry.name} (default and ${entry.named.length}: ${entry.named
|
|
27
|
+
.slice(0, 3)
|
|
28
|
+
.join(", ")}${entry.named.length > 3 ? ", …" : ""})`
|
|
29
|
+
)
|
|
30
|
+
.join("");
|
|
31
|
+
|
|
32
|
+
super(
|
|
33
|
+
`mixed exports: ${entries.length} ${entries.length === 1 ? "entry exports" : "entries export"} a default beside named exports for the '${type}' library:${list}\nA consumer calling 'require()' gets the namespace object, so the default arrives as '.default' rather than as the value itself. Exporting only a default, or only named exports, leaves no ambiguity — 'output.library.export' can also pick one.\nFor more info visit https://webpack.js.org/configuration/output/#outputlibraryexport`
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/** @type {string} */
|
|
37
|
+
this.name = "MixedExportsWarning";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = MixedExportsWarning;
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
8
9
|
const WebpackError = require("./WebpackError");
|
|
10
|
+
const deriveStackFromNestedError = require("./deriveStackFromNestedError");
|
|
9
11
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
12
|
+
/** @import { DependencyLocation } from "../Dependency" */
|
|
13
|
+
/** @import Module from "../Module" */
|
|
14
|
+
/** @import { ErrorWithHideStack } from "./ModuleBuildError" */
|
|
13
15
|
|
|
14
16
|
class ModuleDependencyError extends WebpackError {
|
|
15
17
|
/**
|
|
@@ -19,15 +21,11 @@ class ModuleDependencyError extends WebpackError {
|
|
|
19
21
|
* @param {DependencyLocation} loc location of dependency
|
|
20
22
|
*/
|
|
21
23
|
constructor(module, err, loc) {
|
|
22
|
-
|
|
24
|
+
// Deserialization constructs with no arguments, so `err` is absent there.
|
|
25
|
+
super(err ? err.message : "");
|
|
23
26
|
|
|
24
27
|
/** @type {string} */
|
|
25
28
|
this.name = "ModuleDependencyError";
|
|
26
|
-
/** @type {string | undefined} */
|
|
27
|
-
this.details =
|
|
28
|
-
err && !err.hideStack
|
|
29
|
-
? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
|
|
30
|
-
: undefined;
|
|
31
29
|
/** @type {Module} */
|
|
32
30
|
this.module = module;
|
|
33
31
|
/** @type {DependencyLocation} */
|
|
@@ -38,14 +36,13 @@ class ModuleDependencyError extends WebpackError {
|
|
|
38
36
|
*/
|
|
39
37
|
this.error = err;
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
/** @type {string | undefined} */
|
|
43
|
-
this.stack = /** @type {string} */ `${err.stack
|
|
44
|
-
.split("\n")
|
|
45
|
-
.slice(1)
|
|
46
|
-
.join("\n")}\n\n${this.stack}`;
|
|
47
|
-
}
|
|
39
|
+
deriveStackFromNestedError(this, err);
|
|
48
40
|
}
|
|
49
41
|
}
|
|
50
42
|
|
|
43
|
+
makeSerializable(
|
|
44
|
+
ModuleDependencyError,
|
|
45
|
+
"webpack/lib/errors/ModuleDependencyError"
|
|
46
|
+
);
|
|
47
|
+
|
|
51
48
|
module.exports = ModuleDependencyError;
|
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
|
10
|
+
const deriveStackFromNestedError = require("./deriveStackFromNestedError");
|
|
10
11
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
12
|
+
/** @import { DependencyLocation } from "../Dependency" */
|
|
13
|
+
/** @import Module from "../Module" */
|
|
14
|
+
/** @import { ErrorWithHideStack } from "./ModuleBuildError" */
|
|
14
15
|
|
|
15
16
|
class ModuleDependencyWarning extends WebpackError {
|
|
16
17
|
/**
|
|
@@ -24,11 +25,6 @@ class ModuleDependencyWarning extends WebpackError {
|
|
|
24
25
|
|
|
25
26
|
/** @type {string} */
|
|
26
27
|
this.name = "ModuleDependencyWarning";
|
|
27
|
-
/** @type {string | undefined} */
|
|
28
|
-
this.details =
|
|
29
|
-
err && !err.hideStack
|
|
30
|
-
? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
|
|
31
|
-
: undefined;
|
|
32
28
|
/** @type {Module} */
|
|
33
29
|
this.module = module;
|
|
34
30
|
/** @type {DependencyLocation} */
|
|
@@ -39,13 +35,7 @@ class ModuleDependencyWarning extends WebpackError {
|
|
|
39
35
|
*/
|
|
40
36
|
this.error = err;
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
/** @type {string | undefined} */
|
|
44
|
-
this.stack = /** @type {string} */ `${err.stack
|
|
45
|
-
.split("\n")
|
|
46
|
-
.slice(1)
|
|
47
|
-
.join("\n")}\n\n${this.stack}`;
|
|
48
|
-
}
|
|
38
|
+
deriveStackFromNestedError(this, err);
|
|
49
39
|
}
|
|
50
40
|
}
|
|
51
41
|
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
const WebpackError = require("./WebpackError");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
10
|
+
/** @import { DependencyLocation } from "../Dependency" */
|
|
11
|
+
/** @import Module from "../Module" */
|
|
12
12
|
|
|
13
13
|
const previouslyPolyfilledBuiltinModules = {
|
|
14
14
|
assert: "assert/",
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @typedef {import("../Dependency").SourcePosition} SourcePosition */
|
|
11
|
+
/** @import { DependencyLocation, SourcePosition } from "../Dependency" */
|
|
13
12
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Error]>} ObjectDeserializerContext */
|
|
14
13
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Error]>} ObjectSerializerContext */
|
|
15
14
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
8
|
+
/** @import { DependencyLocation } from "../Dependency" */
|
|
9
9
|
|
|
10
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
11
|
const WebpackError = require("./WebpackError");
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
class OsDependentRuleWarning extends WebpackError {
|
|
11
|
+
/**
|
|
12
|
+
* Creates an instance of OsDependentRuleWarning.
|
|
13
|
+
* @param {string[]} rules descriptions of the rules whose paths only match on one operating system
|
|
14
|
+
*/
|
|
15
|
+
constructor(rules) {
|
|
16
|
+
super(
|
|
17
|
+
`webpack rule recommendations: \nThe following ${
|
|
18
|
+
rules.length === 1
|
|
19
|
+
? "condition hardcodes a path separator, so it"
|
|
20
|
+
: "conditions hardcode a path separator, so they"
|
|
21
|
+
} only match on one operating system: ${rules.join(
|
|
22
|
+
", "
|
|
23
|
+
)}.\nConditions are matched against native paths, which use '\\' on Windows and '/' elsewhere, so such a rule silently stops matching on the other one. Write '[\\\\/]' to accept both.\nFor more info visit https://webpack.js.org/configuration/module/#condition`
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/** @type {string} */
|
|
27
|
+
this.name = "OsDependentRuleWarning";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = OsDependentRuleWarning;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} PureAnnotationDetails
|
|
12
|
+
* @property {string} name the module, shortened for the report
|
|
13
|
+
* @property {number} count how many of its annotations do nothing
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
class PureAnnotationsWarning extends WebpackError {
|
|
17
|
+
/**
|
|
18
|
+
* Creates an instance of PureAnnotationsWarning.
|
|
19
|
+
* @param {PureAnnotationDetails[]} modules the worst offenders, most first
|
|
20
|
+
* @param {number} total how many annotations do nothing in all
|
|
21
|
+
*/
|
|
22
|
+
constructor(modules, total) {
|
|
23
|
+
const list = modules
|
|
24
|
+
.map((module) => `\n ${module.name} (${module.count})`)
|
|
25
|
+
.join("");
|
|
26
|
+
|
|
27
|
+
super(
|
|
28
|
+
`pure annotations: ${total} '/*#__PURE__*/' ${total === 1 ? "annotation does" : "annotations do"} nothing:${list}\nThe annotation is read only where it sits directly before a call, a 'new', or a tagged template — anywhere else it is a comment, and the code it was meant to make droppable is kept.\nFor more info visit https://webpack.js.org/guides/tree-shaking/`
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
/** @type {string} */
|
|
32
|
+
this.name = "PureAnnotationsWarning";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = PureAnnotationsWarning;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
class RedundantDynamicImportWarning extends WebpackError {
|
|
11
|
+
/**
|
|
12
|
+
* Creates an instance of RedundantDynamicImportWarning.
|
|
13
|
+
* @param {string[]} imports descriptions of the `import()` calls that split nothing
|
|
14
|
+
*/
|
|
15
|
+
constructor(imports) {
|
|
16
|
+
const list = imports.map((description) => `\n ${description}`).join("");
|
|
17
|
+
|
|
18
|
+
super(
|
|
19
|
+
`dynamic imports: ${
|
|
20
|
+
imports.length === 1
|
|
21
|
+
? "an 'import()' targets a module already loaded where it runs"
|
|
22
|
+
: "these 'import()' calls target modules already loaded where they run"
|
|
23
|
+
}, so nothing is deferred:${list}\n'import()' only splits a module out when nothing already loaded pulls it in — a static 'import' of it in the same entrypoint cancels the split.\nFor more info visit https://webpack.js.org/guides/code-splitting/`
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/** @type {string} */
|
|
27
|
+
this.name = "RedundantDynamicImportWarning";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = RedundantDynamicImportWarning;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("../WebpackError");
|
|
9
|
+
|
|
10
|
+
/** @typedef {{ reason: string, count: number, names: string[] }} ScopeHoistingBailoutGroup */
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @param {ScopeHoistingBailoutGroup} group one reason and what it applied to
|
|
14
|
+
* @returns {string} one printed line
|
|
15
|
+
*/
|
|
16
|
+
const formatGroup = ({ reason, count, names }) => {
|
|
17
|
+
const shown = names.join(", ");
|
|
18
|
+
const rest = count - names.length;
|
|
19
|
+
|
|
20
|
+
return ` ${count} × ${reason}\n ${shown}${rest > 0 ? ` and ${rest} more` : ""}`;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
class ScopeHoistingBailoutsWarning extends WebpackError {
|
|
24
|
+
/**
|
|
25
|
+
* Creates an instance of ScopeHoistingBailoutsWarning.
|
|
26
|
+
* @param {ScopeHoistingBailoutGroup[]} groups the reasons, most modules first
|
|
27
|
+
* @param {number} total how many modules were left out
|
|
28
|
+
*/
|
|
29
|
+
constructor(groups, total) {
|
|
30
|
+
super(
|
|
31
|
+
`scope hoisting: ${total} ${total === 1 ? "module was" : "modules were"} not merged into the scope of ${total === 1 ? "its importer" : "their importers"}, so each keeps its own wrapper:
|
|
32
|
+
${groups.map(formatGroup).join("\n")}
|
|
33
|
+
|
|
34
|
+
Concatenation needs a module to be ESM and statically analyzable. For more info visit https://webpack.js.org/plugins/module-concatenation-plugin/`
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
this.name = "ScopeHoistingBailoutsWarning";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = ScopeHoistingBailoutsWarning;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const WebpackError = require("./WebpackError");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} CappedSplitDetails
|
|
12
|
+
* @property {string} cacheGroup the cache group whose split was refused
|
|
13
|
+
* @property {string} chunk the chunk it would have been taken out of
|
|
14
|
+
* @property {string} limit the option that refused it
|
|
15
|
+
* @property {number} maxRequests the value that option had
|
|
16
|
+
* @property {number} modules how many modules the split would have moved
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
class SplitChunksCappedWarning extends WebpackError {
|
|
20
|
+
/**
|
|
21
|
+
* Creates an instance of SplitChunksCappedWarning.
|
|
22
|
+
* @param {CappedSplitDetails[]} splits the refused splits, most modules first
|
|
23
|
+
*/
|
|
24
|
+
constructor(splits) {
|
|
25
|
+
const list = splits
|
|
26
|
+
.map(
|
|
27
|
+
(split) =>
|
|
28
|
+
`\n cacheGroup '${split.cacheGroup}' out of ${split.chunk} (${split.modules} modules, ${split.limit} is ${split.maxRequests})`
|
|
29
|
+
)
|
|
30
|
+
.join("");
|
|
31
|
+
|
|
32
|
+
super(
|
|
33
|
+
`split chunks capped: 'optimization.splitChunks' refused these splits because the chunk already had as many requests as it is allowed:${list}\nThe modules stayed where they were, so the cache group did not take effect. Raising the limit lets the split happen, at the cost of more parallel requests.\nFor more info visit https://webpack.js.org/plugins/split-chunks-plugin/`
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/** @type {string} */
|
|
37
|
+
this.name = "SplitChunksCappedWarning";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = SplitChunksCappedWarning;
|