@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -16,6 +16,7 @@ const {
|
|
|
16
16
|
/** @typedef {import("../ChunkGraph").ModuleComparator} ModuleComparator */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Defines the chunk module id range plugin options type used by this module.
|
|
19
20
|
* @typedef {object} ChunkModuleIdRangePluginOptions
|
|
20
21
|
* @property {string} name the chunk name
|
|
21
22
|
* @property {("index" | "index2" | "preOrderIndex" | "postOrderIndex")=} order order
|
|
@@ -27,6 +28,7 @@ const PLUGIN_NAME = "ChunkModuleIdRangePlugin";
|
|
|
27
28
|
|
|
28
29
|
class ChunkModuleIdRangePlugin {
|
|
29
30
|
/**
|
|
31
|
+
* Creates an instance of ChunkModuleIdRangePlugin.
|
|
30
32
|
* @param {ChunkModuleIdRangePluginOptions} options options object
|
|
31
33
|
*/
|
|
32
34
|
constructor(options) {
|
|
@@ -35,7 +37,7 @@ class ChunkModuleIdRangePlugin {
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
/**
|
|
38
|
-
*
|
|
40
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
39
41
|
* @param {Compiler} compiler the compiler instance
|
|
40
42
|
* @returns {void}
|
|
41
43
|
*/
|
|
@@ -15,6 +15,7 @@ const {
|
|
|
15
15
|
/** @typedef {import("../Compiler")} Compiler */
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* Defines the deterministic chunk ids plugin options type used by this module.
|
|
18
19
|
* @typedef {object} DeterministicChunkIdsPluginOptions
|
|
19
20
|
* @property {string=} context context for ids
|
|
20
21
|
* @property {number=} maxLength maximum length of ids
|
|
@@ -24,6 +25,7 @@ const PLUGIN_NAME = "DeterministicChunkIdsPlugin";
|
|
|
24
25
|
|
|
25
26
|
class DeterministicChunkIdsPlugin {
|
|
26
27
|
/**
|
|
28
|
+
* Creates an instance of DeterministicChunkIdsPlugin.
|
|
27
29
|
* @param {DeterministicChunkIdsPluginOptions=} options options
|
|
28
30
|
*/
|
|
29
31
|
constructor(options = {}) {
|
|
@@ -32,7 +34,7 @@ class DeterministicChunkIdsPlugin {
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
|
-
*
|
|
37
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
36
38
|
* @param {Compiler} compiler the compiler instance
|
|
37
39
|
* @returns {void}
|
|
38
40
|
*/
|
|
@@ -18,6 +18,7 @@ const {
|
|
|
18
18
|
/** @typedef {import("../Module")} Module */
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
+
* Defines the deterministic module ids plugin options type used by this module.
|
|
21
22
|
* @typedef {object} DeterministicModuleIdsPluginOptions
|
|
22
23
|
* @property {string=} context context relative to which module identifiers are computed
|
|
23
24
|
* @property {((module: Module) => boolean)=} test selector function for modules
|
|
@@ -31,6 +32,7 @@ const PLUGIN_NAME = "DeterministicModuleIdsPlugin";
|
|
|
31
32
|
|
|
32
33
|
class DeterministicModuleIdsPlugin {
|
|
33
34
|
/**
|
|
35
|
+
* Creates an instance of DeterministicModuleIdsPlugin.
|
|
34
36
|
* @param {DeterministicModuleIdsPluginOptions=} options options
|
|
35
37
|
*/
|
|
36
38
|
constructor(options = {}) {
|
|
@@ -39,7 +41,7 @@ class DeterministicModuleIdsPlugin {
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
|
-
*
|
|
44
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
43
45
|
* @param {Compiler} compiler the compiler instance
|
|
44
46
|
* @returns {void}
|
|
45
47
|
*/
|
|
@@ -22,6 +22,7 @@ const PLUGIN_NAME = "HashedModuleIdsPlugin";
|
|
|
22
22
|
|
|
23
23
|
class HashedModuleIdsPlugin {
|
|
24
24
|
/**
|
|
25
|
+
* Creates an instance of HashedModuleIdsPlugin.
|
|
25
26
|
* @param {HashedModuleIdsPluginOptions=} options options object
|
|
26
27
|
*/
|
|
27
28
|
constructor(options = {}) {
|
|
@@ -30,7 +31,7 @@ class HashedModuleIdsPlugin {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
|
-
*
|
|
34
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
34
35
|
* @param {Compiler} compiler the compiler instance
|
|
35
36
|
* @returns {void}
|
|
36
37
|
*/
|
package/lib/ids/IdHelpers.js
CHANGED
|
@@ -16,8 +16,21 @@ const numberHash = require("../util/numberHash");
|
|
|
16
16
|
/** @typedef {import("../util/Hash").HashFunction} HashFunction */
|
|
17
17
|
/** @typedef {import("../util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
|
|
18
18
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
19
|
+
/** @typedef {import("../css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
|
|
20
|
+
|
|
21
|
+
// Numbers longer than this are written in exponential form ("...e+xx"), so a
|
|
22
|
+
// longer string can't be a plain integer id.
|
|
23
|
+
const MAX_NUMERIC_STRING_LENGTH = 21;
|
|
24
|
+
// Char codes bounding the "looks like a plain number" fast check in `avoidNumber`.
|
|
25
|
+
const CC_HYPHEN_MINUS = 45;
|
|
26
|
+
const CC_DIGIT_ONE = 49;
|
|
27
|
+
const CC_DIGIT_NINE = 57;
|
|
28
|
+
// Long ids are truncated to this length and disambiguated with a short hash.
|
|
29
|
+
const MAX_SHORTENED_STRING_LENGTH = 100;
|
|
30
|
+
const SHORTENED_STRING_HASH_LENGTH = 6;
|
|
19
31
|
|
|
20
32
|
/**
|
|
33
|
+
* Returns hash.
|
|
21
34
|
* @param {string} str string to hash
|
|
22
35
|
* @param {number} len max length of the hash
|
|
23
36
|
* @param {HashFunction} hashFunction hash function to use
|
|
@@ -31,18 +44,17 @@ const getHash = (str, len, hashFunction) => {
|
|
|
31
44
|
};
|
|
32
45
|
|
|
33
46
|
/**
|
|
47
|
+
* Returns string prefixed by an underscore if it is a number.
|
|
34
48
|
* @param {string} str the string
|
|
35
49
|
* @returns {string} string prefixed by an underscore if it is a number
|
|
36
50
|
*/
|
|
37
51
|
const avoidNumber = (str) => {
|
|
38
|
-
|
|
39
|
-
if (str.length > 21) return str;
|
|
52
|
+
if (str.length > MAX_NUMERIC_STRING_LENGTH) return str;
|
|
40
53
|
const firstChar = str.charCodeAt(0);
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
} else if (firstChar > 57) {
|
|
54
|
+
// Skip everything that doesn't start like a number ("-" or a digit).
|
|
55
|
+
if (firstChar < CC_DIGIT_ONE) {
|
|
56
|
+
if (firstChar !== CC_HYPHEN_MINUS) return str;
|
|
57
|
+
} else if (firstChar > CC_DIGIT_NINE) {
|
|
46
58
|
return str;
|
|
47
59
|
}
|
|
48
60
|
if (str === String(Number(str))) {
|
|
@@ -52,6 +64,7 @@ const avoidNumber = (str) => {
|
|
|
52
64
|
};
|
|
53
65
|
|
|
54
66
|
/**
|
|
67
|
+
* Returns id representation.
|
|
55
68
|
* @param {string} request the request
|
|
56
69
|
* @returns {string} id representation
|
|
57
70
|
*/
|
|
@@ -59,21 +72,28 @@ const requestToId = (request) =>
|
|
|
59
72
|
request.replace(/^(\.\.?\/)+/, "").replace(/(^[.-]|[^a-z0-9_-])+/gi, "_");
|
|
60
73
|
|
|
61
74
|
/**
|
|
75
|
+
* Shorten long string.
|
|
62
76
|
* @param {string} string the string
|
|
63
77
|
* @param {string} delimiter separator for string and hash
|
|
64
78
|
* @param {HashFunction} hashFunction hash function to use
|
|
65
79
|
* @returns {string} string with limited max length to 100 chars
|
|
66
80
|
*/
|
|
67
81
|
const shortenLongString = (string, delimiter, hashFunction) => {
|
|
68
|
-
if (string.length <
|
|
82
|
+
if (string.length < MAX_SHORTENED_STRING_LENGTH) return string;
|
|
69
83
|
return (
|
|
70
|
-
string.slice(
|
|
84
|
+
string.slice(
|
|
85
|
+
0,
|
|
86
|
+
MAX_SHORTENED_STRING_LENGTH -
|
|
87
|
+
SHORTENED_STRING_HASH_LENGTH -
|
|
88
|
+
delimiter.length
|
|
89
|
+
) +
|
|
71
90
|
delimiter +
|
|
72
|
-
getHash(string,
|
|
91
|
+
getHash(string, SHORTENED_STRING_HASH_LENGTH, hashFunction)
|
|
73
92
|
);
|
|
74
93
|
};
|
|
75
94
|
|
|
76
95
|
/**
|
|
96
|
+
* Gets short module name.
|
|
77
97
|
* @param {Module} module the module
|
|
78
98
|
* @param {string} context context directory
|
|
79
99
|
* @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
|
|
@@ -92,6 +112,7 @@ const getShortModuleName = (module, context, associatedObjectForCache) => {
|
|
|
92
112
|
};
|
|
93
113
|
|
|
94
114
|
/**
|
|
115
|
+
* Gets long module name.
|
|
95
116
|
* @param {string} shortName the short name
|
|
96
117
|
* @param {Module} module the module
|
|
97
118
|
* @param {string} context context directory
|
|
@@ -111,6 +132,7 @@ const getLongModuleName = (
|
|
|
111
132
|
};
|
|
112
133
|
|
|
113
134
|
/**
|
|
135
|
+
* Gets full module name.
|
|
114
136
|
* @param {Module} module the module
|
|
115
137
|
* @param {string} context context directory
|
|
116
138
|
* @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
|
|
@@ -120,6 +142,7 @@ const getFullModuleName = (module, context, associatedObjectForCache) =>
|
|
|
120
142
|
makePathsRelative(context, module.identifier(), associatedObjectForCache);
|
|
121
143
|
|
|
122
144
|
/**
|
|
145
|
+
* Gets short chunk name.
|
|
123
146
|
* @param {Chunk} chunk the chunk
|
|
124
147
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
125
148
|
* @param {string} context context directory
|
|
@@ -148,6 +171,7 @@ const getShortChunkName = (
|
|
|
148
171
|
};
|
|
149
172
|
|
|
150
173
|
/**
|
|
174
|
+
* Gets long chunk name.
|
|
151
175
|
* @param {Chunk} chunk the chunk
|
|
152
176
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
153
177
|
* @param {string} context context directory
|
|
@@ -185,6 +209,7 @@ const getLongChunkName = (
|
|
|
185
209
|
};
|
|
186
210
|
|
|
187
211
|
/**
|
|
212
|
+
* Gets full chunk name.
|
|
188
213
|
* @param {Chunk} chunk the chunk
|
|
189
214
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
190
215
|
* @param {string} context context directory
|
|
@@ -206,6 +231,7 @@ const getFullChunkName = (
|
|
|
206
231
|
};
|
|
207
232
|
|
|
208
233
|
/**
|
|
234
|
+
* Adds to map of items.
|
|
209
235
|
* @template K
|
|
210
236
|
* @template V
|
|
211
237
|
* @param {Map<K, V[]>} map a map from key to values
|
|
@@ -225,6 +251,7 @@ const addToMapOfItems = (map, key, value) => {
|
|
|
225
251
|
/** @typedef {Set<string>} UsedModuleIds */
|
|
226
252
|
|
|
227
253
|
/**
|
|
254
|
+
* Gets used module ids and modules.
|
|
228
255
|
* @param {Compilation} compilation the compilation
|
|
229
256
|
* @param {((module: Module) => boolean)=} filter filter modules
|
|
230
257
|
* @returns {[UsedModuleIds, Module[]]} used module ids as strings and modules without id matching the filter
|
|
@@ -251,7 +278,9 @@ const getUsedModuleIdsAndModules = (compilation, filter) => {
|
|
|
251
278
|
(!filter || filter(module)) &&
|
|
252
279
|
(chunkGraph.getNumberOfModuleChunks(module) !== 0 ||
|
|
253
280
|
// CSS modules need IDs even when not in chunks, for generating CSS class names(i.e. [id]-[local])
|
|
254
|
-
/** @type {
|
|
281
|
+
/** @type {CssModuleBuildMeta} */ (module.buildMeta).isCssModule ||
|
|
282
|
+
/** @type {CssModuleBuildMeta} */ (module.buildMeta)
|
|
283
|
+
.needIdInConcatenation)
|
|
255
284
|
) {
|
|
256
285
|
modules.push(module);
|
|
257
286
|
}
|
|
@@ -263,6 +292,7 @@ const getUsedModuleIdsAndModules = (compilation, filter) => {
|
|
|
263
292
|
/** @typedef {Set<string>} UsedChunkIds */
|
|
264
293
|
|
|
265
294
|
/**
|
|
295
|
+
* Gets used chunk ids.
|
|
266
296
|
* @param {Compilation} compilation the compilation
|
|
267
297
|
* @returns {UsedChunkIds} used chunk ids as strings
|
|
268
298
|
*/
|
|
@@ -286,6 +316,7 @@ const getUsedChunkIds = (compilation) => {
|
|
|
286
316
|
};
|
|
287
317
|
|
|
288
318
|
/**
|
|
319
|
+
* Returns list of items without a name.
|
|
289
320
|
* @template T
|
|
290
321
|
* @param {Iterable<T>} items list of items to be named
|
|
291
322
|
* @param {(item: T) => string} getShortName get a short name for an item
|
|
@@ -304,6 +335,7 @@ const assignNames = (
|
|
|
304
335
|
assignName
|
|
305
336
|
) => {
|
|
306
337
|
/**
|
|
338
|
+
* Defines the map to item type used by this module.
|
|
307
339
|
* @template T
|
|
308
340
|
* @typedef {Map<string, T[]>} MapToItem
|
|
309
341
|
*/
|
|
@@ -345,7 +377,7 @@ const assignNames = (
|
|
|
345
377
|
items.sort(comparator);
|
|
346
378
|
let i = 0;
|
|
347
379
|
for (const item of items) {
|
|
348
|
-
while (
|
|
380
|
+
while (usedIds.has(name + i)) i++;
|
|
349
381
|
assignName(item, name + i);
|
|
350
382
|
usedIds.add(name + i);
|
|
351
383
|
i++;
|
|
@@ -358,6 +390,7 @@ const assignNames = (
|
|
|
358
390
|
};
|
|
359
391
|
|
|
360
392
|
/**
|
|
393
|
+
* Assign deterministic ids.
|
|
361
394
|
* @template T
|
|
362
395
|
* @param {T[]} items list of items to be named
|
|
363
396
|
* @param {(item: T) => string} getName get a name for an item
|
|
@@ -412,6 +445,7 @@ const assignDeterministicIds = (
|
|
|
412
445
|
};
|
|
413
446
|
|
|
414
447
|
/**
|
|
448
|
+
* Assign ascending module ids.
|
|
415
449
|
* @param {UsedModuleIds} usedIds used ids
|
|
416
450
|
* @param {Iterable<Module>} modules the modules
|
|
417
451
|
* @param {Compilation} compilation the compilation
|
|
@@ -425,6 +459,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
|
|
|
425
459
|
let assignId;
|
|
426
460
|
if (usedIds.size > 0) {
|
|
427
461
|
/**
|
|
462
|
+
* Processes the provided module.
|
|
428
463
|
* @param {Module} module the module
|
|
429
464
|
*/
|
|
430
465
|
assignId = (module) => {
|
|
@@ -435,6 +470,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
|
|
|
435
470
|
};
|
|
436
471
|
} else {
|
|
437
472
|
/**
|
|
473
|
+
* Processes the provided module.
|
|
438
474
|
* @param {Module} module the module
|
|
439
475
|
*/
|
|
440
476
|
assignId = (module) => {
|
|
@@ -449,6 +485,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
|
|
|
449
485
|
};
|
|
450
486
|
|
|
451
487
|
/**
|
|
488
|
+
* Assign ascending chunk ids.
|
|
452
489
|
* @param {Iterable<Chunk>} chunks the chunks
|
|
453
490
|
* @param {Compilation} compilation the compilation
|
|
454
491
|
* @returns {void}
|
|
@@ -17,6 +17,7 @@ const {
|
|
|
17
17
|
/** @typedef {import("../Compiler")} Compiler */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
+
* Defines the named chunk ids plugin options type used by this module.
|
|
20
21
|
* @typedef {object} NamedChunkIdsPluginOptions
|
|
21
22
|
* @property {string=} context context
|
|
22
23
|
* @property {string=} delimiter delimiter
|
|
@@ -26,6 +27,7 @@ const PLUGIN_NAME = "NamedChunkIdsPlugin";
|
|
|
26
27
|
|
|
27
28
|
class NamedChunkIdsPlugin {
|
|
28
29
|
/**
|
|
30
|
+
* Creates an instance of NamedChunkIdsPlugin.
|
|
29
31
|
* @param {NamedChunkIdsPluginOptions=} options options
|
|
30
32
|
*/
|
|
31
33
|
constructor(options = {}) {
|
|
@@ -34,7 +36,7 @@ class NamedChunkIdsPlugin {
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
|
-
*
|
|
39
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
38
40
|
* @param {Compiler} compiler the compiler instance
|
|
39
41
|
* @returns {void}
|
|
40
42
|
*/
|
|
@@ -17,6 +17,7 @@ const {
|
|
|
17
17
|
/** @typedef {import("../Compiler")} Compiler */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
+
* Defines the named module ids plugin options type used by this module.
|
|
20
21
|
* @typedef {object} NamedModuleIdsPluginOptions
|
|
21
22
|
* @property {string=} context context
|
|
22
23
|
*/
|
|
@@ -25,6 +26,7 @@ const PLUGIN_NAME = "NamedModuleIdsPlugin";
|
|
|
25
26
|
|
|
26
27
|
class NamedModuleIdsPlugin {
|
|
27
28
|
/**
|
|
29
|
+
* Creates an instance of NamedModuleIdsPlugin.
|
|
28
30
|
* @param {NamedModuleIdsPluginOptions=} options options
|
|
29
31
|
*/
|
|
30
32
|
constructor(options = {}) {
|
|
@@ -33,7 +35,7 @@ class NamedModuleIdsPlugin {
|
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
/**
|
|
36
|
-
*
|
|
38
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
37
39
|
* @param {Compiler} compiler the compiler instance
|
|
38
40
|
* @returns {void}
|
|
39
41
|
*/
|
|
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "OccurrenceChunkIdsPlugin";
|
|
|
16
16
|
|
|
17
17
|
class OccurrenceChunkIdsPlugin {
|
|
18
18
|
/**
|
|
19
|
+
* Creates an instance of OccurrenceChunkIdsPlugin.
|
|
19
20
|
* @param {OccurrenceChunkIdsPluginOptions=} options options object
|
|
20
21
|
*/
|
|
21
22
|
constructor(options = {}) {
|
|
@@ -24,7 +25,7 @@ class OccurrenceChunkIdsPlugin {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
|
-
*
|
|
28
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
28
29
|
* @param {Compiler} compiler the compiler instance
|
|
29
30
|
* @returns {void}
|
|
30
31
|
*/
|
|
@@ -21,6 +21,7 @@ const PLUGIN_NAME = "OccurrenceModuleIdsPlugin";
|
|
|
21
21
|
|
|
22
22
|
class OccurrenceModuleIdsPlugin {
|
|
23
23
|
/**
|
|
24
|
+
* Creates an instance of OccurrenceModuleIdsPlugin.
|
|
24
25
|
* @param {OccurrenceModuleIdsPluginOptions=} options options object
|
|
25
26
|
*/
|
|
26
27
|
constructor(options = {}) {
|
|
@@ -29,7 +30,7 @@ class OccurrenceModuleIdsPlugin {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
|
-
*
|
|
33
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
33
34
|
* @param {Compiler} compiler the compiler instance
|
|
34
35
|
* @returns {void}
|
|
35
36
|
*/
|
|
@@ -79,6 +80,7 @@ class OccurrenceModuleIdsPlugin {
|
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
/**
|
|
83
|
+
* Count occurs in entry.
|
|
82
84
|
* @param {Module} module module
|
|
83
85
|
* @returns {number} count of occurs
|
|
84
86
|
*/
|
|
@@ -96,6 +98,7 @@ class OccurrenceModuleIdsPlugin {
|
|
|
96
98
|
};
|
|
97
99
|
|
|
98
100
|
/**
|
|
101
|
+
* Returns count of occurs.
|
|
99
102
|
* @param {Module} module module
|
|
100
103
|
* @returns {number} count of occurs
|
|
101
104
|
*/
|
|
@@ -18,6 +18,7 @@ const { getUsedModuleIdsAndModules } = require("./IdHelpers");
|
|
|
18
18
|
const plugin = "SyncModuleIdsPlugin";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
+
* Represents the sync module ids plugin runtime component.
|
|
21
22
|
* @typedef {object} SyncModuleIdsPluginOptions
|
|
22
23
|
* @property {string} path path to file
|
|
23
24
|
* @property {string=} context context for module names
|
|
@@ -27,6 +28,7 @@ const plugin = "SyncModuleIdsPlugin";
|
|
|
27
28
|
|
|
28
29
|
class SyncModuleIdsPlugin {
|
|
29
30
|
/**
|
|
31
|
+
* Creates an instance of SyncModuleIdsPlugin.
|
|
30
32
|
* @param {SyncModuleIdsPluginOptions} options options
|
|
31
33
|
*/
|
|
32
34
|
constructor(options) {
|
|
@@ -35,7 +37,7 @@ class SyncModuleIdsPlugin {
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
/**
|
|
38
|
-
*
|
|
40
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
39
41
|
* @param {Compiler} compiler the compiler instance
|
|
40
42
|
* @returns {void}
|
|
41
43
|
*/
|
package/lib/index.js
CHANGED
|
@@ -35,12 +35,28 @@ const memoize = require("./util/memoize");
|
|
|
35
35
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
|
|
36
36
|
/** @typedef {import("../declarations/WebpackOptions").WebpackPluginFunction} WebpackPluginFunction */
|
|
37
37
|
/** @typedef {import("../declarations/WebpackOptions").WebpackPluginInstance} WebpackPluginInstance */
|
|
38
|
+
/** @typedef {import("./asset/AssetModule").AssetModuleBuildInfo} AssetModuleBuildInfo */
|
|
38
39
|
/** @typedef {import("./ChunkGroup")} ChunkGroup */
|
|
39
40
|
/** @typedef {import("./Compiler").AssetEmittedInfo} AssetEmittedInfo */
|
|
41
|
+
/** @typedef {import("./ContextModule").ContextModuleBuildInfo} ContextModuleBuildInfo */
|
|
42
|
+
/** @typedef {import("./css/CssModule").CssModuleBuildInfo} CssModuleBuildInfo */
|
|
43
|
+
/** @typedef {import("./css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
|
|
44
|
+
/** @typedef {import("./ExternalModule").ExternalModuleBuildInfo} ExternalModuleBuildInfo */
|
|
45
|
+
/** @typedef {import("./html/HtmlModule").HtmlModuleBuildInfo} HtmlModuleBuildInfo */
|
|
46
|
+
/** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildInfo} JavascriptModuleBuildInfo */
|
|
47
|
+
/** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
|
|
48
|
+
/** @typedef {import("./json/JsonModule").JsonModuleBuildInfo} JsonModuleBuildInfo */
|
|
49
|
+
/** @typedef {import("./Module").BuildInfo} BuildInfo */
|
|
50
|
+
/** @typedef {import("./Module").BuildMeta} BuildMeta */
|
|
51
|
+
/** @typedef {import("./NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
|
|
52
|
+
/** @typedef {import("./optimize/ConcatenatedModule").ConcatenatedModuleBuildInfo} ConcatenatedModuleBuildInfo */
|
|
53
|
+
/** @typedef {import("./wasm-sync/SyncWasmModule").SyncWasmModuleBuildMeta} SyncWasmModuleBuildMeta */
|
|
40
54
|
/** @typedef {import("./Compilation").Asset} Asset */
|
|
41
55
|
/** @typedef {import("./Compilation").AssetInfo} AssetInfo */
|
|
42
56
|
/** @typedef {import("./Compilation").EntryOptions} EntryOptions */
|
|
43
57
|
/** @typedef {import("./Compilation").PathData} PathData */
|
|
58
|
+
/** @typedef {import("./Compilation").PathDataChunk} PathDataChunk */
|
|
59
|
+
/** @typedef {import("./Compilation").PathDataModule} PathDataModule */
|
|
44
60
|
/** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
|
|
45
61
|
/** @typedef {import("./Entrypoint")} Entrypoint */
|
|
46
62
|
/** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionCallback} ExternalItemFunctionCallback */
|
|
@@ -65,6 +81,8 @@ const memoize = require("./util/memoize");
|
|
|
65
81
|
/** @typedef {import("./cli").Problem} Problem */
|
|
66
82
|
/** @typedef {import("./cli").Colors} Colors */
|
|
67
83
|
/** @typedef {import("./cli").ColorsOptions} ColorsOptions */
|
|
84
|
+
/** @typedef {import("./config/defineConfig").ConfigurationFactory} ConfigurationFactory */
|
|
85
|
+
/** @typedef {import("./config/defineConfig").DefineConfigInput} DefineConfigInput */
|
|
68
86
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */
|
|
69
87
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */
|
|
70
88
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */
|
|
@@ -85,6 +103,7 @@ const memoize = require("./util/memoize");
|
|
|
85
103
|
/** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
|
|
86
104
|
|
|
87
105
|
/**
|
|
106
|
+
* Returns function.
|
|
88
107
|
* @template {EXPECTED_FUNCTION} T
|
|
89
108
|
* @param {() => T} factory factory function
|
|
90
109
|
* @returns {T} function
|
|
@@ -93,6 +112,7 @@ const lazyFunction = (factory) => {
|
|
|
93
112
|
const fac = memoize(factory);
|
|
94
113
|
const f = /** @type {unknown} */ (
|
|
95
114
|
/**
|
|
115
|
+
* Handles the callback logic for this hook.
|
|
96
116
|
* @param {...EXPECTED_ANY} args args
|
|
97
117
|
* @returns {T} result
|
|
98
118
|
*/
|
|
@@ -102,6 +122,7 @@ const lazyFunction = (factory) => {
|
|
|
102
122
|
};
|
|
103
123
|
|
|
104
124
|
/**
|
|
125
|
+
* Merges the provided values into a single result.
|
|
105
126
|
* @template A
|
|
106
127
|
* @template B
|
|
107
128
|
* @param {A} obj input a
|
|
@@ -141,7 +162,11 @@ module.exports = mergeExports(fn, {
|
|
|
141
162
|
get webpack() {
|
|
142
163
|
return require("./webpack");
|
|
143
164
|
},
|
|
165
|
+
get defineConfig() {
|
|
166
|
+
return require("./config/defineConfig");
|
|
167
|
+
},
|
|
144
168
|
/**
|
|
169
|
+
* Returns validate fn.
|
|
145
170
|
* @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
|
|
146
171
|
*/
|
|
147
172
|
get validate() {
|
|
@@ -151,11 +176,14 @@ module.exports = mergeExports(fn, {
|
|
|
151
176
|
|
|
152
177
|
const getRealValidate = memoize(
|
|
153
178
|
/**
|
|
179
|
+
* Handles the callback logic for this hook.
|
|
154
180
|
* @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
|
|
155
181
|
*/
|
|
156
182
|
() => {
|
|
157
183
|
const validateSchema = require("./validateSchema");
|
|
158
|
-
const webpackOptionsSchema =
|
|
184
|
+
const webpackOptionsSchema =
|
|
185
|
+
/** @type {EXPECTED_ANY} */
|
|
186
|
+
(require("../schemas/WebpackOptions.json"));
|
|
159
187
|
|
|
160
188
|
return (options) => validateSchema(webpackOptionsSchema, options);
|
|
161
189
|
}
|
|
@@ -217,18 +245,9 @@ module.exports = mergeExports(fn, {
|
|
|
217
245
|
get DefinePlugin() {
|
|
218
246
|
return require("./DefinePlugin");
|
|
219
247
|
},
|
|
220
|
-
get DelegatedPlugin() {
|
|
221
|
-
return require("./DelegatedPlugin");
|
|
222
|
-
},
|
|
223
248
|
get Dependency() {
|
|
224
249
|
return require("./Dependency");
|
|
225
250
|
},
|
|
226
|
-
get DllPlugin() {
|
|
227
|
-
return require("./DllPlugin");
|
|
228
|
-
},
|
|
229
|
-
get DllReferencePlugin() {
|
|
230
|
-
return require("./DllReferencePlugin");
|
|
231
|
-
},
|
|
232
251
|
get DynamicEntryPlugin() {
|
|
233
252
|
return require("./DynamicEntryPlugin");
|
|
234
253
|
},
|
|
@@ -278,9 +297,6 @@ module.exports = mergeExports(fn, {
|
|
|
278
297
|
"DEP_WEBPACK_JAVASCRIPT_MODULES_PLUGIN"
|
|
279
298
|
)();
|
|
280
299
|
},
|
|
281
|
-
get LibManifestPlugin() {
|
|
282
|
-
return require("./LibManifestPlugin");
|
|
283
|
-
},
|
|
284
300
|
get LibraryTemplatePlugin() {
|
|
285
301
|
return util.deprecate(
|
|
286
302
|
() => require("./LibraryTemplatePlugin"),
|
|
@@ -371,7 +387,7 @@ module.exports = mergeExports(fn, {
|
|
|
371
387
|
return require("./WatchIgnorePlugin");
|
|
372
388
|
},
|
|
373
389
|
get WebpackError() {
|
|
374
|
-
return require("./WebpackError");
|
|
390
|
+
return require("./errors/WebpackError");
|
|
375
391
|
},
|
|
376
392
|
get WebpackOptionsApply() {
|
|
377
393
|
return require("./WebpackOptionsApply");
|
|
@@ -383,7 +399,7 @@ module.exports = mergeExports(fn, {
|
|
|
383
399
|
"DEP_WEBPACK_OPTIONS_DEFAULTER"
|
|
384
400
|
)();
|
|
385
401
|
},
|
|
386
|
-
// TODO webpack 6
|
|
402
|
+
// TODO webpack 6 remove
|
|
387
403
|
get WebpackOptionsValidationError() {
|
|
388
404
|
return require("schema-utils").ValidationError;
|
|
389
405
|
},
|
|
@@ -590,6 +606,12 @@ module.exports = mergeExports(fn, {
|
|
|
590
606
|
}
|
|
591
607
|
},
|
|
592
608
|
|
|
609
|
+
html: {
|
|
610
|
+
get HtmlModulesPlugin() {
|
|
611
|
+
return require("./html/HtmlModulesPlugin");
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
|
|
593
615
|
library: {
|
|
594
616
|
get AbstractLibraryPlugin() {
|
|
595
617
|
return require("./library/AbstractLibraryPlugin");
|
|
@@ -599,6 +621,35 @@ module.exports = mergeExports(fn, {
|
|
|
599
621
|
}
|
|
600
622
|
},
|
|
601
623
|
|
|
624
|
+
// TODO remove in webpack 6 in favor of `dll` scope
|
|
625
|
+
get DelegatedPlugin() {
|
|
626
|
+
return require("./dll/DelegatedPlugin");
|
|
627
|
+
},
|
|
628
|
+
get DllPlugin() {
|
|
629
|
+
return require("./dll/DllPlugin");
|
|
630
|
+
},
|
|
631
|
+
get DllReferencePlugin() {
|
|
632
|
+
return require("./dll/DllReferencePlugin");
|
|
633
|
+
},
|
|
634
|
+
get LibManifestPlugin() {
|
|
635
|
+
return require("./dll/LibManifestPlugin");
|
|
636
|
+
},
|
|
637
|
+
|
|
638
|
+
dll: {
|
|
639
|
+
get DelegatedPlugin() {
|
|
640
|
+
return require("./dll/DelegatedPlugin");
|
|
641
|
+
},
|
|
642
|
+
get DllPlugin() {
|
|
643
|
+
return require("./dll/DllPlugin");
|
|
644
|
+
},
|
|
645
|
+
get DllReferencePlugin() {
|
|
646
|
+
return require("./dll/DllReferencePlugin");
|
|
647
|
+
},
|
|
648
|
+
get LibManifestPlugin() {
|
|
649
|
+
return require("./dll/LibManifestPlugin");
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
|
|
602
653
|
container: {
|
|
603
654
|
get ContainerPlugin() {
|
|
604
655
|
return require("./container/ContainerPlugin");
|
|
@@ -23,7 +23,7 @@ const PLUGIN_NAME = "ArrayPushCallbackChunkFormatPlugin";
|
|
|
23
23
|
|
|
24
24
|
class ArrayPushCallbackChunkFormatPlugin {
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
27
27
|
* @param {Compiler} compiler the compiler instance
|
|
28
28
|
* @returns {void}
|
|
29
29
|
*/
|
|
@@ -65,12 +65,11 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
|
65
65
|
} else {
|
|
66
66
|
const chunkLoadingGlobal =
|
|
67
67
|
runtimeTemplate.outputOptions.chunkLoadingGlobal;
|
|
68
|
+
const chunkLoadingGlobalExpr = `${globalObject}[${JSON.stringify(
|
|
69
|
+
chunkLoadingGlobal
|
|
70
|
+
)}]`;
|
|
68
71
|
source.add(
|
|
69
|
-
`(${
|
|
70
|
-
chunkLoadingGlobal
|
|
71
|
-
)}] = ${globalObject}[${JSON.stringify(
|
|
72
|
-
chunkLoadingGlobal
|
|
73
|
-
)}] || []).push([`
|
|
72
|
+
`(${runtimeTemplate.assignOr(chunkLoadingGlobalExpr, "[]")}).push([`
|
|
74
73
|
);
|
|
75
74
|
source.add(`${JSON.stringify(chunk.ids)},`);
|
|
76
75
|
source.add(modules);
|