@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/ModuleGraph.js
CHANGED
|
@@ -14,18 +14,21 @@ const SortableSet = require("./util/SortableSet");
|
|
|
14
14
|
const WeakTupleMap = require("./util/WeakTupleMap");
|
|
15
15
|
const { sortWithSourceOrder } = require("./util/comparators");
|
|
16
16
|
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
/** @import { ModuleMemCaches } from "./Compilation" */
|
|
18
|
+
/** @import DependenciesBlock from "./DependenciesBlock" */
|
|
19
|
+
/** @import Dependency, { ExportInfoName } from "./Dependency" */
|
|
20
|
+
/** @import { ExportInfo } from "./ExportsInfo" */
|
|
21
|
+
/** @import Module from "./Module" */
|
|
22
|
+
/** @import ModuleProfile from "./ModuleProfile" */
|
|
23
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
24
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
25
|
+
/** @import HarmonyImportSideEffectDependency from "./dependencies/HarmonyImportSideEffectDependency" */
|
|
26
|
+
/**
|
|
27
|
+
* @import HarmonyImportSpecifierDependency, {
|
|
28
|
+
* idsSymbol as HarmonyImportSpecifierDependencyIDsSymbol
|
|
29
|
+
* } from "./dependencies/HarmonyImportSpecifierDependency"
|
|
30
|
+
*/
|
|
31
|
+
/** @import { DependencySourceOrder } from "./util/comparators" */
|
|
29
32
|
|
|
30
33
|
/**
|
|
31
34
|
* Defines the optimization bailout function callback.
|
|
@@ -124,9 +127,16 @@ class ModuleGraphModule {
|
|
|
124
127
|
|
|
125
128
|
/** @typedef {EXPECTED_OBJECT} MetaKey */
|
|
126
129
|
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
/**
|
|
131
|
+
* @import {
|
|
132
|
+
* idsSymbol as CommonJsExportRequireDependencyIDsSymbol
|
|
133
|
+
* } from "./dependencies/CommonJsExportRequireDependency"
|
|
134
|
+
*/
|
|
135
|
+
/**
|
|
136
|
+
* @import {
|
|
137
|
+
* idsSymbol as HarmonyExportImportedSpecifierDependencyIDsSymbol
|
|
138
|
+
* } from "./dependencies/HarmonyExportImportedSpecifierDependency"
|
|
139
|
+
*/
|
|
130
140
|
|
|
131
141
|
/**
|
|
132
142
|
* Defines the known meta type used by this module.
|
|
@@ -171,6 +181,15 @@ class ModuleGraph {
|
|
|
171
181
|
*/
|
|
172
182
|
this._cacheStage = undefined;
|
|
173
183
|
|
|
184
|
+
// incremental rebuilds: when set, move/copyOutgoingModuleConnections record
|
|
185
|
+
// their seal-time graph mutations (concatenation) here so they can be reversed,
|
|
186
|
+
// keeping this durable graph reusable across rebuilds
|
|
187
|
+
/**
|
|
188
|
+
* @type {{ oldModule?: Module, newModule: Module, movedOut?: ModuleGraphConnection[] | undefined, movedIn?: ModuleGraphConnection[] | undefined, copied?: ModuleGraphConnection[] }[] | undefined}
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
this._mutationJournal = undefined;
|
|
192
|
+
|
|
174
193
|
/**
|
|
175
194
|
* @type {WeakMap<Dependency, DependencySourceOrder>}
|
|
176
195
|
* @private
|
|
@@ -395,6 +414,59 @@ class ModuleGraph {
|
|
|
395
414
|
this._dependencyMap.set(dependency, null);
|
|
396
415
|
}
|
|
397
416
|
|
|
417
|
+
/**
|
|
418
|
+
* Removes every outgoing connection of `module` whose dependency is in
|
|
419
|
+
* `staleDependencies`, including inactive ones left by `updateModule`
|
|
420
|
+
* re-targeting (which the dependency-keyed `removeConnection` misses). Needed
|
|
421
|
+
* when a module is rebuilt against a persisted graph so stale connections don't
|
|
422
|
+
* linger in the old target's incoming set and crash seal-time plugins.
|
|
423
|
+
* @param {Module} module the rebuilt origin module
|
|
424
|
+
* @param {Set<Dependency>} staleDependencies dependencies replaced by the rebuild
|
|
425
|
+
* @returns {void}
|
|
426
|
+
*/
|
|
427
|
+
_removeStaleOutgoingConnections(module, staleDependencies) {
|
|
428
|
+
const mgm = this._getModuleGraphModule(module);
|
|
429
|
+
const outgoing = mgm.outgoingConnections;
|
|
430
|
+
if (outgoing === undefined) return;
|
|
431
|
+
for (const connection of outgoing) {
|
|
432
|
+
if (
|
|
433
|
+
!staleDependencies.has(
|
|
434
|
+
/** @type {Dependency} */ (connection.dependency)
|
|
435
|
+
)
|
|
436
|
+
) {
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
outgoing.delete(connection);
|
|
440
|
+
if (connection.module !== null) {
|
|
441
|
+
this._getModuleGraphModule(
|
|
442
|
+
connection.module
|
|
443
|
+
).incomingConnections.delete(connection);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Assigns `module`'s pending outgoing connections into the dependency map by
|
|
450
|
+
* origin. `getConnection` normally does this lazily keyed by a dependency's
|
|
451
|
+
* PARENT module; an incremental barrel un-lazy wires a re-export target from
|
|
452
|
+
* the importer's walk, so the export dep's parent differs from its origin
|
|
453
|
+
* barrel and the lazy flush never reaches it. Flush by origin to fix that.
|
|
454
|
+
* @param {Module} module the origin module
|
|
455
|
+
* @returns {void}
|
|
456
|
+
*/
|
|
457
|
+
_flushUnassignedConnections(module) {
|
|
458
|
+
const mgm = this._getModuleGraphModule(module);
|
|
459
|
+
const pending = mgm._unassignedConnections;
|
|
460
|
+
if (pending === undefined || pending.length === 0) return;
|
|
461
|
+
for (const connection of pending) {
|
|
462
|
+
this._dependencyMap.set(
|
|
463
|
+
/** @type {Dependency} */ (connection.dependency),
|
|
464
|
+
connection
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
pending.length = 0;
|
|
468
|
+
}
|
|
469
|
+
|
|
398
470
|
/**
|
|
399
471
|
* Adds the provided dependency to the module graph.
|
|
400
472
|
* @param {Dependency} dependency the referencing dependency
|
|
@@ -437,6 +509,35 @@ class ModuleGraph {
|
|
|
437
509
|
mgm.async = false;
|
|
438
510
|
}
|
|
439
511
|
|
|
512
|
+
/**
|
|
513
|
+
* Removes a module from the graph entirely, detaching its connections. Used to
|
|
514
|
+
* drop stale runtime modules on an incremental rebuild so the persisted graph
|
|
515
|
+
* doesn't accumulate them.
|
|
516
|
+
* @param {Module} module the module to remove
|
|
517
|
+
* @returns {void}
|
|
518
|
+
*/
|
|
519
|
+
_removeModule(module) {
|
|
520
|
+
const mgm = this._moduleMap.get(module);
|
|
521
|
+
if (mgm === undefined) return;
|
|
522
|
+
if (mgm.outgoingConnections !== undefined) {
|
|
523
|
+
for (const connection of mgm.outgoingConnections) {
|
|
524
|
+
if (connection.module && connection.module !== module) {
|
|
525
|
+
const other = this._moduleMap.get(connection.module);
|
|
526
|
+
if (other !== undefined) other.incomingConnections.delete(connection);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
for (const connection of mgm.incomingConnections) {
|
|
531
|
+
if (connection.originModule && connection.originModule !== module) {
|
|
532
|
+
const other = this._moduleMap.get(connection.originModule);
|
|
533
|
+
if (other !== undefined && other.outgoingConnections !== undefined) {
|
|
534
|
+
other.outgoingConnections.delete(connection);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
this._moduleMap.delete(module);
|
|
539
|
+
}
|
|
540
|
+
|
|
440
541
|
/**
|
|
441
542
|
* Removes all module attributes.
|
|
442
543
|
* @returns {void}
|
|
@@ -461,6 +562,11 @@ class ModuleGraph {
|
|
|
461
562
|
if (oldModule === newModule) return;
|
|
462
563
|
const oldMgm = this._getModuleGraphModule(oldModule);
|
|
463
564
|
const newMgm = this._getModuleGraphModule(newModule);
|
|
565
|
+
const journal = this._mutationJournal;
|
|
566
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
567
|
+
const movedOut = journal ? [] : undefined;
|
|
568
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
569
|
+
const movedIn = journal ? [] : undefined;
|
|
464
570
|
// Outgoing connections
|
|
465
571
|
const oldConnections = oldMgm.outgoingConnections;
|
|
466
572
|
if (oldConnections !== undefined) {
|
|
@@ -473,6 +579,7 @@ class ModuleGraph {
|
|
|
473
579
|
connection.originModule = newModule;
|
|
474
580
|
newConnections.add(connection);
|
|
475
581
|
oldConnections.delete(connection);
|
|
582
|
+
if (movedOut) movedOut.push(connection);
|
|
476
583
|
}
|
|
477
584
|
}
|
|
478
585
|
}
|
|
@@ -484,8 +591,69 @@ class ModuleGraph {
|
|
|
484
591
|
connection.module = newModule;
|
|
485
592
|
newConnections2.add(connection);
|
|
486
593
|
oldConnections2.delete(connection);
|
|
594
|
+
if (movedIn) movedIn.push(connection);
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
if (journal) journal.push({ oldModule, newModule, movedOut, movedIn });
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Start recording connection moves so they can later be reversed for incremental rebuilds.
|
|
602
|
+
* @returns {void}
|
|
603
|
+
*/
|
|
604
|
+
_startMutationJournal() {
|
|
605
|
+
this._mutationJournal = [];
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Reverse all recorded connection moves, restoring the graph to its pre-seal
|
|
610
|
+
* (end-of-make) state, then stop recording (incremental rebuilds).
|
|
611
|
+
* @returns {void}
|
|
612
|
+
*/
|
|
613
|
+
_restoreFromMutationJournal() {
|
|
614
|
+
const journal = this._mutationJournal;
|
|
615
|
+
if (journal === undefined) return;
|
|
616
|
+
for (let i = journal.length - 1; i >= 0; i--) {
|
|
617
|
+
const { oldModule, newModule, movedOut, movedIn, copied } = journal[i];
|
|
618
|
+
const newMgm = this._getModuleGraphModule(newModule);
|
|
619
|
+
// copyOutgoingModuleConnections clones connections onto newModule and the
|
|
620
|
+
// external targets; undo by deleting the clones (there is no oldModule)
|
|
621
|
+
if (copied !== undefined) {
|
|
622
|
+
for (const connection of copied) {
|
|
623
|
+
if (newMgm.outgoingConnections !== undefined) {
|
|
624
|
+
newMgm.outgoingConnections.delete(connection);
|
|
625
|
+
}
|
|
626
|
+
if (connection.module !== null && connection.module !== undefined) {
|
|
627
|
+
this._getModuleGraphModule(
|
|
628
|
+
connection.module
|
|
629
|
+
).incomingConnections.delete(connection);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
continue;
|
|
633
|
+
}
|
|
634
|
+
const oldModuleT = /** @type {Module} */ (oldModule);
|
|
635
|
+
const oldMgm = this._getModuleGraphModule(oldModuleT);
|
|
636
|
+
if (movedOut !== undefined) {
|
|
637
|
+
if (oldMgm.outgoingConnections === undefined) {
|
|
638
|
+
oldMgm.outgoingConnections = new SortableSet();
|
|
639
|
+
}
|
|
640
|
+
for (const connection of movedOut) {
|
|
641
|
+
connection.originModule = oldModuleT;
|
|
642
|
+
oldMgm.outgoingConnections.add(connection);
|
|
643
|
+
if (newMgm.outgoingConnections !== undefined) {
|
|
644
|
+
newMgm.outgoingConnections.delete(connection);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
if (movedIn !== undefined) {
|
|
649
|
+
for (const connection of movedIn) {
|
|
650
|
+
connection.module = oldModuleT;
|
|
651
|
+
oldMgm.incomingConnections.add(connection);
|
|
652
|
+
newMgm.incomingConnections.delete(connection);
|
|
653
|
+
}
|
|
487
654
|
}
|
|
488
655
|
}
|
|
656
|
+
this._mutationJournal = undefined;
|
|
489
657
|
}
|
|
490
658
|
|
|
491
659
|
/**
|
|
@@ -499,6 +667,9 @@ class ModuleGraph {
|
|
|
499
667
|
if (oldModule === newModule) return;
|
|
500
668
|
const oldMgm = this._getModuleGraphModule(oldModule);
|
|
501
669
|
const newMgm = this._getModuleGraphModule(newModule);
|
|
670
|
+
const journal = this._mutationJournal;
|
|
671
|
+
/** @type {ModuleGraphConnection[] | undefined} */
|
|
672
|
+
const copied = journal ? [] : undefined;
|
|
502
673
|
// Outgoing connections
|
|
503
674
|
const oldConnections = oldMgm.outgoingConnections;
|
|
504
675
|
if (oldConnections !== undefined) {
|
|
@@ -515,9 +686,13 @@ class ModuleGraph {
|
|
|
515
686
|
const otherMgm = this._getModuleGraphModule(newConnection.module);
|
|
516
687
|
otherMgm.incomingConnections.add(newConnection);
|
|
517
688
|
}
|
|
689
|
+
if (copied) copied.push(newConnection);
|
|
518
690
|
}
|
|
519
691
|
}
|
|
520
692
|
}
|
|
693
|
+
if (journal && copied !== undefined && copied.length > 0) {
|
|
694
|
+
journal.push({ newModule, copied });
|
|
695
|
+
}
|
|
521
696
|
}
|
|
522
697
|
|
|
523
698
|
/**
|
|
@@ -752,7 +927,7 @@ class ModuleGraph {
|
|
|
752
927
|
* Returns info about the export.
|
|
753
928
|
* @param {Module} module the module
|
|
754
929
|
* @param {string} exportName the export
|
|
755
|
-
* @returns {ExportInfo} info about the export
|
|
930
|
+
* @returns {InstanceType<ExportInfo>} info about the export
|
|
756
931
|
*/
|
|
757
932
|
getExportInfo(module, exportName) {
|
|
758
933
|
const mgm = this._getModuleGraphModule(module);
|
|
@@ -763,7 +938,7 @@ class ModuleGraph {
|
|
|
763
938
|
* Gets read only export info.
|
|
764
939
|
* @param {Module} module the module
|
|
765
940
|
* @param {string} exportName the export
|
|
766
|
-
* @returns {ExportInfo} info about the export (do not modify)
|
|
941
|
+
* @returns {InstanceType<ExportInfo>} info about the export (do not modify)
|
|
767
942
|
*/
|
|
768
943
|
getReadOnlyExportInfo(module, exportName) {
|
|
769
944
|
const mgm = this._getModuleGraphModule(module);
|
|
@@ -1044,9 +1219,7 @@ class ModuleGraph {
|
|
|
1044
1219
|
const moduleGraph = moduleGraphForModuleMap.get(module);
|
|
1045
1220
|
if (!moduleGraph) {
|
|
1046
1221
|
throw new Error(
|
|
1047
|
-
`${
|
|
1048
|
-
deprecateMessage
|
|
1049
|
-
}There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)`
|
|
1222
|
+
`${deprecateMessage}There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)`
|
|
1050
1223
|
);
|
|
1051
1224
|
}
|
|
1052
1225
|
return moduleGraph;
|
|
@@ -1090,5 +1263,6 @@ const moduleGraphForModuleMap = new WeakMap();
|
|
|
1090
1263
|
/** @type {Map<string, (module: Module) => ModuleGraph>} */
|
|
1091
1264
|
const deprecateMap = new Map();
|
|
1092
1265
|
|
|
1266
|
+
ModuleGraph.ModuleGraphConnection = ModuleGraphConnection;
|
|
1267
|
+
|
|
1093
1268
|
module.exports = ModuleGraph;
|
|
1094
|
-
module.exports.ModuleGraphConnection = ModuleGraphConnection;
|
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
9
|
-
/** @
|
|
10
|
-
/** @
|
|
11
|
-
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
8
|
+
/** @import Dependency, { GetConditionFn } from "./Dependency" */
|
|
9
|
+
/** @import Module from "./Module" */
|
|
10
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Module itself is not connected, but transitive modules are connected transitively.
|
|
@@ -195,14 +194,8 @@ class ModuleGraphConnection {
|
|
|
195
194
|
}
|
|
196
195
|
}
|
|
197
196
|
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
ModuleGraphConnection.CIRCULAR_CONNECTION = CIRCULAR_CONNECTION;
|
|
198
|
+
ModuleGraphConnection.TRANSITIVE_ONLY = TRANSITIVE_ONLY;
|
|
199
|
+
ModuleGraphConnection.addConnectionStates = addConnectionStates;
|
|
200
200
|
|
|
201
201
|
module.exports = ModuleGraphConnection;
|
|
202
|
-
module.exports.CIRCULAR_CONNECTION = /** @type {typeof CIRCULAR_CONNECTION} */ (
|
|
203
|
-
CIRCULAR_CONNECTION
|
|
204
|
-
);
|
|
205
|
-
module.exports.TRANSITIVE_ONLY = /** @type {typeof TRANSITIVE_ONLY} */ (
|
|
206
|
-
TRANSITIVE_ONLY
|
|
207
|
-
);
|
|
208
|
-
module.exports.addConnectionStates = addConnectionStates;
|
|
@@ -11,14 +11,12 @@ const Template = require("./Template");
|
|
|
11
11
|
const CssModulesPlugin = require("./css/CssModulesPlugin");
|
|
12
12
|
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
13
13
|
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
|
21
|
-
/** @typedef {import("./RequestShortener")} RequestShortener */
|
|
14
|
+
/** @import { Source } from "webpack-sources" */
|
|
15
|
+
/** @import Compiler from "./Compiler" */
|
|
16
|
+
/** @import ExportsInfo, { ExportInfo } from "./ExportsInfo" */
|
|
17
|
+
/** @import Module, { BuildMeta } from "./Module" */
|
|
18
|
+
/** @import ModuleGraph from "./ModuleGraph" */
|
|
19
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
22
20
|
|
|
23
21
|
/**
|
|
24
22
|
* Join iterable with comma.
|
|
@@ -49,7 +47,7 @@ const joinIterableWithComma = (iterable) => {
|
|
|
49
47
|
* @param {ExportsInfo} exportsInfo data
|
|
50
48
|
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
51
49
|
* @param {RequestShortener} requestShortener requestShortener
|
|
52
|
-
* @param {Set<ExportInfo
|
|
50
|
+
* @param {Set<InstanceType<ExportInfo>>} alreadyPrinted deduplication set
|
|
53
51
|
* @returns {void}
|
|
54
52
|
*/
|
|
55
53
|
const printExportsInfoToSource = (
|
|
@@ -65,7 +63,7 @@ const printExportsInfoToSource = (
|
|
|
65
63
|
let alreadyPrintedExports = 0;
|
|
66
64
|
|
|
67
65
|
// determine exports to print
|
|
68
|
-
/** @type {ExportInfo[]} */
|
|
66
|
+
/** @type {InstanceType<ExportInfo>[]} */
|
|
69
67
|
const printedExports = [];
|
|
70
68
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
71
69
|
if (!alreadyPrinted.has(exportInfo)) {
|
package/lib/ModuleTemplate.js
CHANGED
|
@@ -6,18 +6,21 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const util = require("util");
|
|
9
|
-
const
|
|
9
|
+
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
/** @import { Tap } from "tapable" */
|
|
12
|
+
/** @import { Source } from "webpack-sources" */
|
|
13
|
+
/** @import Compilation from "./Compilation" */
|
|
14
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
15
|
+
/** @import Module from "./Module" */
|
|
16
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
17
|
+
/**
|
|
18
|
+
* @import {
|
|
19
|
+
* ChunkRenderContext,
|
|
20
|
+
* ModuleRenderContext
|
|
21
|
+
* } from "./javascript/JavascriptModulesPlugin"
|
|
22
|
+
*/
|
|
23
|
+
/** @import Hash from "./util/Hash" */
|
|
21
24
|
|
|
22
25
|
/**
|
|
23
26
|
* Defines the if set type used by this module.
|
|
@@ -25,10 +28,6 @@ const memoize = require("./util/memoize");
|
|
|
25
28
|
* @typedef {import("tapable").IfSet<T>} IfSet
|
|
26
29
|
*/
|
|
27
30
|
|
|
28
|
-
const getJavascriptModulesPlugin = memoize(() =>
|
|
29
|
-
require("./javascript/JavascriptModulesPlugin")
|
|
30
|
-
);
|
|
31
|
-
|
|
32
31
|
// TODO webpack 6: remove this class
|
|
33
32
|
class ModuleTemplate {
|
|
34
33
|
/**
|
|
@@ -51,18 +50,18 @@ class ModuleTemplate {
|
|
|
51
50
|
* @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
52
51
|
*/
|
|
53
52
|
(options, fn) => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
53
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
54
|
+
compilation
|
|
55
|
+
).renderModuleContent.tap(
|
|
56
|
+
options,
|
|
57
|
+
(source, module, renderContext) =>
|
|
58
|
+
fn(
|
|
59
|
+
source,
|
|
60
|
+
module,
|
|
61
|
+
renderContext,
|
|
62
|
+
renderContext.dependencyTemplates
|
|
63
|
+
)
|
|
64
|
+
);
|
|
66
65
|
},
|
|
67
66
|
"ModuleTemplate.hooks.content is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
|
|
68
67
|
"DEP_MODULE_TEMPLATE_CONTENT"
|
|
@@ -77,18 +76,18 @@ class ModuleTemplate {
|
|
|
77
76
|
* @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
78
77
|
*/
|
|
79
78
|
(options, fn) => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
80
|
+
compilation
|
|
81
|
+
).renderModuleContent.tap(
|
|
82
|
+
options,
|
|
83
|
+
(source, module, renderContext) =>
|
|
84
|
+
fn(
|
|
85
|
+
source,
|
|
86
|
+
module,
|
|
87
|
+
renderContext,
|
|
88
|
+
renderContext.dependencyTemplates
|
|
89
|
+
)
|
|
90
|
+
);
|
|
92
91
|
},
|
|
93
92
|
"ModuleTemplate.hooks.module is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
|
|
94
93
|
"DEP_MODULE_TEMPLATE_MODULE"
|
|
@@ -103,18 +102,18 @@ class ModuleTemplate {
|
|
|
103
102
|
* @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
104
103
|
*/
|
|
105
104
|
(options, fn) => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
105
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
106
|
+
compilation
|
|
107
|
+
).renderModuleContainer.tap(
|
|
108
|
+
options,
|
|
109
|
+
(source, module, renderContext) =>
|
|
110
|
+
fn(
|
|
111
|
+
source,
|
|
112
|
+
module,
|
|
113
|
+
renderContext,
|
|
114
|
+
renderContext.dependencyTemplates
|
|
115
|
+
)
|
|
116
|
+
);
|
|
118
117
|
},
|
|
119
118
|
"ModuleTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer instead)",
|
|
120
119
|
"DEP_MODULE_TEMPLATE_RENDER"
|
|
@@ -129,18 +128,18 @@ class ModuleTemplate {
|
|
|
129
128
|
* @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
130
129
|
*/
|
|
131
130
|
(options, fn) => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
131
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
132
|
+
compilation
|
|
133
|
+
).renderModulePackage.tap(
|
|
134
|
+
options,
|
|
135
|
+
(source, module, renderContext) =>
|
|
136
|
+
fn(
|
|
137
|
+
source,
|
|
138
|
+
module,
|
|
139
|
+
renderContext,
|
|
140
|
+
renderContext.dependencyTemplates
|
|
141
|
+
)
|
|
142
|
+
);
|
|
144
143
|
},
|
|
145
144
|
"ModuleTemplate.hooks.package is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModulePackage instead)",
|
|
146
145
|
"DEP_MODULE_TEMPLATE_PACKAGE"
|