@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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Tobias Koppers @sokra
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
9
|
+
const WebpackError = require("./WebpackError");
|
|
10
|
+
|
|
11
|
+
class NonErrorEmittedError extends WebpackError {
|
|
12
|
+
/**
|
|
13
|
+
* @param {EXPECTED_ANY} error value which is not an instance of Error
|
|
14
|
+
*/
|
|
15
|
+
constructor(error) {
|
|
16
|
+
super();
|
|
17
|
+
|
|
18
|
+
/** @type {string} */
|
|
19
|
+
this.name = "NonErrorEmittedError";
|
|
20
|
+
/** @type {string} */
|
|
21
|
+
this.message = `(Emitted value instead of an instance of Error) ${error}`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
makeSerializable(
|
|
26
|
+
NonErrorEmittedError,
|
|
27
|
+
"webpack/lib/errors/NonErrorEmittedError"
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
module.exports = NonErrorEmittedError;
|
|
@@ -5,11 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
8
9
|
const WebpackError = require("./WebpackError");
|
|
9
|
-
const makeSerializable = require("./util/makeSerializable");
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Error raised when webpack encounters a resource URI scheme that no installed
|
|
13
|
+
* plugin knows how to read.
|
|
14
|
+
*/
|
|
11
15
|
class UnhandledSchemeError extends WebpackError {
|
|
12
16
|
/**
|
|
17
|
+
* Creates an error explaining that the current resource scheme is not
|
|
18
|
+
* supported by the active plugin set.
|
|
13
19
|
* @param {string} scheme scheme
|
|
14
20
|
* @param {string} resource resource
|
|
15
21
|
*/
|
|
@@ -19,6 +25,7 @@ class UnhandledSchemeError extends WebpackError {
|
|
|
19
25
|
'\nWebpack supports "data:" and "file:" URIs by default.' +
|
|
20
26
|
`\nYou may need an additional plugin to handle "${scheme}:" URIs.`
|
|
21
27
|
);
|
|
28
|
+
/** @type {string} */
|
|
22
29
|
this.file = resource;
|
|
23
30
|
/** @type {string} */
|
|
24
31
|
this.name = "UnhandledSchemeError";
|
|
@@ -27,7 +34,7 @@ class UnhandledSchemeError extends WebpackError {
|
|
|
27
34
|
|
|
28
35
|
makeSerializable(
|
|
29
36
|
UnhandledSchemeError,
|
|
30
|
-
"webpack/lib/UnhandledSchemeError",
|
|
37
|
+
"webpack/lib/errors/UnhandledSchemeError",
|
|
31
38
|
"UnhandledSchemeError"
|
|
32
39
|
);
|
|
33
40
|
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
8
9
|
const WebpackError = require("./WebpackError");
|
|
9
|
-
const makeSerializable = require("./util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @typedef {import("
|
|
11
|
+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
|
12
12
|
|
|
13
13
|
class UnsupportedFeatureWarning extends WebpackError {
|
|
14
14
|
/**
|
|
15
|
+
* Creates an instance of UnsupportedFeatureWarning.
|
|
15
16
|
* @param {string} message description of warning
|
|
16
17
|
* @param {DependencyLocation} loc location start and end positions of the module
|
|
17
18
|
*/
|
|
@@ -29,7 +30,7 @@ class UnsupportedFeatureWarning extends WebpackError {
|
|
|
29
30
|
|
|
30
31
|
makeSerializable(
|
|
31
32
|
UnsupportedFeatureWarning,
|
|
32
|
-
"webpack/lib/UnsupportedFeatureWarning"
|
|
33
|
+
"webpack/lib/errors/UnsupportedFeatureWarning"
|
|
33
34
|
);
|
|
34
35
|
|
|
35
36
|
module.exports = UnsupportedFeatureWarning;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Jarid Margolin @jaridmargolin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const inspect = require("util").inspect.custom;
|
|
9
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("../Chunk")} Chunk */
|
|
12
|
+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
|
13
|
+
/** @typedef {import("../Module")} Module */
|
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
16
|
+
|
|
17
|
+
class WebpackError extends Error {
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance of WebpackError.
|
|
20
|
+
* @param {string=} message error message
|
|
21
|
+
* @param {{ cause?: unknown }} options error options
|
|
22
|
+
*/
|
|
23
|
+
constructor(message, options = {}) {
|
|
24
|
+
super(message, options);
|
|
25
|
+
|
|
26
|
+
/** @type {string=} */
|
|
27
|
+
this.details = undefined;
|
|
28
|
+
/** @type {(Module | null)=} */
|
|
29
|
+
this.module = undefined;
|
|
30
|
+
/** @type {DependencyLocation=} */
|
|
31
|
+
this.loc = undefined;
|
|
32
|
+
/** @type {boolean=} */
|
|
33
|
+
this.hideStack = undefined;
|
|
34
|
+
/** @type {Chunk=} */
|
|
35
|
+
this.chunk = undefined;
|
|
36
|
+
/** @type {string=} */
|
|
37
|
+
this.file = undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Returns inspect message.
|
|
42
|
+
* @returns {string} inspect message
|
|
43
|
+
*/
|
|
44
|
+
[inspect]() {
|
|
45
|
+
return (
|
|
46
|
+
this.stack +
|
|
47
|
+
(this.details ? `\n${this.details}` : "") +
|
|
48
|
+
(this.cause ? `\n${this.cause}` : "")
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Serializes this instance into the provided serializer context.
|
|
54
|
+
* @param {ObjectSerializerContext} context context
|
|
55
|
+
*/
|
|
56
|
+
serialize({ write }) {
|
|
57
|
+
write(this.name);
|
|
58
|
+
write(this.message);
|
|
59
|
+
write(this.stack);
|
|
60
|
+
write(this.cause);
|
|
61
|
+
write(this.details);
|
|
62
|
+
write(this.loc);
|
|
63
|
+
write(this.hideStack);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Restores this instance from the provided deserializer context.
|
|
68
|
+
* @param {ObjectDeserializerContext} context context
|
|
69
|
+
*/
|
|
70
|
+
deserialize({ read }) {
|
|
71
|
+
this.name = read();
|
|
72
|
+
this.message = read();
|
|
73
|
+
this.stack = read();
|
|
74
|
+
this.cause = read();
|
|
75
|
+
this.details = read();
|
|
76
|
+
this.loc = read();
|
|
77
|
+
this.hideStack = read();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
makeSerializable(WebpackError, "webpack/lib/errors/WebpackError");
|
|
82
|
+
|
|
83
|
+
/** @type {typeof WebpackError} */
|
|
84
|
+
module.exports = WebpackError;
|
|
@@ -13,6 +13,7 @@ class ExportWebpackRequireRuntimeModule extends RuntimeModule {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
16
17
|
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
17
18
|
*/
|
|
18
19
|
shouldIsolate() {
|
|
@@ -20,6 +21,7 @@ class ExportWebpackRequireRuntimeModule extends RuntimeModule {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
/**
|
|
24
|
+
* Generates runtime code for this runtime module.
|
|
23
25
|
* @returns {string | null} runtime code
|
|
24
26
|
*/
|
|
25
27
|
generate() {
|
|
@@ -27,8 +27,11 @@ const { getUndoPath } = require("../util/identifier");
|
|
|
27
27
|
/** @typedef {import("../Compilation")} Compilation */
|
|
28
28
|
/** @typedef {import("../Compiler")} Compiler */
|
|
29
29
|
/** @typedef {import("../Entrypoint")} Entrypoint */
|
|
30
|
+
/** @typedef {import("../Module")} Module */
|
|
31
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
|
30
32
|
|
|
31
33
|
/**
|
|
34
|
+
* Gets relative path.
|
|
32
35
|
* @param {Compilation} compilation the compilation instance
|
|
33
36
|
* @param {Chunk} chunk the chunk
|
|
34
37
|
* @param {Chunk} runtimeChunk the runtime chunk
|
|
@@ -69,6 +72,7 @@ const getRelativePath = (compilation, chunk, runtimeChunk) => {
|
|
|
69
72
|
};
|
|
70
73
|
|
|
71
74
|
/**
|
|
75
|
+
* Renders chunk import.
|
|
72
76
|
* @param {Compilation} compilation the compilation instance
|
|
73
77
|
* @param {Chunk} chunk the chunk to render the import for
|
|
74
78
|
* @param {string=} namedImport the named import to use for the import
|
|
@@ -76,12 +80,15 @@ const getRelativePath = (compilation, chunk, runtimeChunk) => {
|
|
|
76
80
|
* @returns {string} the import source
|
|
77
81
|
*/
|
|
78
82
|
function renderChunkImport(compilation, chunk, namedImport, runtimeChunk) {
|
|
79
|
-
return `import ${
|
|
83
|
+
return `import ${
|
|
84
|
+
namedImport ? `* as ${namedImport}` : `{ ${RuntimeGlobals.require} }`
|
|
85
|
+
} from ${JSON.stringify(
|
|
80
86
|
getRelativePath(compilation, chunk, runtimeChunk || chunk)
|
|
81
87
|
)};\n`;
|
|
82
88
|
}
|
|
83
89
|
|
|
84
90
|
/**
|
|
91
|
+
* Gets chunk named import.
|
|
85
92
|
* @param {number} index the index of the chunk
|
|
86
93
|
* @returns {string} the named import to use for the import
|
|
87
94
|
*/
|
|
@@ -93,7 +100,7 @@ const PLUGIN_NAME = "ModuleChunkFormatPlugin";
|
|
|
93
100
|
|
|
94
101
|
class ModuleChunkFormatPlugin {
|
|
95
102
|
/**
|
|
96
|
-
*
|
|
103
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
97
104
|
* @param {Compiler} compiler the compiler instance
|
|
98
105
|
* @returns {void}
|
|
99
106
|
*/
|
|
@@ -111,6 +118,7 @@ class ModuleChunkFormatPlugin {
|
|
|
111
118
|
);
|
|
112
119
|
const hooks = getCompilationHooks(compilation);
|
|
113
120
|
/**
|
|
121
|
+
* With dependent chunks.
|
|
114
122
|
* @param {Iterable<Chunk>} chunks the chunks to render
|
|
115
123
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
116
124
|
* @param {Chunk=} runtimeChunk the runtime chunk
|
|
@@ -178,10 +186,14 @@ class ModuleChunkFormatPlugin {
|
|
|
178
186
|
const hotUpdateChunk = chunk instanceof HotUpdateChunk ? chunk : null;
|
|
179
187
|
const source = new ConcatSource();
|
|
180
188
|
source.add(
|
|
181
|
-
`export const ${RuntimeGlobals.esmId} = ${JSON.stringify(
|
|
189
|
+
`export const ${RuntimeGlobals.esmId} = ${JSON.stringify(
|
|
190
|
+
chunk.id
|
|
191
|
+
)};\n`
|
|
182
192
|
);
|
|
183
193
|
source.add(
|
|
184
|
-
`export const ${RuntimeGlobals.esmIds} = ${JSON.stringify(
|
|
194
|
+
`export const ${RuntimeGlobals.esmIds} = ${JSON.stringify(
|
|
195
|
+
chunk.ids
|
|
196
|
+
)};\n`
|
|
185
197
|
);
|
|
186
198
|
source.add(`export const ${RuntimeGlobals.esmModules} = `);
|
|
187
199
|
source.add(modules);
|
|
@@ -198,6 +210,8 @@ class ModuleChunkFormatPlugin {
|
|
|
198
210
|
}
|
|
199
211
|
const { entries, runtimeChunk } = getChunkInfo(chunk, chunkGraph);
|
|
200
212
|
if (runtimeChunk) {
|
|
213
|
+
const { inlinedEntryModule, inlinedEntrySource } =
|
|
214
|
+
/** @type {ChunkRenderContext} */ (renderContext);
|
|
201
215
|
const entrySource = new ConcatSource();
|
|
202
216
|
entrySource.add(source);
|
|
203
217
|
entrySource.add(";\n\n// load runtime\n");
|
|
@@ -205,12 +219,21 @@ class ModuleChunkFormatPlugin {
|
|
|
205
219
|
renderChunkImport(compilation, runtimeChunk, "", chunk)
|
|
206
220
|
);
|
|
207
221
|
const startupSource = new ConcatSource();
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
222
|
+
// The `__webpack_exec__` helper is only needed for entries that
|
|
223
|
+
// are executed through the registry, not for inlined entries.
|
|
224
|
+
const needExec = entries.some(
|
|
225
|
+
([module]) =>
|
|
226
|
+
module !== inlinedEntryModule &&
|
|
227
|
+
chunkGraph.getModuleSourceTypes(module).has(JAVASCRIPT_TYPE)
|
|
213
228
|
);
|
|
229
|
+
if (needExec) {
|
|
230
|
+
startupSource.add(
|
|
231
|
+
`var __webpack_exec__ = ${runtimeTemplate.returningFunction(
|
|
232
|
+
`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`,
|
|
233
|
+
"moduleId"
|
|
234
|
+
)}\n`
|
|
235
|
+
);
|
|
236
|
+
}
|
|
214
237
|
|
|
215
238
|
/** @type {Set<Chunk>} */
|
|
216
239
|
const loadedChunks = new Set();
|
|
@@ -244,18 +267,32 @@ class ModuleChunkFormatPlugin {
|
|
|
244
267
|
startupSource.add("\n");
|
|
245
268
|
startupSource.add(sourceWithDependentChunks);
|
|
246
269
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
270
|
+
if (module === inlinedEntryModule && inlinedEntrySource) {
|
|
271
|
+
// Inline the entry at the top level so its declarations stay
|
|
272
|
+
// live ESM bindings (exports appended by `renderStartup`).
|
|
273
|
+
startupSource.add(
|
|
274
|
+
`${runtimeTemplate.renderLet()} ${
|
|
275
|
+
RuntimeGlobals.exports
|
|
276
|
+
} = {};\n`
|
|
277
|
+
);
|
|
278
|
+
startupSource.add(inlinedEntrySource);
|
|
279
|
+
startupSource.add("\n");
|
|
280
|
+
} else {
|
|
281
|
+
startupSource.add(
|
|
282
|
+
`${
|
|
283
|
+
final ? `var ${RuntimeGlobals.exports} = ` : ""
|
|
284
|
+
}__webpack_exec__(${JSON.stringify(moduleId)});\n`
|
|
285
|
+
);
|
|
286
|
+
}
|
|
252
287
|
}
|
|
253
288
|
|
|
254
289
|
entrySource.add(
|
|
255
290
|
hooks.renderStartup.call(
|
|
256
291
|
startupSource,
|
|
257
292
|
entries[entries.length - 1][0],
|
|
258
|
-
|
|
293
|
+
inlinedEntryModule
|
|
294
|
+
? { ...renderContext, inlined: true, inlinedInIIFE: false }
|
|
295
|
+
: renderContext
|
|
259
296
|
)
|
|
260
297
|
);
|
|
261
298
|
return entrySource;
|
|
@@ -17,7 +17,7 @@ const PLUGIN_NAME = "ModuleChunkLoadingPlugin";
|
|
|
17
17
|
|
|
18
18
|
class ModuleChunkLoadingPlugin {
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
21
21
|
* @param {Compiler} compiler the compiler instance
|
|
22
22
|
* @returns {void}
|
|
23
23
|
*/
|
|
@@ -25,6 +25,7 @@ class ModuleChunkLoadingPlugin {
|
|
|
25
25
|
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
26
26
|
const globalChunkLoading = compilation.outputOptions.chunkLoading;
|
|
27
27
|
/**
|
|
28
|
+
* Checks whether this module chunk loading plugin is enabled for chunk.
|
|
28
29
|
* @param {Chunk} chunk chunk to check
|
|
29
30
|
* @returns {boolean} true, when the plugin is enabled for the chunk
|
|
30
31
|
*/
|
|
@@ -39,6 +40,7 @@ class ModuleChunkLoadingPlugin {
|
|
|
39
40
|
/** @type {WeakSet<Chunk>} */
|
|
40
41
|
const onceForChunkSet = new WeakSet();
|
|
41
42
|
/**
|
|
43
|
+
* Handles the hook callback for this code path.
|
|
42
44
|
* @param {Chunk} chunk chunk to check
|
|
43
45
|
* @param {RuntimeRequirements} set runtime requirements
|
|
44
46
|
*/
|
|
@@ -62,6 +64,9 @@ class ModuleChunkLoadingPlugin {
|
|
|
62
64
|
compilation.hooks.runtimeRequirementInTree
|
|
63
65
|
.for(RuntimeGlobals.externalInstallChunk)
|
|
64
66
|
.tap(PLUGIN_NAME, handler);
|
|
67
|
+
compilation.hooks.runtimeRequirementInTree
|
|
68
|
+
.for(RuntimeGlobals.analyzableChunkImport)
|
|
69
|
+
.tap(PLUGIN_NAME, handler);
|
|
65
70
|
compilation.hooks.runtimeRequirementInTree
|
|
66
71
|
.for(RuntimeGlobals.onChunksLoaded)
|
|
67
72
|
.tap(PLUGIN_NAME, handler);
|
|
@@ -81,12 +86,15 @@ class ModuleChunkLoadingPlugin {
|
|
|
81
86
|
);
|
|
82
87
|
});
|
|
83
88
|
|
|
84
|
-
//
|
|
89
|
+
// The prefetch/preload handlers build the chunk URL themselves, so they need
|
|
90
|
+
// the public path and script filename directly — without relying on
|
|
91
|
+
// `ensureChunkHandlers` to pull them in (an analyzable `import()` may replace it).
|
|
85
92
|
compilation.hooks.runtimeRequirementInTree
|
|
86
93
|
.for(RuntimeGlobals.prefetchChunkHandlers)
|
|
87
94
|
.tap(PLUGIN_NAME, (chunk, set) => {
|
|
88
95
|
if (!isEnabledForChunk(chunk)) return;
|
|
89
96
|
set.add(RuntimeGlobals.publicPath);
|
|
97
|
+
set.add(RuntimeGlobals.getChunkScriptFilename);
|
|
90
98
|
});
|
|
91
99
|
|
|
92
100
|
compilation.hooks.runtimeRequirementInTree
|
|
@@ -94,6 +102,7 @@ class ModuleChunkLoadingPlugin {
|
|
|
94
102
|
.tap(PLUGIN_NAME, (chunk, set) => {
|
|
95
103
|
if (!isEnabledForChunk(chunk)) return;
|
|
96
104
|
set.add(RuntimeGlobals.publicPath);
|
|
105
|
+
set.add(RuntimeGlobals.getChunkScriptFilename);
|
|
97
106
|
});
|
|
98
107
|
|
|
99
108
|
compilation.hooks.runtimeRequirementInTree
|
|
@@ -113,7 +122,6 @@ class ModuleChunkLoadingPlugin {
|
|
|
113
122
|
.tap(PLUGIN_NAME, (chunk, set) => {
|
|
114
123
|
if (!isEnabledForChunk(chunk)) return;
|
|
115
124
|
set.add(RuntimeGlobals.publicPath);
|
|
116
|
-
set.add(RuntimeGlobals.loadScript);
|
|
117
125
|
set.add(RuntimeGlobals.getChunkUpdateScriptFilename);
|
|
118
126
|
set.add(RuntimeGlobals.moduleCache);
|
|
119
127
|
set.add(RuntimeGlobals.hmrModuleData);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const { SyncWaterfallHook } = require("tapable");
|
|
8
|
-
|
|
8
|
+
/** @typedef {import("../Compilation")} Compilation */
|
|
9
9
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
10
|
const RuntimeModule = require("../RuntimeModule");
|
|
11
11
|
const Template = require("../Template");
|
|
@@ -18,44 +18,33 @@ const {
|
|
|
18
18
|
} = require("../javascript/JavascriptModulesPlugin");
|
|
19
19
|
const { getInitialChunkIds } = require("../javascript/StartupHelpers");
|
|
20
20
|
const compileBooleanMatcher = require("../util/compileBooleanMatcher");
|
|
21
|
+
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
21
22
|
const { getUndoPath } = require("../util/identifier");
|
|
22
23
|
|
|
23
24
|
/** @typedef {import("../Chunk")} Chunk */
|
|
24
25
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
25
26
|
/** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
|
|
26
27
|
|
|
28
|
+
const createCompilationHooks = () => ({
|
|
29
|
+
/**
|
|
30
|
+
* @type {SyncWaterfallHook<[string, Chunk]>}
|
|
31
|
+
* @since 5.41.0
|
|
32
|
+
*/
|
|
33
|
+
linkPreload: new SyncWaterfallHook(["source", "chunk"]),
|
|
34
|
+
/**
|
|
35
|
+
* @type {SyncWaterfallHook<[string, Chunk]>}
|
|
36
|
+
* @since 5.41.0
|
|
37
|
+
*/
|
|
38
|
+
linkPrefetch: new SyncWaterfallHook(["source", "chunk"])
|
|
39
|
+
});
|
|
40
|
+
|
|
27
41
|
/**
|
|
28
|
-
* @typedef {
|
|
29
|
-
* @property {SyncWaterfallHook<[string, Chunk]>} linkPreload
|
|
30
|
-
* @property {SyncWaterfallHook<[string, Chunk]>} linkPrefetch
|
|
42
|
+
* @typedef {ReturnType<typeof createCompilationHooks>} JsonpCompilationPluginHooks
|
|
31
43
|
*/
|
|
32
44
|
|
|
33
|
-
/** @type {WeakMap<Compilation, JsonpCompilationPluginHooks>} */
|
|
34
|
-
const compilationHooksMap = new WeakMap();
|
|
35
|
-
|
|
36
45
|
class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
37
46
|
/**
|
|
38
|
-
*
|
|
39
|
-
* @returns {JsonpCompilationPluginHooks} hooks
|
|
40
|
-
*/
|
|
41
|
-
static getCompilationHooks(compilation) {
|
|
42
|
-
if (!(compilation instanceof Compilation)) {
|
|
43
|
-
throw new TypeError(
|
|
44
|
-
"The 'compilation' argument must be an instance of Compilation"
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
let hooks = compilationHooksMap.get(compilation);
|
|
48
|
-
if (hooks === undefined) {
|
|
49
|
-
hooks = {
|
|
50
|
-
linkPreload: new SyncWaterfallHook(["source", "chunk"]),
|
|
51
|
-
linkPrefetch: new SyncWaterfallHook(["source", "chunk"])
|
|
52
|
-
};
|
|
53
|
-
compilationHooksMap.set(compilation, hooks);
|
|
54
|
-
}
|
|
55
|
-
return hooks;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
47
|
+
* Creates an instance of ModuleChunkLoadingRuntimeModule.
|
|
59
48
|
* @param {ReadOnlyRuntimeRequirements} runtimeRequirements runtime requirements
|
|
60
49
|
*/
|
|
61
50
|
constructor(runtimeRequirements) {
|
|
@@ -65,6 +54,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
65
54
|
}
|
|
66
55
|
|
|
67
56
|
/**
|
|
57
|
+
* Returns generated code.
|
|
68
58
|
* @private
|
|
69
59
|
* @param {Chunk} chunk chunk
|
|
70
60
|
* @param {string} rootOutputDir root output directory
|
|
@@ -85,6 +75,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
85
75
|
}
|
|
86
76
|
|
|
87
77
|
/**
|
|
78
|
+
* Generates runtime code for this runtime module.
|
|
88
79
|
* @returns {string | null} runtime code
|
|
89
80
|
*/
|
|
90
81
|
generate() {
|
|
@@ -101,6 +92,9 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
101
92
|
const withExternalInstallChunk = this._runtimeRequirements.has(
|
|
102
93
|
RuntimeGlobals.externalInstallChunk
|
|
103
94
|
);
|
|
95
|
+
const withAnalyzableImport = this._runtimeRequirements.has(
|
|
96
|
+
RuntimeGlobals.analyzableChunkImport
|
|
97
|
+
);
|
|
104
98
|
const withLoading = this._runtimeRequirements.has(
|
|
105
99
|
RuntimeGlobals.ensureChunkHandlers
|
|
106
100
|
);
|
|
@@ -145,6 +139,13 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
145
139
|
? `${RuntimeGlobals.hmrRuntimeStatePrefix}_module`
|
|
146
140
|
: undefined;
|
|
147
141
|
|
|
142
|
+
const cst = runtimeTemplate.renderConst();
|
|
143
|
+
const lt = runtimeTemplate.renderLet();
|
|
144
|
+
const installedChunksObject = `{\n${Template.indent(
|
|
145
|
+
Array.from(initialChunkIds, (id) => `${JSON.stringify(id)}: 0`).join(
|
|
146
|
+
",\n"
|
|
147
|
+
)
|
|
148
|
+
)}\n}`;
|
|
148
149
|
return Template.asString([
|
|
149
150
|
withBaseURI
|
|
150
151
|
? this._generateBaseUri(chunk, rootOutputDir)
|
|
@@ -153,18 +154,14 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
153
154
|
"// object to store loaded and loading chunks",
|
|
154
155
|
"// undefined = chunk not loaded, null = chunk preloaded/prefetched",
|
|
155
156
|
"// [resolve, Promise] = chunk loading, 0 = chunk loaded",
|
|
156
|
-
|
|
157
|
-
stateExpression
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
",\n"
|
|
162
|
-
)
|
|
163
|
-
),
|
|
164
|
-
"};",
|
|
157
|
+
`${cst} installedChunks = ${
|
|
158
|
+
stateExpression
|
|
159
|
+
? runtimeTemplate.assignOr(stateExpression, installedChunksObject)
|
|
160
|
+
: installedChunksObject
|
|
161
|
+
};`,
|
|
165
162
|
"",
|
|
166
|
-
withLoading || withExternalInstallChunk
|
|
167
|
-
?
|
|
163
|
+
withLoading || withExternalInstallChunk || withAnalyzableImport
|
|
164
|
+
? `${cst} installChunk = ${runtimeTemplate.basicFunction("data", [
|
|
168
165
|
runtimeTemplate.destructureObject(
|
|
169
166
|
[
|
|
170
167
|
RuntimeGlobals.esmIds,
|
|
@@ -206,7 +203,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
206
203
|
hasJsMatcher !== false
|
|
207
204
|
? Template.indent([
|
|
208
205
|
"// import() chunk loading for javascript",
|
|
209
|
-
|
|
206
|
+
`${lt} installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`,
|
|
210
207
|
'if(installedChunkData !== 0) { // 0 means "already installed".',
|
|
211
208
|
Template.indent([
|
|
212
209
|
"",
|
|
@@ -222,7 +219,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
222
219
|
: `if(${hasJsMatcher("chunkId")}) {`,
|
|
223
220
|
Template.indent([
|
|
224
221
|
"// setup Promise in chunk cache",
|
|
225
|
-
|
|
222
|
+
`${lt} promise = ${importFunctionName}(${
|
|
226
223
|
compilation.outputOptions.publicPath === "auto"
|
|
227
224
|
? JSON.stringify(rootOutputDir)
|
|
228
225
|
: RuntimeGlobals.publicPath
|
|
@@ -235,7 +232,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
235
232
|
"throw e;"
|
|
236
233
|
]
|
|
237
234
|
)});`,
|
|
238
|
-
`
|
|
235
|
+
`promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction(
|
|
239
236
|
"installedChunkData = installedChunks[chunkId] = [resolve]",
|
|
240
237
|
"resolve"
|
|
241
238
|
)})])`,
|
|
@@ -258,6 +255,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
258
255
|
? `${
|
|
259
256
|
RuntimeGlobals.prefetchChunkHandlers
|
|
260
257
|
}.j = ${runtimeTemplate.basicFunction("chunkId", [
|
|
258
|
+
// prefetch is a browser-only resource hint; no-op without a DOM (e.g. node side of a universal build)
|
|
261
259
|
isNeutralPlatform
|
|
262
260
|
? "if (typeof document === 'undefined') return;"
|
|
263
261
|
: "",
|
|
@@ -270,7 +268,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
270
268
|
"installedChunks[chunkId] = null;",
|
|
271
269
|
linkPrefetch.call(
|
|
272
270
|
Template.asString([
|
|
273
|
-
|
|
271
|
+
`${cst} link = document.createElement('link');`,
|
|
274
272
|
charset ? "link.charset = 'utf-8';" : "",
|
|
275
273
|
crossOriginLoading
|
|
276
274
|
? `link.crossOrigin = ${JSON.stringify(
|
|
@@ -298,6 +296,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
298
296
|
? `${
|
|
299
297
|
RuntimeGlobals.preloadChunkHandlers
|
|
300
298
|
}.j = ${runtimeTemplate.basicFunction("chunkId", [
|
|
299
|
+
// preload is a browser-only resource hint; no-op without a DOM (e.g. node side of a universal build)
|
|
301
300
|
isNeutralPlatform
|
|
302
301
|
? "if (typeof document === 'undefined') return;"
|
|
303
302
|
: "",
|
|
@@ -310,7 +309,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
310
309
|
"installedChunks[chunkId] = null;",
|
|
311
310
|
linkPreload.call(
|
|
312
311
|
Template.asString([
|
|
313
|
-
|
|
312
|
+
`${cst} link = document.createElement('link');`,
|
|
314
313
|
charset ? "link.charset = 'utf-8';" : "",
|
|
315
314
|
`if (${RuntimeGlobals.scriptNonce}) {`,
|
|
316
315
|
Template.indent(
|
|
@@ -347,6 +346,31 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
347
346
|
])
|
|
348
347
|
: "// no external install chunk",
|
|
349
348
|
"",
|
|
349
|
+
withAnalyzableImport
|
|
350
|
+
? `${
|
|
351
|
+
RuntimeGlobals.analyzableChunkImport
|
|
352
|
+
} = ${runtimeTemplate.basicFunction("chunkId, importFn", [
|
|
353
|
+
// A literal `import()` a foreign bundler can follow, wrapped to keep
|
|
354
|
+
// `ensureChunk` timing and deduplication: resolved chunk → resolve now, in-flight →
|
|
355
|
+
// reuse its promise, else run `importFn()` and install it.
|
|
356
|
+
`${lt} installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`,
|
|
357
|
+
"if(installedChunkData === 0) return Promise.resolve();",
|
|
358
|
+
"if(installedChunkData) return installedChunkData[1];",
|
|
359
|
+
`${lt} promise = importFn().then(installChunk, ${runtimeTemplate.basicFunction(
|
|
360
|
+
"e",
|
|
361
|
+
[
|
|
362
|
+
"if(installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;",
|
|
363
|
+
"throw e;"
|
|
364
|
+
]
|
|
365
|
+
)});`,
|
|
366
|
+
`promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction(
|
|
367
|
+
"installedChunkData = installedChunks[chunkId] = [resolve]",
|
|
368
|
+
"resolve"
|
|
369
|
+
)})]);`,
|
|
370
|
+
"return (installedChunkData[1] = promise);"
|
|
371
|
+
])};`
|
|
372
|
+
: "// no analyzable chunk import",
|
|
373
|
+
"",
|
|
350
374
|
withOnChunkLoad
|
|
351
375
|
? `${
|
|
352
376
|
RuntimeGlobals.onChunksLoaded
|
|
@@ -365,30 +389,30 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
365
389
|
"resolve, reject",
|
|
366
390
|
[
|
|
367
391
|
"// start update chunk loading",
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
392
|
+
`${cst} url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkUpdateScriptFilename}(chunkId);`,
|
|
393
|
+
`${cst} onResolve = ${runtimeTemplate.basicFunction("obj", [
|
|
394
|
+
`${cst} updatedModules = obj.${RuntimeGlobals.esmModules};`,
|
|
395
|
+
`${cst} updatedRuntime = obj.${RuntimeGlobals.esmRuntime};`,
|
|
372
396
|
"if(updatedRuntime) currentUpdateRuntime.push(updatedRuntime);",
|
|
373
397
|
"for(var moduleId in updatedModules) {",
|
|
374
398
|
Template.indent([
|
|
375
399
|
`if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
|
|
376
400
|
Template.indent([
|
|
377
401
|
"currentUpdate[moduleId] = updatedModules[moduleId];",
|
|
378
|
-
"
|
|
402
|
+
`${runtimeTemplate.optionalChaining("updatedModulesList", "push(moduleId)")};`
|
|
379
403
|
]),
|
|
380
404
|
"}"
|
|
381
405
|
]),
|
|
382
406
|
"}",
|
|
383
407
|
"resolve(obj);"
|
|
384
408
|
])};`,
|
|
385
|
-
|
|
386
|
-
|
|
409
|
+
`${cst} onReject = ${runtimeTemplate.basicFunction("error", [
|
|
410
|
+
`${cst} errorMsg = error.message || 'unknown reason';`,
|
|
387
411
|
"error.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorMsg + ')';",
|
|
388
412
|
"error.name = 'ChunkLoadError';",
|
|
389
413
|
"reject(error);"
|
|
390
414
|
])}`,
|
|
391
|
-
|
|
415
|
+
`${cst} loadScript = ${runtimeTemplate.basicFunction(
|
|
392
416
|
"url, onResolve, onReject",
|
|
393
417
|
[
|
|
394
418
|
`return ${importFunctionName}(/* webpackIgnore: true */ url).then(onResolve).catch(onReject)`
|
|
@@ -423,4 +447,8 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
423
447
|
}
|
|
424
448
|
}
|
|
425
449
|
|
|
450
|
+
ModuleChunkLoadingRuntimeModule.getCompilationHooks = createHooksRegistry(
|
|
451
|
+
createCompilationHooks
|
|
452
|
+
);
|
|
453
|
+
|
|
426
454
|
module.exports = ModuleChunkLoadingRuntimeModule;
|