@depup/webpack 5.109.0-depup.0 → 5.110.1-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/bin/webpack.js +12 -0
- package/changes.json +10 -10
- 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 +43 -32
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +15 -16
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +38 -7
- package/lib/Compilation.js +709 -414
- package/lib/Compiler.js +69 -42
- package/lib/ConcatenationScope.js +117 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +168 -57
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +50 -13
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +123 -19
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +242 -84
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +116 -42
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +63 -57
- 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 +28 -36
- 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 +22 -6
- 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 +221 -156
- package/lib/NormalModuleFactory.js +563 -112
- 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 +346 -256
- package/lib/RuntimeTemplate.js +2792 -352
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +55 -25
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +2 -2
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +289 -28
- 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 +282 -81
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +36 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +53 -66
- package/lib/container/ModuleFederationPlugin.js +7 -18
- 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 +178 -44
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +82 -36
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +197 -106
- package/lib/css/CssParser.js +1248 -618
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5324 -0
- package/lib/css/syntax.js +10396 -952
- 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 +140 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +140 -26
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -48
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +156 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +15 -11
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +159 -71
- 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 +28 -20
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
- package/lib/dependencies/HarmonyImportGuard.js +21 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +106 -55
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +37 -29
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +2 -2
- package/lib/dependencies/ImportDependency.js +24 -20
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +49 -35
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +51 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
- package/lib/dependencies/WorkerDependency.js +28 -22
- package/lib/dependencies/WorkletDependency.js +15 -14
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +170 -71
- 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 +28 -10
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +299 -79
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +312 -174
- 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 +7819 -3331
- 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 +31 -18
- 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 +181 -162
- package/lib/javascript/JavascriptParser.js +291 -112
- 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 +3403 -300
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +14 -1
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +81 -20
- package/lib/node/ReadFileCompileWasmPlugin.js +37 -17
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +21 -17
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +996 -477
- package/lib/optimize/ConstExportsPlugin.js +11 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +9 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +124 -59
- package/lib/optimize/RealContentHashPlugin.js +20 -13
- 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 +232 -68
- 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 +377 -136
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +24 -15
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +274 -942
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +305 -66
- 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 +253 -226
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +60 -192
- package/lib/stats/StatsFactory.js +56 -35
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +12 -14
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1050 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +5 -1
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +25 -1
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +6 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
- package/lib/web/FetchCompileWasmPlugin.js +46 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +37 -30
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +780 -91
- 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 +4013 -738
- 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
|
/**
|
|
@@ -884,9 +924,15 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
884
924
|
"runtime"
|
|
885
925
|
]),
|
|
886
926
|
|
|
887
|
-
/**
|
|
927
|
+
/**
|
|
928
|
+
* @type {SyncHook<[ExecuteModuleArgument, ExecuteModuleContext]>}
|
|
929
|
+
* @since 5.32.0
|
|
930
|
+
*/
|
|
888
931
|
executeModule: new SyncHook(["options", "context"]),
|
|
889
|
-
/**
|
|
932
|
+
/**
|
|
933
|
+
* @type {AsyncParallelHook<[ExecuteModuleArgument, ExecuteModuleContext]>}
|
|
934
|
+
* @since 5.33.0
|
|
935
|
+
*/
|
|
890
936
|
prepareModuleExecution: new AsyncParallelHook(["options", "context"]),
|
|
891
937
|
|
|
892
938
|
/** @type {AsyncSeriesHook<[Iterable<Module>]>} */
|
|
@@ -1090,7 +1136,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1090
1136
|
|
|
1091
1137
|
processAssets: processAssetsHook,
|
|
1092
1138
|
afterProcessAssets: afterProcessAssetsHook,
|
|
1093
|
-
/**
|
|
1139
|
+
/**
|
|
1140
|
+
* @type {AsyncSeriesHook<[CompilationAssets]>}
|
|
1141
|
+
* @since 5.8.0
|
|
1142
|
+
*/
|
|
1094
1143
|
processAdditionalAssets: new AsyncSeriesHook(["assets"]),
|
|
1095
1144
|
|
|
1096
1145
|
/** @type {SyncBailHook<[], boolean | void>} */
|
|
@@ -1101,6 +1150,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1101
1150
|
/** @type {SyncWaterfallHook<[RenderManifestEntry[], RenderManifestOptions]>} */
|
|
1102
1151
|
renderManifest: new SyncWaterfallHook(["result", "options"]),
|
|
1103
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
|
+
|
|
1104
1174
|
/** @type {SyncHook<[Hash]>} */
|
|
1105
1175
|
fullHash: new SyncHook(["hash"]),
|
|
1106
1176
|
/** @type {SyncHook<[Chunk, Hash, ChunkHashContext]>} */
|
|
@@ -1231,6 +1301,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1231
1301
|
);
|
|
1232
1302
|
/** @type {CodeGenerationResults | undefined} */
|
|
1233
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;
|
|
1234
1325
|
|
|
1235
1326
|
/** @type {AsyncQueue<Module, Module, Module>} */
|
|
1236
1327
|
this.processDependenciesQueue = new AsyncQueue({
|
|
@@ -1323,6 +1414,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1323
1414
|
this.errors = [];
|
|
1324
1415
|
/** @type {Error[]} */
|
|
1325
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 = [];
|
|
1326
1421
|
/** @type {Compilation[]} */
|
|
1327
1422
|
this.children = [];
|
|
1328
1423
|
/** @type {Map<string, LogEntry[]>} */
|
|
@@ -1387,6 +1482,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1387
1482
|
this._assetsCache = this.getCache("Compilation/assets");
|
|
1388
1483
|
/** @type {CacheFacade} */
|
|
1389
1484
|
this._codeGenerationCache = this.getCache("Compilation/codeGeneration");
|
|
1485
|
+
/** @type {PendingRuntimeModule[] | undefined} */
|
|
1486
|
+
this._pendingRuntimeModules = undefined;
|
|
1390
1487
|
|
|
1391
1488
|
const unsafeCache = options.module.unsafeCache;
|
|
1392
1489
|
/** @type {boolean} */
|
|
@@ -1629,7 +1726,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1629
1726
|
}
|
|
1630
1727
|
|
|
1631
1728
|
this._modulesCache.get(identifier, null, (err, cacheModule) => {
|
|
1632
|
-
if (err) return callback(new
|
|
1729
|
+
if (err) return callback(new (getModuleRestoreError())(module, err));
|
|
1633
1730
|
|
|
1634
1731
|
if (currentProfile !== undefined) {
|
|
1635
1732
|
currentProfile.markRestoringEnd();
|
|
@@ -1745,7 +1842,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
1745
1842
|
module,
|
|
1746
1843
|
/** @type {WebpackError} */ (err)
|
|
1747
1844
|
);
|
|
1748
|
-
return callback(new
|
|
1845
|
+
return callback(new (getModuleStoreError())(module, err));
|
|
1749
1846
|
}
|
|
1750
1847
|
this.hooks.succeedModule.call(module);
|
|
1751
1848
|
return callback();
|
|
@@ -2249,7 +2346,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2249
2346
|
}
|
|
2250
2347
|
}
|
|
2251
2348
|
if (err) {
|
|
2252
|
-
const notFoundError = new
|
|
2349
|
+
const notFoundError = new (getModuleNotFoundError())(
|
|
2253
2350
|
originModule,
|
|
2254
2351
|
err,
|
|
2255
2352
|
/** @type {DependencyLocation} */
|
|
@@ -2508,7 +2605,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
2508
2605
|
if (blockReasons !== undefined) {
|
|
2509
2606
|
for (const m of blockReasons) {
|
|
2510
2607
|
if (m === module) {
|
|
2511
|
-
return callback(new
|
|
2608
|
+
return callback(new (getBuildCycleError())(module));
|
|
2512
2609
|
}
|
|
2513
2610
|
set.add(m);
|
|
2514
2611
|
}
|
|
@@ -3504,6 +3601,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
|
|
|
3504
3601
|
this.addModuleQueue.clear();
|
|
3505
3602
|
// lazy barrel only acts during make; release its bookkeeping now
|
|
3506
3603
|
this._lazyBarrelController.clear();
|
|
3604
|
+
// unsafe-cache restore tables are only read during make; release them
|
|
3605
|
+
// so they stop pinning restored modules for the rest of the compilation
|
|
3606
|
+
this._restoredUnsafeCacheModuleEntries.clear();
|
|
3607
|
+
this._restoredUnsafeCacheEntries.clear();
|
|
3507
3608
|
return callback(err);
|
|
3508
3609
|
};
|
|
3509
3610
|
|
|
@@ -3775,100 +3876,105 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3775
3876
|
this.logger.time("runtime requirements");
|
|
3776
3877
|
this.hooks.beforeRuntimeRequirements.call();
|
|
3777
3878
|
this.processRuntimeRequirements();
|
|
3778
|
-
this.
|
|
3779
|
-
this.logger.timeEnd("runtime requirements");
|
|
3780
|
-
|
|
3781
|
-
this.logger.time("hashing");
|
|
3782
|
-
this.hooks.beforeHash.call();
|
|
3783
|
-
const codeGenerationJobs = this.createHash();
|
|
3784
|
-
this.hooks.afterHash.call();
|
|
3785
|
-
this.logger.timeEnd("hashing");
|
|
3786
|
-
|
|
3787
|
-
this._runCodeGenerationJobs(codeGenerationJobs, (err) => {
|
|
3879
|
+
this._attachPendingRuntimeModules((err) => {
|
|
3788
3880
|
if (err) {
|
|
3789
3881
|
return finalCallback(err);
|
|
3790
3882
|
}
|
|
3883
|
+
this.hooks.afterRuntimeRequirements.call();
|
|
3884
|
+
this.logger.timeEnd("runtime requirements");
|
|
3791
3885
|
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
);
|
|
3798
|
-
this.logger.timeEnd("record hash");
|
|
3799
|
-
}
|
|
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");
|
|
3800
3891
|
|
|
3801
|
-
this.
|
|
3802
|
-
|
|
3892
|
+
this._runCodeGenerationJobs(codeGenerationJobs, (err) => {
|
|
3893
|
+
if (err) {
|
|
3894
|
+
return finalCallback(err);
|
|
3895
|
+
}
|
|
3803
3896
|
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
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
|
+
}
|
|
3807
3905
|
|
|
3808
|
-
|
|
3809
|
-
this.
|
|
3810
|
-
this.hooks.processAssets.callAsync(this.assets, (err) => {
|
|
3811
|
-
if (err) {
|
|
3812
|
-
return finalCallback(
|
|
3813
|
-
makeWebpackError(err, "Compilation.hooks.processAssets")
|
|
3814
|
-
);
|
|
3815
|
-
}
|
|
3816
|
-
this.hooks.afterProcessAssets.call(this.assets);
|
|
3817
|
-
this.logger.timeEnd("process assets");
|
|
3818
|
-
this.assets =
|
|
3819
|
-
/** @type {CompilationAssets} */
|
|
3820
|
-
(
|
|
3821
|
-
this._backCompat
|
|
3822
|
-
? soonFrozenObjectDeprecation(
|
|
3823
|
-
this.assets,
|
|
3824
|
-
"Compilation.assets",
|
|
3825
|
-
"DEP_WEBPACK_COMPILATION_ASSETS",
|
|
3826
|
-
`BREAKING CHANGE: No more changes should happen to Compilation.assets after sealing the Compilation.
|
|
3827
|
-
Do changes to assets earlier, e. g. in Compilation.hooks.processAssets.
|
|
3828
|
-
Make sure to select an appropriate stage from Compilation.PROCESS_ASSETS_STAGE_*.`
|
|
3829
|
-
)
|
|
3830
|
-
: Object.freeze(this.assets)
|
|
3831
|
-
);
|
|
3906
|
+
this.logger.time("module assets");
|
|
3907
|
+
this.clearAssets();
|
|
3832
3908
|
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
this,
|
|
3837
|
-
/** @type {Records} */
|
|
3838
|
-
(this.records)
|
|
3839
|
-
);
|
|
3840
|
-
}
|
|
3909
|
+
this.hooks.beforeModuleAssets.call();
|
|
3910
|
+
this.createModuleAssets();
|
|
3911
|
+
this.logger.timeEnd("module assets");
|
|
3841
3912
|
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
}
|
|
3846
|
-
return this.hooks.afterSeal.callAsync((err) => {
|
|
3913
|
+
const cont = () => {
|
|
3914
|
+
this.logger.time("process assets");
|
|
3915
|
+
this.hooks.processAssets.callAsync(this.assets, (err) => {
|
|
3847
3916
|
if (err) {
|
|
3848
3917
|
return finalCallback(
|
|
3849
|
-
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)
|
|
3850
3944
|
);
|
|
3851
3945
|
}
|
|
3852
|
-
|
|
3853
|
-
|
|
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
|
+
});
|
|
3854
3960
|
});
|
|
3855
|
-
}
|
|
3856
|
-
};
|
|
3961
|
+
};
|
|
3857
3962
|
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
|
|
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 {
|
|
3862
3974
|
this.logger.timeEnd("create chunk assets");
|
|
3863
|
-
if (err) {
|
|
3864
|
-
return finalCallback(err);
|
|
3865
|
-
}
|
|
3866
3975
|
cont();
|
|
3867
|
-
}
|
|
3868
|
-
}
|
|
3869
|
-
this.logger.timeEnd("create chunk assets");
|
|
3870
|
-
cont();
|
|
3871
|
-
}
|
|
3976
|
+
}
|
|
3977
|
+
});
|
|
3872
3978
|
});
|
|
3873
3979
|
});
|
|
3874
3980
|
}
|
|
@@ -3894,7 +4000,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3894
4000
|
// A consolidated dependency (e.g. CssIcssExportDependency) carries
|
|
3895
4001
|
// per-item locations on the error itself; fall back to the
|
|
3896
4002
|
// dependency loc for the usual one-loc-per-dependency case.
|
|
3897
|
-
const warning = new
|
|
4003
|
+
const warning = new (getModuleDependencyWarning())(
|
|
3898
4004
|
module,
|
|
3899
4005
|
w,
|
|
3900
4006
|
/** @type {EXPECTED_ANY} */ (w).loc || d.loc
|
|
@@ -3906,7 +4012,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3906
4012
|
const errors = d.getErrors(this.moduleGraph);
|
|
3907
4013
|
if (errors) {
|
|
3908
4014
|
for (const e of errors) {
|
|
3909
|
-
const error = new
|
|
4015
|
+
const error = new (getModuleDependencyError())(
|
|
3910
4016
|
module,
|
|
3911
4017
|
e,
|
|
3912
4018
|
/** @type {EXPECTED_ANY} */ (e).loc || d.loc
|
|
@@ -3962,6 +4068,120 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3962
4068
|
this._runCodeGenerationJobs(jobs, callback);
|
|
3963
4069
|
}
|
|
3964
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}${info.hostType}${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
|
+
|
|
3965
4185
|
/**
|
|
3966
4186
|
* Run code generation jobs.
|
|
3967
4187
|
* @private
|
|
@@ -3973,6 +4193,10 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
3973
4193
|
if (jobs.length === 0) {
|
|
3974
4194
|
return callback();
|
|
3975
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;
|
|
3976
4200
|
let statModulesFromCache = 0;
|
|
3977
4201
|
let statModulesGenerated = 0;
|
|
3978
4202
|
const { chunkGraph, moduleGraph, dependencyTemplates, runtimeTemplate } =
|
|
@@ -4065,7 +4289,11 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4065
4289
|
(statModulesGenerated + statModulesFromCache)
|
|
4066
4290
|
)}% code generated (${statModulesGenerated} generated, ${statModulesFromCache} from cache)`
|
|
4067
4291
|
);
|
|
4068
|
-
|
|
4292
|
+
this._resolveEmbeddedSources(allJobs || jobs, (err) => {
|
|
4293
|
+
this._embeddedSources.clear();
|
|
4294
|
+
this._pendingEmbeddedSources.clear();
|
|
4295
|
+
callback(err);
|
|
4296
|
+
});
|
|
4069
4297
|
}
|
|
4070
4298
|
);
|
|
4071
4299
|
};
|
|
@@ -4109,6 +4337,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4109
4337
|
try {
|
|
4110
4338
|
codeGenerated = true;
|
|
4111
4339
|
this.codeGeneratedModules.add(module);
|
|
4340
|
+
this._generatingModule = module;
|
|
4112
4341
|
result = module.codeGeneration({
|
|
4113
4342
|
chunkGraph,
|
|
4114
4343
|
moduleGraph,
|
|
@@ -4121,13 +4350,15 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4121
4350
|
});
|
|
4122
4351
|
} catch (err) {
|
|
4123
4352
|
errors.push(
|
|
4124
|
-
new
|
|
4353
|
+
new (getCodeGenerationError())(module, /** @type {Error} */ (err))
|
|
4125
4354
|
);
|
|
4126
4355
|
result = {
|
|
4127
4356
|
sources: new Map(),
|
|
4128
4357
|
runtimeRequirements: null,
|
|
4129
4358
|
data: undefined
|
|
4130
4359
|
};
|
|
4360
|
+
} finally {
|
|
4361
|
+
this._generatingModule = undefined;
|
|
4131
4362
|
}
|
|
4132
4363
|
for (const runtime of runtimes) {
|
|
4133
4364
|
results.add(module, runtime, result);
|
|
@@ -4150,6 +4381,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4150
4381
|
try {
|
|
4151
4382
|
codeGenerated = true;
|
|
4152
4383
|
this.codeGeneratedModules.add(module);
|
|
4384
|
+
this._generatingModule = module;
|
|
4153
4385
|
result = module.codeGeneration({
|
|
4154
4386
|
chunkGraph,
|
|
4155
4387
|
moduleGraph,
|
|
@@ -4162,13 +4394,15 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4162
4394
|
});
|
|
4163
4395
|
} catch (err) {
|
|
4164
4396
|
errors.push(
|
|
4165
|
-
new
|
|
4397
|
+
new (getCodeGenerationError())(module, /** @type {Error} */ (err))
|
|
4166
4398
|
);
|
|
4167
4399
|
result = cachedResult = {
|
|
4168
4400
|
sources: new Map(),
|
|
4169
4401
|
runtimeRequirements: null,
|
|
4170
4402
|
data: undefined
|
|
4171
4403
|
};
|
|
4404
|
+
} finally {
|
|
4405
|
+
this._generatingModule = undefined;
|
|
4172
4406
|
}
|
|
4173
4407
|
} else {
|
|
4174
4408
|
result = cachedResult;
|
|
@@ -4343,6 +4577,46 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4343
4577
|
this.logger.timeEnd("runtime requirements.entries");
|
|
4344
4578
|
}
|
|
4345
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
|
+
|
|
4346
4620
|
// TODO webpack 6 make chunkGraph argument non-optional
|
|
4347
4621
|
/**
|
|
4348
4622
|
* Adds runtime module.
|
|
@@ -4723,6 +4997,8 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4723
4997
|
|
|
4724
4998
|
this.errors.sort(compareErrors);
|
|
4725
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.
|
|
4726
5002
|
this.children.sort(byNameOrHash);
|
|
4727
5003
|
}
|
|
4728
5004
|
|
|
@@ -4754,10 +5030,13 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4754
5030
|
for (const module of this.modules) {
|
|
4755
5031
|
const memCache = moduleMemCaches2 && moduleMemCaches2.get(module);
|
|
4756
5032
|
for (const runtime of chunkGraph.getModuleRuntimes(module)) {
|
|
5033
|
+
const cacheKey = memCache
|
|
5034
|
+
? `moduleHash-${getRuntimeKey(runtime)}`
|
|
5035
|
+
: undefined;
|
|
4757
5036
|
if (memCache) {
|
|
4758
5037
|
const digest =
|
|
4759
5038
|
/** @type {string} */
|
|
4760
|
-
(memCache.get(
|
|
5039
|
+
(memCache.get(/** @type {string} */ (cacheKey)));
|
|
4761
5040
|
if (digest !== undefined) {
|
|
4762
5041
|
chunkGraph.setModuleHashes(
|
|
4763
5042
|
module,
|
|
@@ -4781,7 +5060,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4781
5060
|
errors
|
|
4782
5061
|
);
|
|
4783
5062
|
if (memCache) {
|
|
4784
|
-
memCache.set(
|
|
5063
|
+
memCache.set(/** @type {string} */ (cacheKey), digest);
|
|
4785
5064
|
}
|
|
4786
5065
|
}
|
|
4787
5066
|
}
|
|
@@ -4836,7 +5115,9 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
|
|
|
4836
5115
|
});
|
|
4837
5116
|
moduleHashDigest = moduleHash.digest(hashDigest);
|
|
4838
5117
|
} catch (err) {
|
|
4839
|
-
errors.push(
|
|
5118
|
+
errors.push(
|
|
5119
|
+
new (getModuleHashingError())(module, /** @type {Error} */ (err))
|
|
5120
|
+
);
|
|
4840
5121
|
moduleHashDigest = "XXXXXX";
|
|
4841
5122
|
}
|
|
4842
5123
|
chunkGraph.setModuleHashes(
|
|
@@ -5087,7 +5368,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5087
5368
|
}
|
|
5088
5369
|
} catch (err) {
|
|
5089
5370
|
this.errors.push(
|
|
5090
|
-
new
|
|
5371
|
+
new (getChunkRenderError())(chunk, "", /** @type {Error} */ (err))
|
|
5091
5372
|
);
|
|
5092
5373
|
}
|
|
5093
5374
|
this.logger.timeAggregate("hashing: hash chunks");
|
|
@@ -5603,7 +5884,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5603
5884
|
});
|
|
5604
5885
|
} catch (err) {
|
|
5605
5886
|
this.errors.push(
|
|
5606
|
-
new
|
|
5887
|
+
new (getChunkRenderError())(chunk, "", /** @type {Error} */ (err))
|
|
5607
5888
|
);
|
|
5608
5889
|
return callback();
|
|
5609
5890
|
}
|
|
@@ -5641,7 +5922,9 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5641
5922
|
? filenameTemplate
|
|
5642
5923
|
: "");
|
|
5643
5924
|
|
|
5644
|
-
this.errors.push(
|
|
5925
|
+
this.errors.push(
|
|
5926
|
+
new (getChunkRenderError())(chunk, filename, err)
|
|
5927
|
+
);
|
|
5645
5928
|
inTry = false;
|
|
5646
5929
|
return callback();
|
|
5647
5930
|
};
|
|
@@ -5867,6 +6150,7 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5867
6150
|
this.moduleGraph,
|
|
5868
6151
|
this.outputOptions.hashFunction
|
|
5869
6152
|
);
|
|
6153
|
+
chunkGraph.buildTimeExecution = true;
|
|
5870
6154
|
const runtime = "build time";
|
|
5871
6155
|
const { hashFunction, hashDigest, hashDigestLength } =
|
|
5872
6156
|
this.outputOptions;
|
|
@@ -5976,265 +6260,276 @@ This prevents using hashes of each other and should be avoided.`);
|
|
|
5976
6260
|
codeGenerationResults,
|
|
5977
6261
|
chunkGraphEntries: chunks
|
|
5978
6262
|
});
|
|
6263
|
+
// restored before the deferred attach so no concurrent `make`
|
|
6264
|
+
// task observes the build-time graph
|
|
5979
6265
|
this.chunkGraph = old;
|
|
6266
|
+
this._attachPendingRuntimeModules((err) => {
|
|
6267
|
+
if (err) return callback(err);
|
|
5980
6268
|
|
|
5981
|
-
|
|
5982
|
-
|
|
6269
|
+
const runtimeModules =
|
|
6270
|
+
chunkGraph.getChunkRuntimeModulesIterable(chunk);
|
|
5983
6271
|
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5990
|
-
|
|
5991
|
-
|
|
5992
|
-
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
// Generate code for all runtime modules
|
|
6000
|
-
asyncLib.eachLimit(
|
|
6001
|
-
/** @type {import("neo-async").IterableCollection<RuntimeModule>} */ (
|
|
6002
|
-
runtimeModules
|
|
6003
|
-
),
|
|
6004
|
-
10,
|
|
6005
|
-
codeGen,
|
|
6006
|
-
(err) => {
|
|
6007
|
-
if (err) return callback(err);
|
|
6008
|
-
reportErrors();
|
|
6009
|
-
|
|
6010
|
-
/** @type {Map<Module, ExecuteModuleArgument>} */
|
|
6011
|
-
const moduleArgumentsMap = new Map();
|
|
6012
|
-
/** @type {Map<string, ExecuteModuleArgument>} */
|
|
6013
|
-
const moduleArgumentsById = new Map();
|
|
6014
|
-
|
|
6015
|
-
/** @type {ExecuteModuleResult["fileDependencies"]} */
|
|
6016
|
-
const fileDependencies = new LazySet();
|
|
6017
|
-
/** @type {ExecuteModuleResult["contextDependencies"]} */
|
|
6018
|
-
const contextDependencies = new LazySet();
|
|
6019
|
-
/** @type {ExecuteModuleResult["missingDependencies"]} */
|
|
6020
|
-
const missingDependencies = new LazySet();
|
|
6021
|
-
/** @type {ExecuteModuleResult["buildDependencies"]} */
|
|
6022
|
-
const buildDependencies = new LazySet();
|
|
6023
|
-
|
|
6024
|
-
/** @type {ExecuteModuleResult["assets"]} */
|
|
6025
|
-
const assets = new Map();
|
|
6026
|
-
|
|
6027
|
-
let cacheable = true;
|
|
6028
|
-
/** @type {ExecuteModuleResult["notCacheableReasons"]} */
|
|
6029
|
-
const notCacheableReasons = [];
|
|
6030
|
-
|
|
6031
|
-
/** @type {ExecuteModuleContext} */
|
|
6032
|
-
const context = {
|
|
6033
|
-
assets,
|
|
6034
|
-
__webpack_require__: undefined,
|
|
6035
|
-
chunk,
|
|
6036
|
-
chunkGraph
|
|
6037
|
-
};
|
|
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
|
+
}
|
|
6038
6286
|
|
|
6039
|
-
|
|
6040
|
-
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
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
|
+
}
|
|
6074
6363
|
}
|
|
6075
6364
|
}
|
|
6076
6365
|
}
|
|
6077
|
-
|
|
6078
|
-
|
|
6079
|
-
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
6083
|
-
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
|
|
6087
|
-
});
|
|
6088
|
-
}
|
|
6089
|
-
}
|
|
6090
|
-
this.hooks.prepareModuleExecution.callAsync(
|
|
6091
|
-
moduleArgument,
|
|
6092
|
-
context,
|
|
6093
|
-
callback
|
|
6094
|
-
);
|
|
6095
|
-
},
|
|
6096
|
-
(err) => {
|
|
6097
|
-
if (err) return callback(/** @type {WebpackError} */ (err));
|
|
6098
|
-
|
|
6099
|
-
/** @type {ExecuteModuleExports | undefined} */
|
|
6100
|
-
let exports;
|
|
6101
|
-
try {
|
|
6102
|
-
const {
|
|
6103
|
-
strictModuleErrorHandling,
|
|
6104
|
-
strictModuleExceptionHandling
|
|
6105
|
-
} = this.outputOptions;
|
|
6106
|
-
|
|
6107
|
-
/** @type {WebpackRequire} */
|
|
6108
|
-
const __webpack_require__ = (id) => {
|
|
6109
|
-
const cached = moduleCache[id];
|
|
6110
|
-
if (cached !== undefined) {
|
|
6111
|
-
if (cached.error) throw cached.error;
|
|
6112
|
-
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
|
+
});
|
|
6113
6376
|
}
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
6123
|
-
(
|
|
6124
|
-
|
|
6125
|
-
|
|
6126
|
-
|
|
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
|
+
)
|
|
6127
6418
|
)
|
|
6128
|
-
|
|
6129
|
-
|
|
6130
|
-
|
|
6131
|
-
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6419
|
+
] =
|
|
6420
|
+
/** @type {NonNullable<WebpackRequire["i"]>} */ ([]));
|
|
6421
|
+
const moduleCache = (__webpack_require__[
|
|
6422
|
+
/** @type {"c"} */ (
|
|
6423
|
+
RuntimeGlobals.moduleCache.replace(
|
|
6424
|
+
`${RuntimeGlobals.require}.`,
|
|
6425
|
+
""
|
|
6426
|
+
)
|
|
6135
6427
|
)
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6150
|
-
|
|
6151
|
-
|
|
6152
|
-
|
|
6153
|
-
id,
|
|
6154
|
-
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 = {
|
|
6155
6445
|
id,
|
|
6156
|
-
|
|
6157
|
-
|
|
6158
|
-
|
|
6159
|
-
|
|
6160
|
-
|
|
6161
|
-
|
|
6162
|
-
|
|
6163
|
-
|
|
6164
|
-
|
|
6165
|
-
|
|
6166
|
-
this.buildTimeExecutedModules.add(module);
|
|
6167
|
-
const moduleObject = execOptions.module;
|
|
6168
|
-
moduleArgument.moduleObject = moduleObject;
|
|
6169
|
-
try {
|
|
6170
|
-
if (id) moduleCache[id] = moduleObject;
|
|
6171
|
-
|
|
6172
|
-
tryRunOrWebpackError(
|
|
6173
|
-
() =>
|
|
6174
|
-
this.hooks.executeModule.call(
|
|
6175
|
-
moduleArgument,
|
|
6176
|
-
context
|
|
6177
|
-
),
|
|
6178
|
-
"Compilation.hooks.executeModule"
|
|
6179
|
-
);
|
|
6180
|
-
moduleObject.loaded = true;
|
|
6181
|
-
return moduleObject.exports;
|
|
6182
|
-
} catch (execErr) {
|
|
6183
|
-
if (strictModuleExceptionHandling) {
|
|
6184
|
-
if (id) delete moduleCache[id];
|
|
6185
|
-
} else if (strictModuleErrorHandling) {
|
|
6186
|
-
moduleObject.error =
|
|
6187
|
-
/** @type {WebpackError} */
|
|
6188
|
-
(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);
|
|
6189
6456
|
}
|
|
6190
|
-
|
|
6191
|
-
|
|
6192
|
-
|
|
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;
|
|
6193
6489
|
}
|
|
6194
|
-
|
|
6490
|
+
};
|
|
6491
|
+
|
|
6492
|
+
for (const runtimeModule of chunkGraph.getChunkRuntimeModulesInOrder(
|
|
6493
|
+
chunk
|
|
6494
|
+
)) {
|
|
6495
|
+
__webpack_require_module__(
|
|
6496
|
+
/** @type {ExecuteModuleArgument} */
|
|
6497
|
+
(moduleArgumentsMap.get(runtimeModule))
|
|
6498
|
+
);
|
|
6195
6499
|
}
|
|
6196
|
-
};
|
|
6197
6500
|
|
|
6198
|
-
|
|
6199
|
-
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
|
|
6203
|
-
|
|
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 }
|
|
6204
6512
|
);
|
|
6513
|
+
err.stack = stack;
|
|
6514
|
+
err.module = module;
|
|
6515
|
+
return callback(err);
|
|
6205
6516
|
}
|
|
6206
6517
|
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
{ cause: execErr }
|
|
6218
|
-
);
|
|
6219
|
-
err.stack = stack;
|
|
6220
|
-
err.module = module;
|
|
6221
|
-
return callback(err);
|
|
6518
|
+
callback(null, {
|
|
6519
|
+
exports,
|
|
6520
|
+
assets,
|
|
6521
|
+
cacheable,
|
|
6522
|
+
notCacheableReasons,
|
|
6523
|
+
fileDependencies,
|
|
6524
|
+
contextDependencies,
|
|
6525
|
+
missingDependencies,
|
|
6526
|
+
buildDependencies
|
|
6527
|
+
});
|
|
6222
6528
|
}
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
cacheable,
|
|
6228
|
-
notCacheableReasons,
|
|
6229
|
-
fileDependencies,
|
|
6230
|
-
contextDependencies,
|
|
6231
|
-
missingDependencies,
|
|
6232
|
-
buildDependencies
|
|
6233
|
-
});
|
|
6234
|
-
}
|
|
6235
|
-
);
|
|
6236
|
-
}
|
|
6237
|
-
);
|
|
6529
|
+
);
|
|
6530
|
+
}
|
|
6531
|
+
);
|
|
6532
|
+
});
|
|
6238
6533
|
}
|
|
6239
6534
|
);
|
|
6240
6535
|
}
|