@depup/webpack 5.109.2-depup.0 → 5.110.3-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +46 -35
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +107 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +91 -26
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +111 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +40 -49
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +152 -103
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +12 -6
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5334 -0
- package/lib/css/syntax.js +9647 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +170 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +24 -11
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +49 -31
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +73 -49
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +50 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DotenvFileError.js +29 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/ImportedBindingAssignmentError.js +30 -0
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +366 -200
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +6034 -1384
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +103 -123
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +47 -6
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +65 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +121 -41
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -79
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +6 -2
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +34 -7
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +46 -20
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +22 -9
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +8 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/removeBOM.js +82 -1
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +29 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +667 -34
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3223 -465
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/lib/Compilation.js
CHANGED
|
@@ -11,6 +11,7 @@ const {
|
|
|
11
11
|
AsyncParallelHook,
|
|
12
12
|
AsyncSeriesBailHook,
|
|
13
13
|
AsyncSeriesHook,
|
|
14
|
+
AsyncSeriesWaterfallHook,
|
|
14
15
|
HookMap,
|
|
15
16
|
SyncBailHook,
|
|
16
17
|
SyncHook,
|
|
@@ -39,19 +40,10 @@ const RuntimeGlobals = require("./RuntimeGlobals");
|
|
|
39
40
|
const RuntimeTemplate = require("./RuntimeTemplate");
|
|
40
41
|
const Stats = require("./Stats");
|
|
41
42
|
const buildChunkGraph = require("./buildChunkGraph");
|
|
42
|
-
const BuildCycleError = require("./errors/BuildCycleError");
|
|
43
|
-
const ChunkRenderError = require("./errors/ChunkRenderError");
|
|
44
|
-
const CodeGenerationError = require("./errors/CodeGenerationError");
|
|
45
43
|
const {
|
|
46
44
|
makeWebpackError,
|
|
47
45
|
tryRunOrWebpackError
|
|
48
46
|
} = require("./errors/HookWebpackError");
|
|
49
|
-
const ModuleDependencyError = require("./errors/ModuleDependencyError");
|
|
50
|
-
const ModuleDependencyWarning = require("./errors/ModuleDependencyWarning");
|
|
51
|
-
const ModuleHashingError = require("./errors/ModuleHashingError");
|
|
52
|
-
const ModuleNotFoundError = require("./errors/ModuleNotFoundError");
|
|
53
|
-
const ModuleRestoreError = require("./errors/ModuleRestoreError");
|
|
54
|
-
const ModuleStoreError = require("./errors/ModuleStoreError");
|
|
55
47
|
const WebpackError = require("./errors/WebpackError");
|
|
56
48
|
const { LogType, Logger } = require("./logging/Logger");
|
|
57
49
|
const StatsFactory = require("./stats/StatsFactory");
|
|
@@ -63,11 +55,10 @@ const { getOrInsert } = require("./util/MapHelpers");
|
|
|
63
55
|
const WeakTupleMap = require("./util/WeakTupleMap");
|
|
64
56
|
const { cachedCleverMerge } = require("./util/cleverMerge");
|
|
65
57
|
const {
|
|
58
|
+
compareErrors,
|
|
66
59
|
compareIds,
|
|
67
|
-
compareLocations,
|
|
68
60
|
compareModulesByIdentifier,
|
|
69
61
|
compareSelect,
|
|
70
|
-
compareStringsNumeric,
|
|
71
62
|
concatComparators
|
|
72
63
|
} = require("./util/comparators");
|
|
73
64
|
const createHash = require("./util/createHash");
|
|
@@ -76,62 +67,124 @@ const {
|
|
|
76
67
|
createFakeHook,
|
|
77
68
|
soonFrozenObjectDeprecation
|
|
78
69
|
} = require("./util/deprecation");
|
|
70
|
+
const memoize = require("./util/memoize");
|
|
79
71
|
const processAsyncTree = require("./util/processAsyncTree");
|
|
80
72
|
const { getRuntimeKey } = require("./util/runtime");
|
|
81
73
|
const { isSourceEqual } = require("./util/source");
|
|
82
74
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
75
|
+
const getModuleStoreError = memoize(() => require("./errors/ModuleStoreError"));
|
|
76
|
+
|
|
77
|
+
const getModuleRestoreError = memoize(() =>
|
|
78
|
+
require("./errors/ModuleRestoreError")
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
const getModuleNotFoundError = memoize(() =>
|
|
82
|
+
require("./errors/ModuleNotFoundError")
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const getModuleHashingError = memoize(() =>
|
|
86
|
+
require("./errors/ModuleHashingError")
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
const getModuleDependencyWarning = memoize(() =>
|
|
90
|
+
require("./errors/ModuleDependencyWarning")
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
const getModuleDependencyError = memoize(() =>
|
|
94
|
+
require("./errors/ModuleDependencyError")
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const getCodeGenerationError = memoize(() =>
|
|
98
|
+
require("./errors/CodeGenerationError")
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const getChunkRenderError = memoize(() => require("./errors/ChunkRenderError"));
|
|
102
|
+
|
|
103
|
+
const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
|
|
104
|
+
|
|
105
|
+
/** @import { Source } from "webpack-sources" */
|
|
106
|
+
/**
|
|
107
|
+
* @import {
|
|
108
|
+
* OutputNormalized as OutputOptions,
|
|
109
|
+
* HashFunction,
|
|
110
|
+
* HashDigest,
|
|
111
|
+
* HashDigestLength,
|
|
112
|
+
* StatsOptions,
|
|
113
|
+
* Plugins,
|
|
114
|
+
* ResolveOptions
|
|
115
|
+
* } from "../declarations/WebpackOptions"
|
|
116
|
+
*/
|
|
117
|
+
/**
|
|
118
|
+
* @import {
|
|
119
|
+
* WebpackOptionsNormalizedWithDefaults as WebpackOptions,
|
|
120
|
+
* OutputNormalizedWithDefaults as OutputOptionsWithDefaults
|
|
121
|
+
* } from "./config/defaults"
|
|
122
|
+
*/
|
|
123
|
+
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
124
|
+
/** @import Cache from "./Cache" */
|
|
125
|
+
/** @import CacheFacade from "./CacheFacade" */
|
|
126
|
+
/** @import { ChunkName, ChunkId } from "./Chunk" */
|
|
127
|
+
/** @import { ChunkGroupOptions } from "./ChunkGroup" */
|
|
128
|
+
/**
|
|
129
|
+
* @import Compiler, {
|
|
130
|
+
* CompilationParams,
|
|
131
|
+
* MemCache,
|
|
132
|
+
* WeakReferences,
|
|
133
|
+
* ModuleMemCachesItem,
|
|
134
|
+
* Records
|
|
135
|
+
* } from "./Compiler"
|
|
136
|
+
*/
|
|
137
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
138
|
+
/** @import { DependencyLocation, ReferencedExports } from "./Dependency" */
|
|
107
139
|
/** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
|
|
108
|
-
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
/** @
|
|
140
|
+
/**
|
|
141
|
+
* @import {
|
|
142
|
+
* NameForCondition,
|
|
143
|
+
* BuildInfo,
|
|
144
|
+
* ValueCacheVersions,
|
|
145
|
+
* RuntimeRequirements,
|
|
146
|
+
* SourceTypes,
|
|
147
|
+
* SourceType,
|
|
148
|
+
* FactoryMeta,
|
|
149
|
+
* CodeGenerationResult
|
|
150
|
+
* } from "./Module"
|
|
151
|
+
*/
|
|
152
|
+
/**
|
|
153
|
+
* @import NormalModule, {
|
|
154
|
+
* NormalModuleCompilationHooks,
|
|
155
|
+
* AnyLoaderContext,
|
|
156
|
+
* ParserOptions,
|
|
157
|
+
* GeneratorOptions
|
|
158
|
+
* } from "./NormalModule"
|
|
159
|
+
*/
|
|
160
|
+
/**
|
|
161
|
+
* @import ModuleFactory, {
|
|
162
|
+
* ModuleFactoryCreateDataContextInfo,
|
|
163
|
+
* ModuleFactoryResult
|
|
164
|
+
* } from "./ModuleFactory"
|
|
165
|
+
*/
|
|
166
|
+
/** @import { ModuleId } from "./ChunkGraph" */
|
|
167
|
+
/** @import ModuleGraphConnection from "./ModuleGraphConnection" */
|
|
168
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
169
|
+
/** @import RuntimeModule from "./RuntimeModule" */
|
|
170
|
+
/** @import { RenderManifestEntry, RenderManifestOptions } from "./Template" */
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* One language's source embedded in another's output.
|
|
174
|
+
* @typedef {object} EmbeddedSourceInfo
|
|
175
|
+
* @property {SourceType} type the embedded source's type, e.g. `"css"` / `"html"`
|
|
176
|
+
* @property {SourceType} hostType the type of the source it is embedded in, e.g. `"javascript"`
|
|
177
|
+
* @property {Module} module the module being generated
|
|
178
|
+
* @property {string=} as which of that language's productions this is, where more than one can be embedded — a `style=""` holds `"block-contents"`, an inline `<style>` a whole `"stylesheet"`. Absent where the language has only one
|
|
179
|
+
*/
|
|
180
|
+
/**
|
|
181
|
+
* @import {
|
|
182
|
+
* StatsAsset,
|
|
183
|
+
* StatsError,
|
|
184
|
+
* StatsModule
|
|
185
|
+
* } from "./stats/DefaultStatsFactoryPlugin"
|
|
186
|
+
*/
|
|
187
|
+
/** @import Hash from "./util/Hash" */
|
|
135
188
|
|
|
136
189
|
/**
|
|
137
190
|
* Defines the shared type used by this module.
|
|
@@ -144,8 +197,8 @@ const { isSourceEqual } = require("./util/source");
|
|
|
144
197
|
* @template T
|
|
145
198
|
* @typedef {import("./util/deprecation").FakeHook<T>} FakeHook<T>
|
|
146
199
|
*/
|
|
147
|
-
/** @
|
|
148
|
-
/** @
|
|
200
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
201
|
+
/** @import { InputFileSystem } from "./util/fs" */
|
|
149
202
|
|
|
150
203
|
/**
|
|
151
204
|
* Defines the callback callback.
|
|
@@ -276,7 +329,7 @@ const { isSourceEqual } = require("./util/source");
|
|
|
276
329
|
* @property {CodeGenerationResult} codeGenerationResult
|
|
277
330
|
*/
|
|
278
331
|
|
|
279
|
-
/** @typedef {((id: string) => ExecuteModuleExports) & { i?: ((options: ExecuteOptions) => void)[], c?: Record<string, ExecuteModuleObject
|
|
332
|
+
/** @typedef {((id: string) => ExecuteModuleExports) & { i?: ((options: ExecuteOptions) => void)[], c?: Record<string, ExecuteModuleObject>, p?: string }} WebpackRequire */
|
|
280
333
|
|
|
281
334
|
/**
|
|
282
335
|
* Defines the execute options type used by this module.
|
|
@@ -523,20 +576,6 @@ const byNameOrHash = concatComparators(
|
|
|
523
576
|
compareSelect((c) => c.fullHash, compareIds)
|
|
524
577
|
);
|
|
525
578
|
|
|
526
|
-
const byMessage = compareSelect(
|
|
527
|
-
(err) => `${err.message}`,
|
|
528
|
-
compareStringsNumeric
|
|
529
|
-
);
|
|
530
|
-
|
|
531
|
-
const byModule = compareSelect(
|
|
532
|
-
(err) => (err.module && err.module.identifier()) || "",
|
|
533
|
-
compareStringsNumeric
|
|
534
|
-
);
|
|
535
|
-
|
|
536
|
-
const byLocation = compareSelect((err) => err.loc, compareLocations);
|
|
537
|
-
|
|
538
|
-
const compareErrors = concatComparators(byModule, byLocation, byMessage);
|
|
539
|
-
|
|
540
579
|
/**
|
|
541
580
|
* Defines the known unsafe cache data type used by this module.
|
|
542
581
|
* @typedef {object} KnownUnsafeCacheData
|
|
@@ -594,6 +633,7 @@ const reduceAffectType = (connections) => {
|
|
|
594
633
|
|
|
595
634
|
/** @typedef {{ id: ModuleId, modules?: Map<Module, ModuleId>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes }} References */
|
|
596
635
|
/** @typedef {Map<Module, WeakTupleMap<EXPECTED_ANY[], EXPECTED_ANY>>} ModuleMemCaches */
|
|
636
|
+
/** @typedef {{ chunk: Chunk, load: () => Promise<EXPECTED_ANY>, create: (loaded: EXPECTED_ANY) => RuntimeModule, chunkGraph: ChunkGraph }} PendingRuntimeModule */
|
|
597
637
|
|
|
598
638
|
class Compilation {
|
|
599
639
|
/**
|
|
@@ -1110,6 +1150,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1110
1150
|
/** @type {SyncWaterfallHook<[RenderManifestEntry[], RenderManifestOptions]>} */
|
|
1111
1151
|
renderManifest: new SyncWaterfallHook(["result", "options"]),
|
|
1112
1152
|
|
|
1153
|
+
/**
|
|
1154
|
+
* Called with source written in one language that a module emits inside
|
|
1155
|
+
* another — CSS or HTML reaching the bundle as a JavaScript string
|
|
1156
|
+
* literal today — before it is embedded; return the (possibly
|
|
1157
|
+
* transformed) source, e.g. a minified one. `info.type` says which
|
|
1158
|
+
* language it is, so one tap serves every pair; no asset carries this
|
|
1159
|
+
* source, so an asset-level minimizer cannot reach it.
|
|
1160
|
+
* @type {AsyncSeriesWaterfallHook<[Source, EmbeddedSourceInfo]>}
|
|
1161
|
+
* @since 5.110.0
|
|
1162
|
+
*/
|
|
1163
|
+
renderEmbeddedSource: new AsyncSeriesWaterfallHook(["source", "info"]),
|
|
1164
|
+
/**
|
|
1165
|
+
* Called while hashing a module that embeds such a source. Module hashes
|
|
1166
|
+
* are taken before code generation, so a `renderEmbeddedSource` tap must
|
|
1167
|
+
* write whatever it varies on into the hash, or the codegen cache
|
|
1168
|
+
* replays output from before its options changed.
|
|
1169
|
+
* @type {SyncHook<[Module, Hash]>}
|
|
1170
|
+
* @since 5.110.0
|
|
1171
|
+
*/
|
|
1172
|
+
embeddedSourceHash: new SyncHook(["module", "hash"]),
|
|
1173
|
+
|
|
1113
1174
|
/** @type {SyncHook<[Hash]>} */
|
|
1114
1175
|
fullHash: new SyncHook(["hash"]),
|
|
1115
1176
|
/** @type {SyncHook<[Chunk, Hash, ChunkHashContext]>} */
|
|
@@ -1240,6 +1301,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1240
1301
|
);
|
|
1241
1302
|
/** @type {CodeGenerationResults | undefined} */
|
|
1242
1303
|
this.codeGenerationResults = undefined;
|
|
1304
|
+
/**
|
|
1305
|
+
* What `renderEmbeddedSource` returned, by module and by language pair and
|
|
1306
|
+
* text. Never shared between modules: a returned source may carry a map,
|
|
1307
|
+
* which names the module it came from.
|
|
1308
|
+
* @type {Map<Module, Map<string, Source>>}
|
|
1309
|
+
* @private
|
|
1310
|
+
*/
|
|
1311
|
+
this._embeddedSources = new Map();
|
|
1312
|
+
/**
|
|
1313
|
+
* Embedded source seen this pass that the hook has not been run over yet.
|
|
1314
|
+
* @type {Map<Module, Map<string, { source: Source, info: EmbeddedSourceInfo, jobModule: Module }>>}
|
|
1315
|
+
* @private
|
|
1316
|
+
*/
|
|
1317
|
+
this._pendingEmbeddedSources = new Map();
|
|
1318
|
+
/**
|
|
1319
|
+
* The module whose code generation is currently running — the outer one
|
|
1320
|
+
* when a generator runs nested, as `ConcatenatedModule` does.
|
|
1321
|
+
* @type {Module | undefined}
|
|
1322
|
+
* @private
|
|
1323
|
+
*/
|
|
1324
|
+
this._generatingModule = undefined;
|
|
1243
1325
|
|
|
1244
1326
|
/** @type {AsyncQueue<Module, Module, Module>} */
|
|
1245
1327
|
this.processDependenciesQueue = new AsyncQueue({
|
|
@@ -1332,6 +1414,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1332
1414
|
this.errors = [];
|
|
1333
1415
|
/** @type {Error[]} */
|
|
1334
1416
|
this.warnings = [];
|
|
1417
|
+
// Hints reported with `performance.hints: "stats"` — surfaced in stats
|
|
1418
|
+
// only, so they neither fail the build nor count as warnings.
|
|
1419
|
+
/** @type {Error[]} */
|
|
1420
|
+
this.hints = [];
|
|
1335
1421
|
/** @type {Compilation[]} */
|
|
1336
1422
|
this.children = [];
|
|
1337
1423
|
/** @type {Map<string, LogEntry[]>} */
|
|
@@ -1396,6 +1482,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1396
1482
|
this._assetsCache = this.getCache("Compilation/assets");
|
|
1397
1483
|
/** @type {CacheFacade} */
|
|
1398
1484
|
this._codeGenerationCache = this.getCache("Compilation/codeGeneration");
|
|
1485
|
+
/** @type {PendingRuntimeModule[] | undefined} */
|
|
1486
|
+
this._pendingRuntimeModules = undefined;
|
|
1399
1487
|
|
|
1400
1488
|
const unsafeCache = options.module.unsafeCache;
|
|
1401
1489
|
/** @type {boolean} */
|
|
@@ -1638,7 +1726,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1638
1726
|
}
|
|
1639
1727
|
|
|
1640
1728
|
this._modulesCache.get(identifier, null, (err, cacheModule) => {
|
|
1641
|
-
if (err) return callback(new
|
|
1729
|
+
if (err) return callback(new (getModuleRestoreError())(module, err));
|
|
1642
1730
|
|
|
1643
1731
|
if (currentProfile !== undefined) {
|
|
1644
1732
|
currentProfile.markRestoringEnd();
|
|
@@ -1754,7 +1842,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1754
1842
|
module,
|
|
1755
1843
|
/** @type {WebpackError} */ (err)
|
|
1756
1844
|
);
|
|
1757
|
-
return callback(new
|
|
1845
|
+
return callback(new (getModuleStoreError())(module, err));
|
|
1758
1846
|
}
|
|
1759
1847
|
this.hooks.succeedModule.call(module);
|
|
1760
1848
|
return callback();
|
|
@@ -2258,7 +2346,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2258
2346
|
}
|
|
2259
2347
|
}
|
|
2260
2348
|
if (err) {
|
|
2261
|
-
const notFoundError = new
|
|
2349
|
+
const notFoundError = new (getModuleNotFoundError())(
|
|
2262
2350
|
originModule,
|
|
2263
2351
|
err,
|
|
2264
2352
|
/** @type {DependencyLocation} */
|
|
@@ -2517,7 +2605,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2517
2605
|
if (blockReasons !== undefined) {
|
|
2518
2606
|
for (const m of blockReasons) {
|
|
2519
2607
|
if (m === module) {
|
|
2520
|
-
return callback(new
|
|
2608
|
+
return callback(new (getBuildCycleError())(module));
|
|
2521
2609
|
}
|
|
2522
2610
|
set.add(m);
|
|
2523
2611
|
}
|
|
@@ -3788,100 +3876,105 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3788
3876
|
this.logger.time("runtime requirements");
|
|
3789
3877
|
this.hooks.beforeRuntimeRequirements.call();
|
|
3790
3878
|
this.processRuntimeRequirements();
|
|
3791
|
-
this.
|
|
3792
|
-
this.logger.timeEnd("runtime requirements");
|
|
3793
|
-
|
|
3794
|
-
this.logger.time("hashing");
|
|
3795
|
-
this.hooks.beforeHash.call();
|
|
3796
|
-
const codeGenerationJobs = this.createHash();
|
|
3797
|
-
this.hooks.afterHash.call();
|
|
3798
|
-
this.logger.timeEnd("hashing");
|
|
3799
|
-
|
|
3800
|
-
this._runCodeGenerationJobs(codeGenerationJobs, (err) => {
|
|
3879
|
+
this._attachPendingRuntimeModules((err) => {
|
|
3801
3880
|
if (err) {
|
|
3802
3881
|
return finalCallback(err);
|
|
3803
3882
|
}
|
|
3883
|
+
this.hooks.afterRuntimeRequirements.call();
|
|
3884
|
+
this.logger.timeEnd("runtime requirements");
|
|
3804
3885
|
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
);
|
|
3811
|
-
this.logger.timeEnd("record hash");
|
|
3812
|
-
}
|
|
3886
|
+
this.logger.time("hashing");
|
|
3887
|
+
this.hooks.beforeHash.call();
|
|
3888
|
+
const codeGenerationJobs = this.createHash();
|
|
3889
|
+
this.hooks.afterHash.call();
|
|
3890
|
+
this.logger.timeEnd("hashing");
|
|
3813
3891
|
|
|
3814
|
-
this.
|
|
3815
|
-
|
|
3892
|
+
this._runCodeGenerationJobs(codeGenerationJobs, (err) => {
|
|
3893
|
+
if (err) {
|
|
3894
|
+
return finalCallback(err);
|
|
3895
|
+
}
|
|
3816
3896
|
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3897
|
+
if (shouldRecord) {
|
|
3898
|
+
this.logger.time("record hash");
|
|
3899
|
+
this.hooks.recordHash.call(
|
|
3900
|
+
/** @type {Records} */
|
|
3901
|
+
(this.records)
|
|
3902
|
+
);
|
|
3903
|
+
this.logger.timeEnd("record hash");
|
|
3904
|
+
}
|
|
3820
3905
|
|
|
3821
|
-
|
|
3822
|
-
this.
|
|
3823
|
-
this.hooks.processAssets.callAsync(this.assets, (err) => {
|
|
3824
|
-
if (err) {
|
|
3825
|
-
return finalCallback(
|
|
3826
|
-
makeWebpackError(err, "Compilation.hooks.processAssets")
|
|
3827
|
-
);
|
|
3828
|
-
}
|
|
3829
|
-
this.hooks.afterProcessAssets.call(this.assets);
|
|
3830
|
-
this.logger.timeEnd("process assets");
|
|
3831
|
-
this.assets =
|
|
3832
|
-
/** @type {CompilationAssets} */
|
|
3833
|
-
(
|
|
3834
|
-
this._backCompat
|
|
3835
|
-
? soonFrozenObjectDeprecation(
|
|
3836
|
-
this.assets,
|
|
3837
|
-
"Compilation.assets",
|
|
3838
|
-
"DEP_WEBPACK_COMPILATION_ASSETS",
|
|
3839
|
-
`BREAKING CHANGE: No more changes should happen to Compilation.assets after sealing the Compilation.
|
|
3840
|
-
Do changes to assets earlier, e. g. in Compilation.hooks.processAssets.
|
|
3841
|
-
Make sure to select an appropriate stage from Compilation.PROCESS_ASSETS_STAGE_*.`
|
|
3842
|
-
)
|
|
3843
|
-
: Object.freeze(this.assets)
|
|
3844
|
-
);
|
|
3906
|
+
this.logger.time("module assets");
|
|
3907
|
+
this.clearAssets();
|
|
3845
3908
|
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
this,
|
|
3850
|
-
/** @type {Records} */
|
|
3851
|
-
(this.records)
|
|
3852
|
-
);
|
|
3853
|
-
}
|
|
3909
|
+
this.hooks.beforeModuleAssets.call();
|
|
3910
|
+
this.createModuleAssets();
|
|
3911
|
+
this.logger.timeEnd("module assets");
|
|
3854
3912
|
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
}
|
|
3859
|
-
return this.hooks.afterSeal.callAsync((err) => {
|
|
3913
|
+
const cont = () => {
|
|
3914
|
+
this.logger.time("process assets");
|
|
3915
|
+
this.hooks.processAssets.callAsync(this.assets, (err) => {
|
|
3860
3916
|
if (err) {
|
|
3861
3917
|
return finalCallback(
|
|
3862
|
-
makeWebpackError(err, "Compilation.hooks.
|
|
3918
|
+
makeWebpackError(err, "Compilation.hooks.processAssets")
|
|
3919
|
+
);
|
|
3920
|
+
}
|
|
3921
|
+
this.hooks.afterProcessAssets.call(this.assets);
|
|
3922
|
+
this.logger.timeEnd("process assets");
|
|
3923
|
+
this.assets =
|
|
3924
|
+
/** @type {CompilationAssets} */
|
|
3925
|
+
(
|
|
3926
|
+
this._backCompat
|
|
3927
|
+
? soonFrozenObjectDeprecation(
|
|
3928
|
+
this.assets,
|
|
3929
|
+
"Compilation.assets",
|
|
3930
|
+
"DEP_WEBPACK_COMPILATION_ASSETS",
|
|
3931
|
+
`BREAKING CHANGE: No more changes should happen to Compilation.assets after sealing the Compilation.
|
|
3932
|
+
Do changes to assets earlier, e. g. in Compilation.hooks.processAssets.
|
|
3933
|
+
Make sure to select an appropriate stage from Compilation.PROCESS_ASSETS_STAGE_*.`
|
|
3934
|
+
)
|
|
3935
|
+
: Object.freeze(this.assets)
|
|
3936
|
+
);
|
|
3937
|
+
|
|
3938
|
+
this.summarizeDependencies();
|
|
3939
|
+
if (shouldRecord) {
|
|
3940
|
+
this.hooks.record.call(
|
|
3941
|
+
this,
|
|
3942
|
+
/** @type {Records} */
|
|
3943
|
+
(this.records)
|
|
3863
3944
|
);
|
|
3864
3945
|
}
|
|
3865
|
-
|
|
3866
|
-
|
|
3946
|
+
|
|
3947
|
+
if (this.hooks.needAdditionalSeal.call()) {
|
|
3948
|
+
this.unseal();
|
|
3949
|
+
return this.seal(callback);
|
|
3950
|
+
}
|
|
3951
|
+
return this.hooks.afterSeal.callAsync((err) => {
|
|
3952
|
+
if (err) {
|
|
3953
|
+
return finalCallback(
|
|
3954
|
+
makeWebpackError(err, "Compilation.hooks.afterSeal")
|
|
3955
|
+
);
|
|
3956
|
+
}
|
|
3957
|
+
this.fileSystemInfo.logStatistics();
|
|
3958
|
+
finalCallback();
|
|
3959
|
+
});
|
|
3867
3960
|
});
|
|
3868
|
-
}
|
|
3869
|
-
};
|
|
3961
|
+
};
|
|
3870
3962
|
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3963
|
+
this.logger.time("create chunk assets");
|
|
3964
|
+
if (this.hooks.shouldGenerateChunkAssets.call() !== false) {
|
|
3965
|
+
this.hooks.beforeChunkAssets.call();
|
|
3966
|
+
this.createChunkAssets((err) => {
|
|
3967
|
+
this.logger.timeEnd("create chunk assets");
|
|
3968
|
+
if (err) {
|
|
3969
|
+
return finalCallback(err);
|
|
3970
|
+
}
|
|
3971
|
+
cont();
|
|
3972
|
+
});
|
|
3973
|
+
} else {
|
|
3875
3974
|
this.logger.timeEnd("create chunk assets");
|
|
3876
|
-
if (err) {
|
|
3877
|
-
return finalCallback(err);
|
|
3878
|
-
}
|
|
3879
3975
|
cont();
|
|
3880
|
-
}
|
|
3881
|
-
}
|
|
3882
|
-
this.logger.timeEnd("create chunk assets");
|
|
3883
|
-
cont();
|
|
3884
|
-
}
|
|
3976
|
+
}
|
|
3977
|
+
});
|
|
3885
3978
|
});
|
|
3886
3979
|
});
|
|
3887
3980
|
}
|
|
@@ -3907,7 +4000,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3907
4000
|
// A consolidated dependency (e.g. CssIcssExportDependency) carries
|
|
3908
4001
|
// per-item locations on the error itself; fall back to the
|
|
3909
4002
|
// dependency loc for the usual one-loc-per-dependency case.
|
|
3910
|
-
const warning = new
|
|
4003
|
+
const warning = new (getModuleDependencyWarning())(
|
|
3911
4004
|
module,
|
|
3912
4005
|
w,
|
|
3913
4006
|
/** @type {EXPECTED_ANY} */ (w).loc || d.loc
|
|
@@ -3919,7 +4012,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3919
4012
|
const errors = d.getErrors(this.moduleGraph);
|
|
3920
4013
|
if (errors) {
|
|
3921
4014
|
for (const e of errors) {
|
|
3922
|
-
const error = new
|
|
4015
|
+
const error = new (getModuleDependencyError())(
|
|
3923
4016
|
module,
|
|
3924
4017
|
e,
|
|
3925
4018
|
/** @type {EXPECTED_ANY} */ (e).loc || d.loc
|
|
@@ -3975,6 +4068,120 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3975
4068
|
this._runCodeGenerationJobs(jobs, callback);
|
|
3976
4069
|
}
|
|
3977
4070
|
|
|
4071
|
+
/**
|
|
4072
|
+
* Offer source one language embeds in another to `renderEmbeddedSource`. The
|
|
4073
|
+
* hook is async and generation is not, so the first pass returns the source
|
|
4074
|
+
* untouched and records it; `_resolveEmbeddedSources` awaits the hook and
|
|
4075
|
+
* generates those modules again, when the resolved source is waiting here.
|
|
4076
|
+
* @param {Source} source the embedded source
|
|
4077
|
+
* @param {EmbeddedSourceInfo} info what it is and where it is going
|
|
4078
|
+
* @returns {Source} the resolved source, or `source` until it is resolved
|
|
4079
|
+
*/
|
|
4080
|
+
_resolveEmbeddedSource(source, info) {
|
|
4081
|
+
// Untapped, nothing can change: skip reading the text and the second pass.
|
|
4082
|
+
if (this.hooks.renderEmbeddedSource.taps.length === 0) return source;
|
|
4083
|
+
const text = /** @type {string} */ (source.source());
|
|
4084
|
+
// Everything the hook is handed is in the key: a tap answers per language
|
|
4085
|
+
// pair, so identical text offered as two of them is two questions.
|
|
4086
|
+
const key = `${info.type}\0${info.hostType}\0${text}`;
|
|
4087
|
+
const resolved = this._embeddedSources.get(info.module);
|
|
4088
|
+
if (resolved !== undefined) {
|
|
4089
|
+
const hit = resolved.get(key);
|
|
4090
|
+
if (hit !== undefined) return hit;
|
|
4091
|
+
}
|
|
4092
|
+
getOrInsert(this._pendingEmbeddedSources, info.module, () => new Map()).set(
|
|
4093
|
+
key,
|
|
4094
|
+
{ source, info, jobModule: this._generatingModule || info.module }
|
|
4095
|
+
);
|
|
4096
|
+
return source;
|
|
4097
|
+
}
|
|
4098
|
+
|
|
4099
|
+
/**
|
|
4100
|
+
* Run `renderEmbeddedSource` over everything the last pass recorded, then
|
|
4101
|
+
* generate those modules again so the resolved source is the one embedded.
|
|
4102
|
+
* @private
|
|
4103
|
+
* @param {CodeGenerationJobs} jobs the jobs the last pass ran
|
|
4104
|
+
* @param {Callback} callback callback
|
|
4105
|
+
* @returns {void}
|
|
4106
|
+
*/
|
|
4107
|
+
_resolveEmbeddedSources(jobs, callback) {
|
|
4108
|
+
if (this._pendingEmbeddedSources.size === 0) return callback();
|
|
4109
|
+
/** @type {{ key: string, source: Source, info: EmbeddedSourceInfo, jobModule: Module }[]} */
|
|
4110
|
+
const pending = [];
|
|
4111
|
+
for (const byKey of this._pendingEmbeddedSources.values()) {
|
|
4112
|
+
for (const [key, entry] of byKey) {
|
|
4113
|
+
pending.push({ key, ...entry });
|
|
4114
|
+
}
|
|
4115
|
+
}
|
|
4116
|
+
this._pendingEmbeddedSources.clear();
|
|
4117
|
+
asyncLib.each(
|
|
4118
|
+
pending,
|
|
4119
|
+
({ key, source, info }, cb) => {
|
|
4120
|
+
this.hooks.renderEmbeddedSource.callAsync(
|
|
4121
|
+
source,
|
|
4122
|
+
info,
|
|
4123
|
+
/**
|
|
4124
|
+
* @param {(Error | null)=} err error
|
|
4125
|
+
* @param {Source=} result the resolved source
|
|
4126
|
+
* @returns {void}
|
|
4127
|
+
*/
|
|
4128
|
+
(err, result) => {
|
|
4129
|
+
if (err) return cb(err);
|
|
4130
|
+
getOrInsert(
|
|
4131
|
+
this._embeddedSources,
|
|
4132
|
+
info.module,
|
|
4133
|
+
() => new Map()
|
|
4134
|
+
).set(key, result || source);
|
|
4135
|
+
cb();
|
|
4136
|
+
}
|
|
4137
|
+
);
|
|
4138
|
+
},
|
|
4139
|
+
(err) => {
|
|
4140
|
+
if (err) return callback(/** @type {WebpackError} */ (err));
|
|
4141
|
+
const affected = new Set(pending.map(({ jobModule }) => jobModule));
|
|
4142
|
+
const redo = jobs.filter(({ module }) => affected.has(module));
|
|
4143
|
+
// Generated directly rather than through the codegen cache: the module
|
|
4144
|
+
// hash is unchanged, so the cache would hand back the first pass again.
|
|
4145
|
+
const results =
|
|
4146
|
+
/** @type {CodeGenerationResults} */
|
|
4147
|
+
(this.codeGenerationResults);
|
|
4148
|
+
for (const { module, runtime, runtimes } of redo) {
|
|
4149
|
+
/** @type {CodeGenerationResult} */
|
|
4150
|
+
let result;
|
|
4151
|
+
try {
|
|
4152
|
+
this._generatingModule = module;
|
|
4153
|
+
result = module.codeGeneration({
|
|
4154
|
+
chunkGraph: this.chunkGraph,
|
|
4155
|
+
moduleGraph: this.moduleGraph,
|
|
4156
|
+
dependencyTemplates: this.dependencyTemplates,
|
|
4157
|
+
runtimeTemplate: this.runtimeTemplate,
|
|
4158
|
+
runtime,
|
|
4159
|
+
runtimes,
|
|
4160
|
+
codeGenerationResults: results,
|
|
4161
|
+
compilation: this
|
|
4162
|
+
});
|
|
4163
|
+
} catch (err) {
|
|
4164
|
+
// Reported and carried on with, as the first pass does: a throw
|
|
4165
|
+
// here would leave the build with no error to show for it.
|
|
4166
|
+
this.errors.push(
|
|
4167
|
+
new (getCodeGenerationError())(module, /** @type {Error} */ (err))
|
|
4168
|
+
);
|
|
4169
|
+
result = {
|
|
4170
|
+
sources: new Map(),
|
|
4171
|
+
runtimeRequirements: null,
|
|
4172
|
+
data: undefined
|
|
4173
|
+
};
|
|
4174
|
+
} finally {
|
|
4175
|
+
this._generatingModule = undefined;
|
|
4176
|
+
}
|
|
4177
|
+
for (const r of runtimes) results.add(module, r, result);
|
|
4178
|
+
}
|
|
4179
|
+
// A tap that changed the source again is resolved on the next round.
|
|
4180
|
+
this._resolveEmbeddedSources(redo, callback);
|
|
4181
|
+
}
|
|
4182
|
+
);
|
|
4183
|
+
}
|
|
4184
|
+
|
|
3978
4185
|
/**
|
|
3979
4186
|
* Run code generation jobs.
|
|
3980
4187
|
* @private
|
|
@@ -3986,6 +4193,10 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3986
4193
|
if (jobs.length === 0) {
|
|
3987
4194
|
return callback();
|
|
3988
4195
|
}
|
|
4196
|
+
// `jobs` is reassigned per iteration; embedded source is resolved over all.
|
|
4197
|
+
// Untapped nothing is recorded, so the array is not held past its iteration.
|
|
4198
|
+
const allJobs =
|
|
4199
|
+
this.hooks.renderEmbeddedSource.taps.length === 0 ? undefined : jobs;
|
|
3989
4200
|
let statModulesFromCache = 0;
|
|
3990
4201
|
let statModulesGenerated = 0;
|
|
3991
4202
|
const { chunkGraph, moduleGraph, dependencyTemplates, runtimeTemplate } =
|
|
@@ -4078,7 +4289,11 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4078
4289
|
(statModulesGenerated + statModulesFromCache)
|
|
4079
4290
|
)}% code generated (${statModulesGenerated} generated, ${statModulesFromCache} from cache)`
|
|
4080
4291
|
);
|
|
4081
|
-
|
|
4292
|
+
this._resolveEmbeddedSources(allJobs || jobs, (err) => {
|
|
4293
|
+
this._embeddedSources.clear();
|
|
4294
|
+
this._pendingEmbeddedSources.clear();
|
|
4295
|
+
callback(err);
|
|
4296
|
+
});
|
|
4082
4297
|
}
|
|
4083
4298
|
);
|
|
4084
4299
|
};
|
|
@@ -4122,6 +4337,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4122
4337
|
try {
|
|
4123
4338
|
codeGenerated = true;
|
|
4124
4339
|
this.codeGeneratedModules.add(module);
|
|
4340
|
+
this._generatingModule = module;
|
|
4125
4341
|
result = module.codeGeneration({
|
|
4126
4342
|
chunkGraph,
|
|
4127
4343
|
moduleGraph,
|
|
@@ -4134,13 +4350,15 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4134
4350
|
});
|
|
4135
4351
|
} catch (err) {
|
|
4136
4352
|
errors.push(
|
|
4137
|
-
new
|
|
4353
|
+
new (getCodeGenerationError())(module, /** @type {Error} */ (err))
|
|
4138
4354
|
);
|
|
4139
4355
|
result = {
|
|
4140
4356
|
sources: new Map(),
|
|
4141
4357
|
runtimeRequirements: null,
|
|
4142
4358
|
data: undefined
|
|
4143
4359
|
};
|
|
4360
|
+
} finally {
|
|
4361
|
+
this._generatingModule = undefined;
|
|
4144
4362
|
}
|
|
4145
4363
|
for (const runtime of runtimes) {
|
|
4146
4364
|
results.add(module, runtime, result);
|
|
@@ -4163,6 +4381,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4163
4381
|
try {
|
|
4164
4382
|
codeGenerated = true;
|
|
4165
4383
|
this.codeGeneratedModules.add(module);
|
|
4384
|
+
this._generatingModule = module;
|
|
4166
4385
|
result = module.codeGeneration({
|
|
4167
4386
|
chunkGraph,
|
|
4168
4387
|
moduleGraph,
|
|
@@ -4175,13 +4394,15 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4175
4394
|
});
|
|
4176
4395
|
} catch (err) {
|
|
4177
4396
|
errors.push(
|
|
4178
|
-
new
|
|
4397
|
+
new (getCodeGenerationError())(module, /** @type {Error} */ (err))
|
|
4179
4398
|
);
|
|
4180
4399
|
result = cachedResult = {
|
|
4181
4400
|
sources: new Map(),
|
|
4182
4401
|
runtimeRequirements: null,
|
|
4183
4402
|
data: undefined
|
|
4184
4403
|
};
|
|
4404
|
+
} finally {
|
|
4405
|
+
this._generatingModule = undefined;
|
|
4185
4406
|
}
|
|
4186
4407
|
} else {
|
|
4187
4408
|
result = cachedResult;
|
|
@@ -4356,6 +4577,46 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4356
4577
|
this.logger.timeEnd("runtime requirements.entries");
|
|
4357
4578
|
}
|
|
4358
4579
|
|
|
4580
|
+
/**
|
|
4581
|
+
* Queues a runtime module whose implementation is loaded on demand, for
|
|
4582
|
+
* `_attachPendingRuntimeModules` to await and build once the requirement pass
|
|
4583
|
+
* is over. `runtimeRequirementInTree` is a sync hook, so a tap cannot await
|
|
4584
|
+
* the load itself; anything the tap reads off the requirement set must be
|
|
4585
|
+
* captured before queueing, since `create` runs later.
|
|
4586
|
+
* @param {Chunk} chunk target chunk
|
|
4587
|
+
* @param {() => Promise<EXPECTED_ANY>} load resolves the runtime module implementation
|
|
4588
|
+
* @param {(loaded: EXPECTED_ANY) => RuntimeModule} create builds the runtime module from it
|
|
4589
|
+
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
4590
|
+
* @returns {void}
|
|
4591
|
+
*/
|
|
4592
|
+
addLazyRuntimeModule(chunk, load, create, chunkGraph = this.chunkGraph) {
|
|
4593
|
+
if (this._pendingRuntimeModules === undefined) {
|
|
4594
|
+
this._pendingRuntimeModules = [];
|
|
4595
|
+
}
|
|
4596
|
+
this._pendingRuntimeModules.push({ chunk, load, create, chunkGraph });
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
/**
|
|
4600
|
+
* Awaits and attaches everything `addLazyRuntimeModule` queued. The only
|
|
4601
|
+
* place a deferred runtime module implementation is loaded.
|
|
4602
|
+
* @param {Callback} callback signals when the call finishes
|
|
4603
|
+
* @returns {void}
|
|
4604
|
+
*/
|
|
4605
|
+
_attachPendingRuntimeModules(callback) {
|
|
4606
|
+
const pending = this._pendingRuntimeModules;
|
|
4607
|
+
if (pending === undefined) return callback(null);
|
|
4608
|
+
this._pendingRuntimeModules = undefined;
|
|
4609
|
+
Promise.all(pending.map(({ load }) => load()))
|
|
4610
|
+
.then((loaded) => {
|
|
4611
|
+
for (let i = 0; i < pending.length; i++) {
|
|
4612
|
+
const { chunk, create, chunkGraph } = pending[i];
|
|
4613
|
+
this.addRuntimeModule(chunk, create(loaded[i]), chunkGraph);
|
|
4614
|
+
}
|
|
4615
|
+
})
|
|
4616
|
+
// a `runtimeModule` tap may have queued more
|
|
4617
|
+
.then(() => this._attachPendingRuntimeModules(callback), callback);
|
|
4618
|
+
}
|
|
4619
|
+
|
|
4359
4620
|
// TODO webpack 6 make chunkGraph argument non-optional
|
|
4360
4621
|
/**
|
|
4361
4622
|
* Adds runtime module.
|
|
@@ -4736,6 +4997,8 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4736
4997
|
|
|
4737
4998
|
this.errors.sort(compareErrors);
|
|
4738
4999
|
this.warnings.sort(compareErrors);
|
|
5000
|
+
// `hints` is sorted where stats read it — producers tap `afterSeal` and
|
|
5001
|
+
// `afterEmit`, so they append after this point.
|
|
4739
5002
|
this.children.sort(byNameOrHash);
|
|
4740
5003
|
}
|
|
4741
5004
|
|
|
@@ -4852,7 +5115,9 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4852
5115
|
});
|
|
4853
5116
|
moduleHashDigest = moduleHash.digest(hashDigest);
|
|
4854
5117
|
} catch (err) {
|
|
4855
|
-
errors.push(
|
|
5118
|
+
errors.push(
|
|
5119
|
+
new (getModuleHashingError())(module, /** @type {Error} */ (err))
|
|
5120
|
+
);
|
|
4856
5121
|
moduleHashDigest = "XXXXXX";
|
|
4857
5122
|
}
|
|
4858
5123
|
chunkGraph.setModuleHashes(
|
|
@@ -5103,7 +5368,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5103
5368
|
}
|
|
5104
5369
|
} catch (err) {
|
|
5105
5370
|
this.errors.push(
|
|
5106
|
-
new
|
|
5371
|
+
new (getChunkRenderError())(chunk, "", /** @type {Error} */ (err))
|
|
5107
5372
|
);
|
|
5108
5373
|
}
|
|
5109
5374
|
this.logger.timeAggregate("hashing: hash chunks");
|
|
@@ -5619,7 +5884,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5619
5884
|
});
|
|
5620
5885
|
} catch (err) {
|
|
5621
5886
|
this.errors.push(
|
|
5622
|
-
new
|
|
5887
|
+
new (getChunkRenderError())(chunk, "", /** @type {Error} */ (err))
|
|
5623
5888
|
);
|
|
5624
5889
|
return callback();
|
|
5625
5890
|
}
|
|
@@ -5657,7 +5922,9 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5657
5922
|
? filenameTemplate
|
|
5658
5923
|
: "");
|
|
5659
5924
|
|
|
5660
|
-
this.errors.push(
|
|
5925
|
+
this.errors.push(
|
|
5926
|
+
new (getChunkRenderError())(chunk, filename, err)
|
|
5927
|
+
);
|
|
5661
5928
|
inTry = false;
|
|
5662
5929
|
return callback();
|
|
5663
5930
|
};
|
|
@@ -5883,6 +6150,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5883
6150
|
this.moduleGraph,
|
|
5884
6151
|
this.outputOptions.hashFunction
|
|
5885
6152
|
);
|
|
6153
|
+
chunkGraph.buildTimeExecution = true;
|
|
5886
6154
|
const runtime = "build time";
|
|
5887
6155
|
const { hashFunction, hashDigest, hashDigestLength } =
|
|
5888
6156
|
this.outputOptions;
|
|
@@ -5992,265 +6260,276 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5992
6260
|
codeGenerationResults,
|
|
5993
6261
|
chunkGraphEntries: chunks
|
|
5994
6262
|
});
|
|
6263
|
+
// restored before the deferred attach so no concurrent `make`
|
|
6264
|
+
// task observes the build-time graph
|
|
5995
6265
|
this.chunkGraph = old;
|
|
6266
|
+
this._attachPendingRuntimeModules((err) => {
|
|
6267
|
+
if (err) return callback(err);
|
|
5996
6268
|
|
|
5997
|
-
|
|
5998
|
-
|
|
6269
|
+
const runtimeModules =
|
|
6270
|
+
chunkGraph.getChunkRuntimeModulesIterable(chunk);
|
|
5999
6271
|
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
|
|
6003
|
-
|
|
6004
|
-
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
// Generate code for all runtime modules
|
|
6016
|
-
asyncLib.eachLimit(
|
|
6017
|
-
/** @type {import("neo-async").IterableCollection<RuntimeModule>} */ (
|
|
6018
|
-
runtimeModules
|
|
6019
|
-
),
|
|
6020
|
-
10,
|
|
6021
|
-
codeGen,
|
|
6022
|
-
(err) => {
|
|
6023
|
-
if (err) return callback(err);
|
|
6024
|
-
reportErrors();
|
|
6025
|
-
|
|
6026
|
-
/** @type {Map<Module, ExecuteModuleArgument>} */
|
|
6027
|
-
const moduleArgumentsMap = new Map();
|
|
6028
|
-
/** @type {Map<string, ExecuteModuleArgument>} */
|
|
6029
|
-
const moduleArgumentsById = new Map();
|
|
6030
|
-
|
|
6031
|
-
/** @type {ExecuteModuleResult["fileDependencies"]} */
|
|
6032
|
-
const fileDependencies = new LazySet();
|
|
6033
|
-
/** @type {ExecuteModuleResult["contextDependencies"]} */
|
|
6034
|
-
const contextDependencies = new LazySet();
|
|
6035
|
-
/** @type {ExecuteModuleResult["missingDependencies"]} */
|
|
6036
|
-
const missingDependencies = new LazySet();
|
|
6037
|
-
/** @type {ExecuteModuleResult["buildDependencies"]} */
|
|
6038
|
-
const buildDependencies = new LazySet();
|
|
6039
|
-
|
|
6040
|
-
/** @type {ExecuteModuleResult["assets"]} */
|
|
6041
|
-
const assets = new Map();
|
|
6042
|
-
|
|
6043
|
-
let cacheable = true;
|
|
6044
|
-
/** @type {ExecuteModuleResult["notCacheableReasons"]} */
|
|
6045
|
-
const notCacheableReasons = [];
|
|
6046
|
-
|
|
6047
|
-
/** @type {ExecuteModuleContext} */
|
|
6048
|
-
const context = {
|
|
6049
|
-
assets,
|
|
6050
|
-
__webpack_require__: undefined,
|
|
6051
|
-
chunk,
|
|
6052
|
-
chunkGraph
|
|
6053
|
-
};
|
|
6272
|
+
// Hash runtime modules
|
|
6273
|
+
for (const module of runtimeModules) {
|
|
6274
|
+
modules.add(module);
|
|
6275
|
+
this._createModuleHash(
|
|
6276
|
+
module,
|
|
6277
|
+
chunkGraph,
|
|
6278
|
+
runtime,
|
|
6279
|
+
hashFunction,
|
|
6280
|
+
runtimeTemplate,
|
|
6281
|
+
hashDigest,
|
|
6282
|
+
hashDigestLength,
|
|
6283
|
+
errors
|
|
6284
|
+
);
|
|
6285
|
+
}
|
|
6054
6286
|
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
|
|
6075
|
-
|
|
6076
|
-
|
|
6077
|
-
|
|
6078
|
-
|
|
6079
|
-
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
6083
|
-
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
|
|
6087
|
-
|
|
6088
|
-
|
|
6089
|
-
|
|
6287
|
+
// Generate code for all runtime modules
|
|
6288
|
+
asyncLib.eachLimit(
|
|
6289
|
+
/** @type {import("neo-async").IterableCollection<RuntimeModule>} */ (
|
|
6290
|
+
runtimeModules
|
|
6291
|
+
),
|
|
6292
|
+
10,
|
|
6293
|
+
codeGen,
|
|
6294
|
+
(err) => {
|
|
6295
|
+
if (err) return callback(err);
|
|
6296
|
+
reportErrors();
|
|
6297
|
+
|
|
6298
|
+
/** @type {Map<Module, ExecuteModuleArgument>} */
|
|
6299
|
+
const moduleArgumentsMap = new Map();
|
|
6300
|
+
/** @type {Map<string, ExecuteModuleArgument>} */
|
|
6301
|
+
const moduleArgumentsById = new Map();
|
|
6302
|
+
|
|
6303
|
+
/** @type {ExecuteModuleResult["fileDependencies"]} */
|
|
6304
|
+
const fileDependencies = new LazySet();
|
|
6305
|
+
/** @type {ExecuteModuleResult["contextDependencies"]} */
|
|
6306
|
+
const contextDependencies = new LazySet();
|
|
6307
|
+
/** @type {ExecuteModuleResult["missingDependencies"]} */
|
|
6308
|
+
const missingDependencies = new LazySet();
|
|
6309
|
+
/** @type {ExecuteModuleResult["buildDependencies"]} */
|
|
6310
|
+
const buildDependencies = new LazySet();
|
|
6311
|
+
|
|
6312
|
+
/** @type {ExecuteModuleResult["assets"]} */
|
|
6313
|
+
const assets = new Map();
|
|
6314
|
+
|
|
6315
|
+
let cacheable = true;
|
|
6316
|
+
/** @type {ExecuteModuleResult["notCacheableReasons"]} */
|
|
6317
|
+
const notCacheableReasons = [];
|
|
6318
|
+
|
|
6319
|
+
/** @type {ExecuteModuleContext} */
|
|
6320
|
+
const context = {
|
|
6321
|
+
assets,
|
|
6322
|
+
__webpack_require__: undefined,
|
|
6323
|
+
chunk,
|
|
6324
|
+
chunkGraph
|
|
6325
|
+
};
|
|
6326
|
+
|
|
6327
|
+
// Prepare execution
|
|
6328
|
+
asyncLib.eachLimit(
|
|
6329
|
+
modules,
|
|
6330
|
+
10,
|
|
6331
|
+
(module, callback) => {
|
|
6332
|
+
const codeGenerationResult = codeGenerationResults.get(
|
|
6333
|
+
module,
|
|
6334
|
+
runtime
|
|
6335
|
+
);
|
|
6336
|
+
/** @type {ExecuteModuleArgument} */
|
|
6337
|
+
const moduleArgument = {
|
|
6338
|
+
module,
|
|
6339
|
+
codeGenerationResult,
|
|
6340
|
+
moduleObject: undefined
|
|
6341
|
+
};
|
|
6342
|
+
moduleArgumentsMap.set(module, moduleArgument);
|
|
6343
|
+
moduleArgumentsById.set(
|
|
6344
|
+
module.identifier(),
|
|
6345
|
+
moduleArgument
|
|
6346
|
+
);
|
|
6347
|
+
module.addCacheDependencies(
|
|
6348
|
+
fileDependencies,
|
|
6349
|
+
contextDependencies,
|
|
6350
|
+
missingDependencies,
|
|
6351
|
+
buildDependencies
|
|
6352
|
+
);
|
|
6353
|
+
const buildInfo = /** @type {BuildInfo} */ (
|
|
6354
|
+
module.buildInfo
|
|
6355
|
+
);
|
|
6356
|
+
if (buildInfo.cacheable === false) {
|
|
6357
|
+
cacheable = false;
|
|
6358
|
+
if (buildInfo.notCacheableReasons) {
|
|
6359
|
+
for (const reason of buildInfo.notCacheableReasons) {
|
|
6360
|
+
if (!notCacheableReasons.includes(reason)) {
|
|
6361
|
+
notCacheableReasons.push(reason);
|
|
6362
|
+
}
|
|
6090
6363
|
}
|
|
6091
6364
|
}
|
|
6092
6365
|
}
|
|
6093
|
-
|
|
6094
|
-
|
|
6095
|
-
|
|
6096
|
-
|
|
6097
|
-
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
|
-
|
|
6101
|
-
|
|
6102
|
-
|
|
6103
|
-
});
|
|
6104
|
-
}
|
|
6105
|
-
}
|
|
6106
|
-
this.hooks.prepareModuleExecution.callAsync(
|
|
6107
|
-
moduleArgument,
|
|
6108
|
-
context,
|
|
6109
|
-
callback
|
|
6110
|
-
);
|
|
6111
|
-
},
|
|
6112
|
-
(err) => {
|
|
6113
|
-
if (err) return callback(/** @type {WebpackError} */ (err));
|
|
6114
|
-
|
|
6115
|
-
/** @type {ExecuteModuleExports | undefined} */
|
|
6116
|
-
let exports;
|
|
6117
|
-
try {
|
|
6118
|
-
const {
|
|
6119
|
-
strictModuleErrorHandling,
|
|
6120
|
-
strictModuleExceptionHandling
|
|
6121
|
-
} = this.outputOptions;
|
|
6122
|
-
|
|
6123
|
-
/** @type {WebpackRequire} */
|
|
6124
|
-
const __webpack_require__ = (id) => {
|
|
6125
|
-
const cached = moduleCache[id];
|
|
6126
|
-
if (cached !== undefined) {
|
|
6127
|
-
if (cached.error) throw cached.error;
|
|
6128
|
-
return cached.exports;
|
|
6366
|
+
if (module.buildInfo && module.buildInfo.assets) {
|
|
6367
|
+
const { assets: moduleAssets, assetsInfo } =
|
|
6368
|
+
module.buildInfo;
|
|
6369
|
+
for (const assetName of Object.keys(moduleAssets)) {
|
|
6370
|
+
assets.set(assetName, {
|
|
6371
|
+
source: moduleAssets[assetName],
|
|
6372
|
+
info: assetsInfo
|
|
6373
|
+
? assetsInfo.get(assetName)
|
|
6374
|
+
: undefined
|
|
6375
|
+
});
|
|
6129
6376
|
}
|
|
6130
|
-
|
|
6131
|
-
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
(
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6377
|
+
}
|
|
6378
|
+
this.hooks.prepareModuleExecution.callAsync(
|
|
6379
|
+
moduleArgument,
|
|
6380
|
+
context,
|
|
6381
|
+
callback
|
|
6382
|
+
);
|
|
6383
|
+
},
|
|
6384
|
+
(err) => {
|
|
6385
|
+
if (err) {
|
|
6386
|
+
return callback(/** @type {WebpackError} */ (err));
|
|
6387
|
+
}
|
|
6388
|
+
|
|
6389
|
+
/** @type {ExecuteModuleExports | undefined} */
|
|
6390
|
+
let exports;
|
|
6391
|
+
try {
|
|
6392
|
+
const {
|
|
6393
|
+
strictModuleErrorHandling,
|
|
6394
|
+
strictModuleExceptionHandling
|
|
6395
|
+
} = this.outputOptions;
|
|
6396
|
+
|
|
6397
|
+
/** @type {WebpackRequire} */
|
|
6398
|
+
const __webpack_require__ = (id) => {
|
|
6399
|
+
const cached = moduleCache[id];
|
|
6400
|
+
if (cached !== undefined) {
|
|
6401
|
+
if (cached.error) throw cached.error;
|
|
6402
|
+
return cached.exports;
|
|
6403
|
+
}
|
|
6404
|
+
const moduleArgument = moduleArgumentsById.get(id);
|
|
6405
|
+
return __webpack_require_module__(
|
|
6406
|
+
/** @type {ExecuteModuleArgument} */
|
|
6407
|
+
(moduleArgument),
|
|
6408
|
+
id
|
|
6409
|
+
);
|
|
6410
|
+
};
|
|
6411
|
+
const interceptModuleExecution = (__webpack_require__[
|
|
6412
|
+
/** @type {"i"} */
|
|
6413
|
+
(
|
|
6414
|
+
RuntimeGlobals.interceptModuleExecution.replace(
|
|
6415
|
+
`${RuntimeGlobals.require}.`,
|
|
6416
|
+
""
|
|
6417
|
+
)
|
|
6143
6418
|
)
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6150
|
-
|
|
6419
|
+
] =
|
|
6420
|
+
/** @type {NonNullable<WebpackRequire["i"]>} */ ([]));
|
|
6421
|
+
const moduleCache = (__webpack_require__[
|
|
6422
|
+
/** @type {"c"} */ (
|
|
6423
|
+
RuntimeGlobals.moduleCache.replace(
|
|
6424
|
+
`${RuntimeGlobals.require}.`,
|
|
6425
|
+
""
|
|
6426
|
+
)
|
|
6151
6427
|
)
|
|
6152
|
-
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
|
|
6156
|
-
|
|
6157
|
-
|
|
6158
|
-
|
|
6159
|
-
|
|
6160
|
-
|
|
6161
|
-
|
|
6162
|
-
|
|
6163
|
-
|
|
6164
|
-
|
|
6165
|
-
|
|
6166
|
-
|
|
6167
|
-
|
|
6168
|
-
|
|
6169
|
-
id,
|
|
6170
|
-
module: {
|
|
6428
|
+
] =
|
|
6429
|
+
/** @type {NonNullable<WebpackRequire["c"]>} */ ({}));
|
|
6430
|
+
|
|
6431
|
+
context.__webpack_require__ = __webpack_require__;
|
|
6432
|
+
|
|
6433
|
+
/**
|
|
6434
|
+
* Webpack require module.
|
|
6435
|
+
* @param {ExecuteModuleArgument} moduleArgument the module argument
|
|
6436
|
+
* @param {string=} id id
|
|
6437
|
+
* @returns {ExecuteModuleExports} exports
|
|
6438
|
+
*/
|
|
6439
|
+
const __webpack_require_module__ = (
|
|
6440
|
+
moduleArgument,
|
|
6441
|
+
id
|
|
6442
|
+
) => {
|
|
6443
|
+
/** @type {ExecuteOptions} */
|
|
6444
|
+
const execOptions = {
|
|
6171
6445
|
id,
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
|
|
6175
|
-
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
this.buildTimeExecutedModules.add(module);
|
|
6183
|
-
const moduleObject = execOptions.module;
|
|
6184
|
-
moduleArgument.moduleObject = moduleObject;
|
|
6185
|
-
try {
|
|
6186
|
-
if (id) moduleCache[id] = moduleObject;
|
|
6187
|
-
|
|
6188
|
-
tryRunOrWebpackError(
|
|
6189
|
-
() =>
|
|
6190
|
-
this.hooks.executeModule.call(
|
|
6191
|
-
moduleArgument,
|
|
6192
|
-
context
|
|
6193
|
-
),
|
|
6194
|
-
"Compilation.hooks.executeModule"
|
|
6195
|
-
);
|
|
6196
|
-
moduleObject.loaded = true;
|
|
6197
|
-
return moduleObject.exports;
|
|
6198
|
-
} catch (execErr) {
|
|
6199
|
-
if (strictModuleExceptionHandling) {
|
|
6200
|
-
if (id) delete moduleCache[id];
|
|
6201
|
-
} else if (strictModuleErrorHandling) {
|
|
6202
|
-
moduleObject.error =
|
|
6203
|
-
/** @type {WebpackError} */
|
|
6204
|
-
(execErr);
|
|
6446
|
+
module: {
|
|
6447
|
+
id,
|
|
6448
|
+
exports: {},
|
|
6449
|
+
loaded: false,
|
|
6450
|
+
error: undefined
|
|
6451
|
+
},
|
|
6452
|
+
require: __webpack_require__
|
|
6453
|
+
};
|
|
6454
|
+
for (const handler of interceptModuleExecution) {
|
|
6455
|
+
handler(execOptions);
|
|
6205
6456
|
}
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6457
|
+
const module = moduleArgument.module;
|
|
6458
|
+
this.buildTimeExecutedModules.add(module);
|
|
6459
|
+
const moduleObject = execOptions.module;
|
|
6460
|
+
moduleArgument.moduleObject = moduleObject;
|
|
6461
|
+
try {
|
|
6462
|
+
if (id) moduleCache[id] = moduleObject;
|
|
6463
|
+
|
|
6464
|
+
tryRunOrWebpackError(
|
|
6465
|
+
() =>
|
|
6466
|
+
this.hooks.executeModule.call(
|
|
6467
|
+
moduleArgument,
|
|
6468
|
+
context
|
|
6469
|
+
),
|
|
6470
|
+
"Compilation.hooks.executeModule"
|
|
6471
|
+
);
|
|
6472
|
+
moduleObject.loaded = true;
|
|
6473
|
+
return moduleObject.exports;
|
|
6474
|
+
} catch (execErr) {
|
|
6475
|
+
if (strictModuleExceptionHandling) {
|
|
6476
|
+
if (id) delete moduleCache[id];
|
|
6477
|
+
} else if (strictModuleErrorHandling) {
|
|
6478
|
+
moduleObject.error =
|
|
6479
|
+
/** @type {WebpackError} */
|
|
6480
|
+
(execErr);
|
|
6481
|
+
}
|
|
6482
|
+
if (
|
|
6483
|
+
!(/** @type {WebpackError} */ (execErr).module)
|
|
6484
|
+
) {
|
|
6485
|
+
/** @type {WebpackError} */
|
|
6486
|
+
(execErr).module = module;
|
|
6487
|
+
}
|
|
6488
|
+
throw execErr;
|
|
6209
6489
|
}
|
|
6210
|
-
|
|
6490
|
+
};
|
|
6491
|
+
|
|
6492
|
+
for (const runtimeModule of chunkGraph.getChunkRuntimeModulesInOrder(
|
|
6493
|
+
chunk
|
|
6494
|
+
)) {
|
|
6495
|
+
__webpack_require_module__(
|
|
6496
|
+
/** @type {ExecuteModuleArgument} */
|
|
6497
|
+
(moduleArgumentsMap.get(runtimeModule))
|
|
6498
|
+
);
|
|
6211
6499
|
}
|
|
6212
|
-
};
|
|
6213
6500
|
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6501
|
+
exports = __webpack_require__(module.identifier());
|
|
6502
|
+
} catch (execErr) {
|
|
6503
|
+
const { message, stack, module } =
|
|
6504
|
+
/** @type {WebpackError} */
|
|
6505
|
+
(execErr);
|
|
6506
|
+
const err = new WebpackError(
|
|
6507
|
+
`Execution of module code from module graph (${
|
|
6508
|
+
/** @type {Module} */
|
|
6509
|
+
(module).readableIdentifier(this.requestShortener)
|
|
6510
|
+
}) failed: ${message}`,
|
|
6511
|
+
{ cause: execErr }
|
|
6220
6512
|
);
|
|
6513
|
+
err.stack = stack;
|
|
6514
|
+
err.module = module;
|
|
6515
|
+
return callback(err);
|
|
6221
6516
|
}
|
|
6222
6517
|
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
{ cause: execErr }
|
|
6234
|
-
);
|
|
6235
|
-
err.stack = stack;
|
|
6236
|
-
err.module = module;
|
|
6237
|
-
return callback(err);
|
|
6518
|
+
callback(null, {
|
|
6519
|
+
exports,
|
|
6520
|
+
assets,
|
|
6521
|
+
cacheable,
|
|
6522
|
+
notCacheableReasons,
|
|
6523
|
+
fileDependencies,
|
|
6524
|
+
contextDependencies,
|
|
6525
|
+
missingDependencies,
|
|
6526
|
+
buildDependencies
|
|
6527
|
+
});
|
|
6238
6528
|
}
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
cacheable,
|
|
6244
|
-
notCacheableReasons,
|
|
6245
|
-
fileDependencies,
|
|
6246
|
-
contextDependencies,
|
|
6247
|
-
missingDependencies,
|
|
6248
|
-
buildDependencies
|
|
6249
|
-
});
|
|
6250
|
-
}
|
|
6251
|
-
);
|
|
6252
|
-
}
|
|
6253
|
-
);
|
|
6529
|
+
);
|
|
6530
|
+
}
|
|
6531
|
+
);
|
|
6532
|
+
});
|
|
6254
6533
|
}
|
|
6255
6534
|
);
|
|
6256
6535
|
}
|