@depup/webpack 5.106.1-depup.0 → 5.109.0-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/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 +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- 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 +498 -127
- 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 +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- 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 +15 -0
- 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 +5 -2
- 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 +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- 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 +104 -26
- 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 +29 -3
- 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 +43 -7
- 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 +591 -41
- 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/ModuleFederationPlugin.js +12 -26
- 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 +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3443 -1953
- package/lib/css/syntax.js +4058 -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 +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -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 +32 -2
- 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 +253 -37
- 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 +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- 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 +71 -49
- 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 +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -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 +25 -2
- 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 +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -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 +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- 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 +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- 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 +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- 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 +54 -6
- 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 +663 -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 +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- 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 +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- 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 +97 -6
- 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 +1117 -79
- 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 +8608 -1159
- 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,6 +18,7 @@ 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 */
|
|
@@ -25,37 +26,15 @@ const { getUndoPath } = require("../util/identifier");
|
|
|
25
26
|
/** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
|
|
26
27
|
|
|
27
28
|
/**
|
|
29
|
+
* Defines the jsonp compilation plugin hooks type used by this module.
|
|
28
30
|
* @typedef {object} JsonpCompilationPluginHooks
|
|
29
31
|
* @property {SyncWaterfallHook<[string, Chunk]>} linkPreload
|
|
30
32
|
* @property {SyncWaterfallHook<[string, Chunk]>} linkPrefetch
|
|
31
33
|
*/
|
|
32
34
|
|
|
33
|
-
/** @type {WeakMap<Compilation, JsonpCompilationPluginHooks>} */
|
|
34
|
-
const compilationHooksMap = new WeakMap();
|
|
35
|
-
|
|
36
35
|
class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
37
36
|
/**
|
|
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
|
-
/**
|
|
37
|
+
* Creates an instance of ModuleChunkLoadingRuntimeModule.
|
|
59
38
|
* @param {ReadOnlyRuntimeRequirements} runtimeRequirements runtime requirements
|
|
60
39
|
*/
|
|
61
40
|
constructor(runtimeRequirements) {
|
|
@@ -65,6 +44,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
65
44
|
}
|
|
66
45
|
|
|
67
46
|
/**
|
|
47
|
+
* Returns generated code.
|
|
68
48
|
* @private
|
|
69
49
|
* @param {Chunk} chunk chunk
|
|
70
50
|
* @param {string} rootOutputDir root output directory
|
|
@@ -85,6 +65,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
85
65
|
}
|
|
86
66
|
|
|
87
67
|
/**
|
|
68
|
+
* Generates runtime code for this runtime module.
|
|
88
69
|
* @returns {string | null} runtime code
|
|
89
70
|
*/
|
|
90
71
|
generate() {
|
|
@@ -101,6 +82,9 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
101
82
|
const withExternalInstallChunk = this._runtimeRequirements.has(
|
|
102
83
|
RuntimeGlobals.externalInstallChunk
|
|
103
84
|
);
|
|
85
|
+
const withAnalyzableImport = this._runtimeRequirements.has(
|
|
86
|
+
RuntimeGlobals.analyzableChunkImport
|
|
87
|
+
);
|
|
104
88
|
const withLoading = this._runtimeRequirements.has(
|
|
105
89
|
RuntimeGlobals.ensureChunkHandlers
|
|
106
90
|
);
|
|
@@ -145,6 +129,13 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
145
129
|
? `${RuntimeGlobals.hmrRuntimeStatePrefix}_module`
|
|
146
130
|
: undefined;
|
|
147
131
|
|
|
132
|
+
const cst = runtimeTemplate.renderConst();
|
|
133
|
+
const lt = runtimeTemplate.renderLet();
|
|
134
|
+
const installedChunksObject = `{\n${Template.indent(
|
|
135
|
+
Array.from(initialChunkIds, (id) => `${JSON.stringify(id)}: 0`).join(
|
|
136
|
+
",\n"
|
|
137
|
+
)
|
|
138
|
+
)}\n}`;
|
|
148
139
|
return Template.asString([
|
|
149
140
|
withBaseURI
|
|
150
141
|
? this._generateBaseUri(chunk, rootOutputDir)
|
|
@@ -153,18 +144,14 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
153
144
|
"// object to store loaded and loading chunks",
|
|
154
145
|
"// undefined = chunk not loaded, null = chunk preloaded/prefetched",
|
|
155
146
|
"// [resolve, Promise] = chunk loading, 0 = chunk loaded",
|
|
156
|
-
|
|
157
|
-
stateExpression
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
",\n"
|
|
162
|
-
)
|
|
163
|
-
),
|
|
164
|
-
"};",
|
|
147
|
+
`${cst} installedChunks = ${
|
|
148
|
+
stateExpression
|
|
149
|
+
? runtimeTemplate.assignOr(stateExpression, installedChunksObject)
|
|
150
|
+
: installedChunksObject
|
|
151
|
+
};`,
|
|
165
152
|
"",
|
|
166
|
-
withLoading || withExternalInstallChunk
|
|
167
|
-
?
|
|
153
|
+
withLoading || withExternalInstallChunk || withAnalyzableImport
|
|
154
|
+
? `${cst} installChunk = ${runtimeTemplate.basicFunction("data", [
|
|
168
155
|
runtimeTemplate.destructureObject(
|
|
169
156
|
[
|
|
170
157
|
RuntimeGlobals.esmIds,
|
|
@@ -206,7 +193,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
206
193
|
hasJsMatcher !== false
|
|
207
194
|
? Template.indent([
|
|
208
195
|
"// import() chunk loading for javascript",
|
|
209
|
-
|
|
196
|
+
`${lt} installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`,
|
|
210
197
|
'if(installedChunkData !== 0) { // 0 means "already installed".',
|
|
211
198
|
Template.indent([
|
|
212
199
|
"",
|
|
@@ -222,7 +209,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
222
209
|
: `if(${hasJsMatcher("chunkId")}) {`,
|
|
223
210
|
Template.indent([
|
|
224
211
|
"// setup Promise in chunk cache",
|
|
225
|
-
|
|
212
|
+
`${lt} promise = ${importFunctionName}(${
|
|
226
213
|
compilation.outputOptions.publicPath === "auto"
|
|
227
214
|
? JSON.stringify(rootOutputDir)
|
|
228
215
|
: RuntimeGlobals.publicPath
|
|
@@ -235,7 +222,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
235
222
|
"throw e;"
|
|
236
223
|
]
|
|
237
224
|
)});`,
|
|
238
|
-
`
|
|
225
|
+
`promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction(
|
|
239
226
|
"installedChunkData = installedChunks[chunkId] = [resolve]",
|
|
240
227
|
"resolve"
|
|
241
228
|
)})])`,
|
|
@@ -258,6 +245,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
258
245
|
? `${
|
|
259
246
|
RuntimeGlobals.prefetchChunkHandlers
|
|
260
247
|
}.j = ${runtimeTemplate.basicFunction("chunkId", [
|
|
248
|
+
// prefetch is a browser-only resource hint; no-op without a DOM (e.g. node side of a universal build)
|
|
261
249
|
isNeutralPlatform
|
|
262
250
|
? "if (typeof document === 'undefined') return;"
|
|
263
251
|
: "",
|
|
@@ -270,7 +258,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
270
258
|
"installedChunks[chunkId] = null;",
|
|
271
259
|
linkPrefetch.call(
|
|
272
260
|
Template.asString([
|
|
273
|
-
|
|
261
|
+
`${cst} link = document.createElement('link');`,
|
|
274
262
|
charset ? "link.charset = 'utf-8';" : "",
|
|
275
263
|
crossOriginLoading
|
|
276
264
|
? `link.crossOrigin = ${JSON.stringify(
|
|
@@ -298,6 +286,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
298
286
|
? `${
|
|
299
287
|
RuntimeGlobals.preloadChunkHandlers
|
|
300
288
|
}.j = ${runtimeTemplate.basicFunction("chunkId", [
|
|
289
|
+
// preload is a browser-only resource hint; no-op without a DOM (e.g. node side of a universal build)
|
|
301
290
|
isNeutralPlatform
|
|
302
291
|
? "if (typeof document === 'undefined') return;"
|
|
303
292
|
: "",
|
|
@@ -310,7 +299,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
310
299
|
"installedChunks[chunkId] = null;",
|
|
311
300
|
linkPreload.call(
|
|
312
301
|
Template.asString([
|
|
313
|
-
|
|
302
|
+
`${cst} link = document.createElement('link');`,
|
|
314
303
|
charset ? "link.charset = 'utf-8';" : "",
|
|
315
304
|
`if (${RuntimeGlobals.scriptNonce}) {`,
|
|
316
305
|
Template.indent(
|
|
@@ -347,6 +336,31 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
347
336
|
])
|
|
348
337
|
: "// no external install chunk",
|
|
349
338
|
"",
|
|
339
|
+
withAnalyzableImport
|
|
340
|
+
? `${
|
|
341
|
+
RuntimeGlobals.analyzableChunkImport
|
|
342
|
+
} = ${runtimeTemplate.basicFunction("chunkId, importFn", [
|
|
343
|
+
// A literal `import()` a foreign bundler can follow, wrapped to keep
|
|
344
|
+
// `ensureChunk` timing and deduplication: resolved chunk → resolve now, in-flight →
|
|
345
|
+
// reuse its promise, else run `importFn()` and install it.
|
|
346
|
+
`${lt} installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`,
|
|
347
|
+
"if(installedChunkData === 0) return Promise.resolve();",
|
|
348
|
+
"if(installedChunkData) return installedChunkData[1];",
|
|
349
|
+
`${lt} promise = importFn().then(installChunk, ${runtimeTemplate.basicFunction(
|
|
350
|
+
"e",
|
|
351
|
+
[
|
|
352
|
+
"if(installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;",
|
|
353
|
+
"throw e;"
|
|
354
|
+
]
|
|
355
|
+
)});`,
|
|
356
|
+
`promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction(
|
|
357
|
+
"installedChunkData = installedChunks[chunkId] = [resolve]",
|
|
358
|
+
"resolve"
|
|
359
|
+
)})]);`,
|
|
360
|
+
"return (installedChunkData[1] = promise);"
|
|
361
|
+
])};`
|
|
362
|
+
: "// no analyzable chunk import",
|
|
363
|
+
"",
|
|
350
364
|
withOnChunkLoad
|
|
351
365
|
? `${
|
|
352
366
|
RuntimeGlobals.onChunksLoaded
|
|
@@ -365,30 +379,30 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
365
379
|
"resolve, reject",
|
|
366
380
|
[
|
|
367
381
|
"// start update chunk loading",
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
382
|
+
`${cst} url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkUpdateScriptFilename}(chunkId);`,
|
|
383
|
+
`${cst} onResolve = ${runtimeTemplate.basicFunction("obj", [
|
|
384
|
+
`${cst} updatedModules = obj.${RuntimeGlobals.esmModules};`,
|
|
385
|
+
`${cst} updatedRuntime = obj.${RuntimeGlobals.esmRuntime};`,
|
|
372
386
|
"if(updatedRuntime) currentUpdateRuntime.push(updatedRuntime);",
|
|
373
387
|
"for(var moduleId in updatedModules) {",
|
|
374
388
|
Template.indent([
|
|
375
389
|
`if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`,
|
|
376
390
|
Template.indent([
|
|
377
391
|
"currentUpdate[moduleId] = updatedModules[moduleId];",
|
|
378
|
-
"
|
|
392
|
+
`${runtimeTemplate.optionalChaining("updatedModulesList", "push(moduleId)")};`
|
|
379
393
|
]),
|
|
380
394
|
"}"
|
|
381
395
|
]),
|
|
382
396
|
"}",
|
|
383
397
|
"resolve(obj);"
|
|
384
398
|
])};`,
|
|
385
|
-
|
|
386
|
-
|
|
399
|
+
`${cst} onReject = ${runtimeTemplate.basicFunction("error", [
|
|
400
|
+
`${cst} errorMsg = error.message || 'unknown reason';`,
|
|
387
401
|
"error.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorMsg + ')';",
|
|
388
402
|
"error.name = 'ChunkLoadError';",
|
|
389
403
|
"reject(error);"
|
|
390
404
|
])}`,
|
|
391
|
-
|
|
405
|
+
`${cst} loadScript = ${runtimeTemplate.basicFunction(
|
|
392
406
|
"url, onResolve, onReject",
|
|
393
407
|
[
|
|
394
408
|
`return ${importFunctionName}(/* webpackIgnore: true */ url).then(onResolve).catch(onReject)`
|
|
@@ -423,4 +437,12 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
423
437
|
}
|
|
424
438
|
}
|
|
425
439
|
|
|
440
|
+
ModuleChunkLoadingRuntimeModule.getCompilationHooks = createHooksRegistry(
|
|
441
|
+
() =>
|
|
442
|
+
/** @type {JsonpCompilationPluginHooks} */ ({
|
|
443
|
+
linkPreload: new SyncWaterfallHook(["source", "chunk"]),
|
|
444
|
+
linkPrefetch: new SyncWaterfallHook(["source", "chunk"])
|
|
445
|
+
})
|
|
446
|
+
);
|
|
447
|
+
|
|
426
448
|
module.exports = ModuleChunkLoadingRuntimeModule;
|