@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/InitFragment.js
CHANGED
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
const { ConcatSource } = require("webpack-sources");
|
|
9
9
|
const makeSerializable = require("./util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/**
|
|
14
|
-
|
|
11
|
+
/** @import { Source } from "webpack-sources" */
|
|
12
|
+
/** @import { GenerateContext } from "./Generator" */
|
|
13
|
+
/**
|
|
14
|
+
* @import {
|
|
15
|
+
* ObjectDeserializerContext,
|
|
16
|
+
* ObjectSerializerContext
|
|
17
|
+
* } from "./serialization/ObjectMiddleware"
|
|
18
|
+
*/
|
|
15
19
|
|
|
16
20
|
/** @typedef {string} InitFragmentKey */
|
|
17
21
|
|
|
@@ -28,30 +32,6 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
28
32
|
* @property {(fragments: MaybeMergeableInitFragment<GenerateContext>[]) => MaybeMergeableInitFragment<GenerateContext>[]=} mergeAll
|
|
29
33
|
*/
|
|
30
34
|
|
|
31
|
-
/**
|
|
32
|
-
* Extract fragment index.
|
|
33
|
-
* @template T
|
|
34
|
-
* @param {T} fragment the init fragment
|
|
35
|
-
* @param {number} index index
|
|
36
|
-
* @returns {[T, number]} tuple with both
|
|
37
|
-
*/
|
|
38
|
-
const extractFragmentIndex = (fragment, index) => [fragment, index];
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Sorts fragment with index.
|
|
42
|
-
* @template T
|
|
43
|
-
* @param {[MaybeMergeableInitFragment<T>, number]} a first pair
|
|
44
|
-
* @param {[MaybeMergeableInitFragment<T>, number]} b second pair
|
|
45
|
-
* @returns {number} sort value
|
|
46
|
-
*/
|
|
47
|
-
const sortFragmentWithIndex = ([a, i], [b, j]) => {
|
|
48
|
-
const stageCmp = a.stage - b.stage;
|
|
49
|
-
if (stageCmp !== 0) return stageCmp;
|
|
50
|
-
const positionCmp = a.position - b.position;
|
|
51
|
-
if (positionCmp !== 0) return positionCmp;
|
|
52
|
-
return i - j;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
35
|
/**
|
|
56
36
|
* Represents InitFragment.
|
|
57
37
|
* @template GenerateContext
|
|
@@ -107,16 +87,28 @@ class InitFragment {
|
|
|
107
87
|
*/
|
|
108
88
|
static addToSource(source, initFragments, context) {
|
|
109
89
|
if (initFragments.length > 0) {
|
|
110
|
-
// Sort
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
90
|
+
// Sort fragment indices by (stage, position), falling back to the
|
|
91
|
+
// original index — one flat number array instead of N [fragment, index]
|
|
92
|
+
// tuples for a stable-by-index order.
|
|
93
|
+
const sortedIndices = initFragments.map((_, index) => index);
|
|
94
|
+
sortedIndices.sort((a, b) => {
|
|
95
|
+
const fragmentA = initFragments[a];
|
|
96
|
+
const fragmentB = initFragments[b];
|
|
97
|
+
const stageCmp = fragmentA.stage - fragmentB.stage;
|
|
98
|
+
if (stageCmp !== 0) return stageCmp;
|
|
99
|
+
const positionCmp = fragmentA.position - fragmentB.position;
|
|
100
|
+
if (positionCmp !== 0) return positionCmp;
|
|
101
|
+
return a - b;
|
|
102
|
+
});
|
|
115
103
|
|
|
116
104
|
// Deduplicate fragments. If a fragment has no key, it is always included.
|
|
117
|
-
|
|
105
|
+
// Keyless fragments get a unique numeric key; number keys never collide
|
|
106
|
+
// with the string `InitFragmentKey`s used for keyed fragments.
|
|
107
|
+
/** @type {Map<InitFragmentKey | number, MaybeMergeableInitFragment<Context> | MaybeMergeableInitFragment<Context>[]>} */
|
|
118
108
|
const keyedFragments = new Map();
|
|
119
|
-
|
|
109
|
+
let keylessKey = 0;
|
|
110
|
+
for (const index of sortedIndices) {
|
|
111
|
+
const fragment = initFragments[index];
|
|
120
112
|
if (typeof fragment.mergeAll === "function") {
|
|
121
113
|
if (!fragment.key) {
|
|
122
114
|
throw new Error(
|
|
@@ -142,7 +134,7 @@ class InitFragment {
|
|
|
142
134
|
continue;
|
|
143
135
|
}
|
|
144
136
|
}
|
|
145
|
-
keyedFragments.set(fragment.key ||
|
|
137
|
+
keyedFragments.set(fragment.key || keylessKey++, fragment);
|
|
146
138
|
}
|
|
147
139
|
|
|
148
140
|
const concatSource = new ConcatSource();
|
|
@@ -12,10 +12,14 @@ const {
|
|
|
12
12
|
} = require("./ModuleTypeConstants");
|
|
13
13
|
const { getInnerGraphUtils } = require("./optimize/InnerGraph");
|
|
14
14
|
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/**
|
|
18
|
-
|
|
15
|
+
/** @import Compiler from "./Compiler" */
|
|
16
|
+
/** @import { BuildInfo } from "./Module" */
|
|
17
|
+
/**
|
|
18
|
+
* @import {
|
|
19
|
+
* JavascriptModuleBuildInfo
|
|
20
|
+
* } from "./javascript/JavascriptModule"
|
|
21
|
+
*/
|
|
22
|
+
/** @import JavascriptParser from "./javascript/JavascriptParser" */
|
|
19
23
|
|
|
20
24
|
const PLUGIN_NAME = "JavascriptMetaInfoPlugin";
|
|
21
25
|
|
|
@@ -36,6 +40,26 @@ class JavascriptMetaInfoPlugin {
|
|
|
36
40
|
* @returns {void}
|
|
37
41
|
*/
|
|
38
42
|
const handler = (parser) => {
|
|
43
|
+
parser.hooks.program.tap(PLUGIN_NAME, (ast) => {
|
|
44
|
+
// Nested blocks keep their own disposal scope, only a module-scope
|
|
45
|
+
// declaration ties disposal to the end of module evaluation.
|
|
46
|
+
if (
|
|
47
|
+
ast.body.some(
|
|
48
|
+
(statement) =>
|
|
49
|
+
statement.type === "VariableDeclaration" &&
|
|
50
|
+
(statement.kind === "using" ||
|
|
51
|
+
statement.kind === "await using")
|
|
52
|
+
)
|
|
53
|
+
) {
|
|
54
|
+
const buildInfo =
|
|
55
|
+
/** @type {JavascriptModuleBuildInfo} */
|
|
56
|
+
(parser.state.module.buildInfo);
|
|
57
|
+
buildInfo.usesTopLevelUsingDeclaration = true;
|
|
58
|
+
// Concatenation would defer disposal to the enclosing scope.
|
|
59
|
+
buildInfo.moduleConcatenationBailout =
|
|
60
|
+
"a top-level using declaration";
|
|
61
|
+
}
|
|
62
|
+
});
|
|
39
63
|
parser.hooks.call.for("eval").tap(PLUGIN_NAME, () => {
|
|
40
64
|
const buildInfo =
|
|
41
65
|
/** @type {JavascriptModuleBuildInfo} */
|
|
@@ -45,7 +69,14 @@ class JavascriptMetaInfoPlugin {
|
|
|
45
69
|
if (currentSymbol) {
|
|
46
70
|
innerGraph.addUsage(parser.state, null, currentSymbol);
|
|
47
71
|
} else {
|
|
72
|
+
// Only worth reporting when the analysis was actually running
|
|
73
|
+
const wasEnabled = innerGraph.isEnabled(parser.state);
|
|
48
74
|
innerGraph.bailout(parser.state);
|
|
75
|
+
if (wasEnabled) {
|
|
76
|
+
compilation.moduleGraph
|
|
77
|
+
.getOptimizationBailout(parser.state.module)
|
|
78
|
+
.push("Inner graph bailout: eval()");
|
|
79
|
+
}
|
|
49
80
|
}
|
|
50
81
|
});
|
|
51
82
|
parser.hooks.finish.tap(PLUGIN_NAME, () => {
|
package/lib/LazyBarrel.js
CHANGED
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
const Dependency = require("./Dependency");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @typedef {import("./ModuleFactory")} ModuleFactory */
|
|
10
|
+
/** @import Compilation, { DependencyConstructor } from "./Compilation" */
|
|
11
|
+
/** @import Module from "./Module" */
|
|
12
|
+
/** @import ModuleFactory from "./ModuleFactory" */
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Defines the deferred request group type used by this module.
|
|
@@ -7,12 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
const EnableLibraryPlugin = require("./library/EnableLibraryPlugin");
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @import {
|
|
12
|
+
* AuxiliaryComment,
|
|
13
|
+
* LibraryExport,
|
|
14
|
+
* LibraryName,
|
|
15
|
+
* LibraryType,
|
|
16
|
+
* UmdNamedDefine
|
|
17
|
+
* } from "../declarations/WebpackOptions"
|
|
18
|
+
*/
|
|
19
|
+
/** @import Compiler from "./Compiler" */
|
|
16
20
|
|
|
17
21
|
// TODO webpack 6 remove
|
|
18
22
|
class LibraryTemplatePlugin {
|
|
@@ -8,9 +8,13 @@
|
|
|
8
8
|
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
|
|
9
9
|
const NormalModule = require("./NormalModule");
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* LoaderOptionsPluginOptions
|
|
14
|
+
* } from "../declarations/plugins/LoaderOptionsPlugin"
|
|
15
|
+
*/
|
|
16
|
+
/** @import Compiler from "./Compiler" */
|
|
17
|
+
/** @import { MatchObject } from "./ModuleFilenameHelpers" */
|
|
14
18
|
|
|
15
19
|
/**
|
|
16
20
|
* Defines the loader context type used by this module.
|
package/lib/MainTemplate.js
CHANGED
|
@@ -8,39 +8,44 @@
|
|
|
8
8
|
const util = require("util");
|
|
9
9
|
const { SyncWaterfallHook } = require("tapable");
|
|
10
10
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
11
|
+
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
11
12
|
const memoize = require("./util/memoize");
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/**
|
|
27
|
-
|
|
14
|
+
const getLoadScriptRuntimeModule = memoize(() =>
|
|
15
|
+
require("./runtime/LoadScriptRuntimeModule")
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const getJsonpTemplatePlugin = memoize(() =>
|
|
19
|
+
require("./web/JsonpTemplatePlugin")
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/** @import { Tap } from "tapable" */
|
|
23
|
+
/** @import { Source } from "webpack-sources" */
|
|
24
|
+
/** @import { Output as OutputOptions } from "../declarations/WebpackOptions" */
|
|
25
|
+
/** @import ModuleTemplate from "./ModuleTemplate" */
|
|
26
|
+
/** @import Chunk from "./Chunk" */
|
|
27
|
+
/**
|
|
28
|
+
* @import Compilation, {
|
|
29
|
+
* AssetInfo,
|
|
30
|
+
* InterpolatedPathAndAssetInfo,
|
|
31
|
+
* PathData
|
|
32
|
+
* } from "./Compilation"
|
|
33
|
+
*/
|
|
34
|
+
/** @import Hash from "./util/Hash" */
|
|
35
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
36
|
+
/**
|
|
37
|
+
* @import {
|
|
38
|
+
* RenderBootstrapContext
|
|
39
|
+
* } from "./javascript/JavascriptModulesPlugin"
|
|
40
|
+
*/
|
|
41
|
+
/** @import { RenderManifestOptions, RenderManifestEntry } from "./Template" */
|
|
42
|
+
/** @import { TemplatePath } from "./TemplatedPathPlugin" */
|
|
28
43
|
/**
|
|
29
44
|
* Defines the if set type used by this module.
|
|
30
45
|
* @template T
|
|
31
46
|
* @typedef {import("tapable").IfSet<T>} IfSet
|
|
32
47
|
*/
|
|
33
48
|
|
|
34
|
-
const getJavascriptModulesPlugin = memoize(() =>
|
|
35
|
-
require("./javascript/JavascriptModulesPlugin")
|
|
36
|
-
);
|
|
37
|
-
const getJsonpTemplatePlugin = memoize(() =>
|
|
38
|
-
require("./web/JsonpTemplatePlugin")
|
|
39
|
-
);
|
|
40
|
-
const getLoadScriptRuntimeModule = memoize(() =>
|
|
41
|
-
require("./runtime/LoadScriptRuntimeModule")
|
|
42
|
-
);
|
|
43
|
-
|
|
44
49
|
// TODO webpack 6 remove this class
|
|
45
50
|
class MainTemplate {
|
|
46
51
|
/**
|
|
@@ -96,9 +101,9 @@ class MainTemplate {
|
|
|
96
101
|
* @param {(value: string, renderBootstrapContext: RenderBootstrapContext) => string} fn fn
|
|
97
102
|
*/
|
|
98
103
|
(options, fn) => {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
105
|
+
compilation
|
|
106
|
+
).renderRequire.tap(options, fn);
|
|
102
107
|
},
|
|
103
108
|
"MainTemplate.hooks.require is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderRequire instead)",
|
|
104
109
|
"DEP_WEBPACK_MAIN_TEMPLATE_REQUIRE"
|
|
@@ -134,9 +139,9 @@ class MainTemplate {
|
|
|
134
139
|
* @param {(source: Source, chunk: Chunk, hash: string | undefined, moduleTemplate: ModuleTemplate, dependencyTemplates: DependencyTemplates) => Source} fn fn
|
|
135
140
|
*/
|
|
136
141
|
(options, fn) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
142
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(
|
|
143
|
+
options,
|
|
144
|
+
(source, renderContext) => {
|
|
140
145
|
if (
|
|
141
146
|
renderContext.chunkGraph.getNumberOfEntryModules(
|
|
142
147
|
renderContext.chunk
|
|
@@ -152,7 +157,8 @@ class MainTemplate {
|
|
|
152
157
|
compilation.moduleTemplates.javascript,
|
|
153
158
|
compilation.dependencyTemplates
|
|
154
159
|
);
|
|
155
|
-
}
|
|
160
|
+
}
|
|
161
|
+
);
|
|
156
162
|
},
|
|
157
163
|
"MainTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",
|
|
158
164
|
"DEP_WEBPACK_MAIN_TEMPLATE_RENDER"
|
|
@@ -167,9 +173,9 @@ class MainTemplate {
|
|
|
167
173
|
* @param {(source: Source, chunk: Chunk, hash: string | undefined) => Source} fn fn
|
|
168
174
|
*/
|
|
169
175
|
(options, fn) => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
176
|
+
JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(
|
|
177
|
+
options,
|
|
178
|
+
(source, renderContext) => {
|
|
173
179
|
if (
|
|
174
180
|
renderContext.chunkGraph.getNumberOfEntryModules(
|
|
175
181
|
renderContext.chunk
|
|
@@ -179,7 +185,8 @@ class MainTemplate {
|
|
|
179
185
|
return source;
|
|
180
186
|
}
|
|
181
187
|
return fn(source, renderContext.chunk, compilation.hash);
|
|
182
|
-
}
|
|
188
|
+
}
|
|
189
|
+
);
|
|
183
190
|
},
|
|
184
191
|
"MainTemplate.hooks.renderWithEntry is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",
|
|
185
192
|
"DEP_WEBPACK_MAIN_TEMPLATE_RENDER_WITH_ENTRY"
|
|
@@ -235,12 +242,12 @@ class MainTemplate {
|
|
|
235
242
|
* @param {(hash: Hash, chunk: Chunk) => void} fn fn
|
|
236
243
|
*/
|
|
237
244
|
(options, fn) => {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
JavascriptModulesPlugin.getCompilationHooks(
|
|
246
|
+
compilation
|
|
247
|
+
).chunkHash.tap(options, (chunk, hash) => {
|
|
248
|
+
if (!chunk.hasRuntime()) return;
|
|
249
|
+
return fn(hash, chunk);
|
|
250
|
+
});
|
|
244
251
|
},
|
|
245
252
|
"MainTemplate.hooks.hashForChunk is deprecated (use JavascriptModulesPlugin.getCompilationHooks().chunkHash instead)",
|
|
246
253
|
"DEP_WEBPACK_MAIN_TEMPLATE_HASH_FOR_CHUNK"
|
package/lib/ManifestPlugin.js
CHANGED
|
@@ -9,17 +9,18 @@ const { RawSource } = require("webpack-sources");
|
|
|
9
9
|
const Compilation = require("./Compilation");
|
|
10
10
|
const HotUpdateChunk = require("./HotUpdateChunk");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
/** @import Compiler from "./Compiler" */
|
|
13
|
+
/** @import Chunk, { ChunkName, ChunkId } from "./Chunk" */
|
|
14
|
+
/** @import { AssetInfo } from "./Compilation" */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @import {
|
|
18
|
+
* ManifestPluginOptions,
|
|
19
|
+
* ManifestObject,
|
|
20
|
+
* ManifestEntrypoint,
|
|
21
|
+
* ManifestItem
|
|
22
|
+
* } from "../declarations/plugins/ManifestPlugin"
|
|
23
|
+
*/
|
|
23
24
|
|
|
24
25
|
/** @typedef {(item: ManifestItem) => boolean} Filter */
|
|
25
26
|
/** @typedef {(manifest: ManifestObject) => ManifestObject} Generate */
|
package/lib/Module.js
CHANGED
|
@@ -19,43 +19,53 @@ const { first } = require("./util/SetHelpers");
|
|
|
19
19
|
const { compareChunksById } = require("./util/comparators");
|
|
20
20
|
const makeSerializable = require("./util/makeSerializable");
|
|
21
21
|
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/** @
|
|
30
|
-
/** @
|
|
31
|
-
/** @
|
|
32
|
-
/** @
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/** @
|
|
41
|
-
/** @
|
|
42
|
-
/** @
|
|
43
|
-
/** @
|
|
44
|
-
/** @
|
|
45
|
-
/** @
|
|
46
|
-
/** @
|
|
22
|
+
/** @import { Source } from "webpack-sources" */
|
|
23
|
+
/** @import { ResolveOptions } from "../declarations/WebpackOptions" */
|
|
24
|
+
/**
|
|
25
|
+
* @import {
|
|
26
|
+
* WebpackOptionsNormalizedWithDefaults as WebpackOptions
|
|
27
|
+
* } from "./config/defaults"
|
|
28
|
+
*/
|
|
29
|
+
/** @import Chunk from "./Chunk" */
|
|
30
|
+
/** @import { ModuleId } from "./ChunkGraph" */
|
|
31
|
+
/** @import ChunkGroup from "./ChunkGroup" */
|
|
32
|
+
/** @import CodeGenerationResults from "./CodeGenerationResults" */
|
|
33
|
+
/**
|
|
34
|
+
* @import Compilation, {
|
|
35
|
+
* AssetInfo,
|
|
36
|
+
* FileSystemDependencies,
|
|
37
|
+
* UnsafeCacheData
|
|
38
|
+
* } from "./Compilation"
|
|
39
|
+
*/
|
|
40
|
+
/** @import ConcatenationScope from "./ConcatenationScope" */
|
|
41
|
+
/** @import Dependency, { UpdateHashContext } from "./Dependency" */
|
|
42
|
+
/** @import DependencyTemplates from "./DependencyTemplates" */
|
|
43
|
+
/** @import { AllTypes } from "./ModuleSourceTypeConstants" */
|
|
44
|
+
/** @import FileSystemInfo from "./FileSystemInfo" */
|
|
45
|
+
/** @import { ConnectionState } from "./ModuleGraphConnection" */
|
|
46
|
+
/** @import { ModuleTypes } from "./ModuleTypeConstants" */
|
|
47
|
+
/** @import { OptimizationBailouts } from "./ModuleGraph" */
|
|
48
|
+
/** @import ModuleProfile from "./ModuleProfile" */
|
|
49
|
+
/** @import NormalModuleFactory from "./NormalModuleFactory" */
|
|
50
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
51
|
+
/** @import { ResolverWithOptions } from "./ResolverFactory" */
|
|
52
|
+
/** @import RuntimeTemplate from "./RuntimeTemplate" */
|
|
47
53
|
/**
|
|
48
54
|
* Defines the init fragment type used by this module.
|
|
49
55
|
* @template T
|
|
50
56
|
* @typedef {import("./InitFragment")<T>} InitFragment
|
|
51
57
|
*/
|
|
52
|
-
/** @
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
/** @import WebpackError from "./errors/WebpackError" */
|
|
59
|
+
/**
|
|
60
|
+
* @import {
|
|
61
|
+
* ObjectDeserializerContext,
|
|
62
|
+
* ObjectSerializerContext
|
|
63
|
+
* } from "./serialization/ObjectMiddleware"
|
|
64
|
+
*/
|
|
65
|
+
/** @import Hash from "./util/Hash" */
|
|
66
|
+
/** @import { InputFileSystem } from "./util/fs" */
|
|
67
|
+
/** @import { AssociatedObjectForCache } from "./util/identifier" */
|
|
68
|
+
/** @import { RuntimeSpec } from "./util/runtime" */
|
|
59
69
|
/**
|
|
60
70
|
* @template T
|
|
61
71
|
* @typedef {import("./util/SortableSet")<T>} SortableSet
|
|
@@ -173,6 +183,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
173
183
|
* @property {boolean=} sideEffectFree
|
|
174
184
|
* @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime using in ModuleLibraryPlugin
|
|
175
185
|
* @property {Map<string, string>=} exportsSourceByRuntime using in ModuleLibraryPlugin
|
|
186
|
+
* @property {Map<string, string>=} exportsBindingSourceByRuntime export definitions `ModuleLibraryPlugin` took over, re-emitted only where the module is wrapped
|
|
176
187
|
*/
|
|
177
188
|
|
|
178
189
|
/**
|
|
@@ -188,7 +199,10 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
188
199
|
* @property {Map<string, AssetInfo | undefined>=} assetsInfo
|
|
189
200
|
* @property {Set<string>=} topLevelDeclarations top level declaration names
|
|
190
201
|
* @property {boolean=} isCircular true when the module is part of a circular dependency chain
|
|
191
|
-
* @property {boolean=}
|
|
202
|
+
* @property {boolean=} usesEval true when the module calls `eval` directly
|
|
203
|
+
* @property {number=} ineffectivePureAnnotations how many `#__PURE__` annotations sit where the parser does not read them
|
|
204
|
+
* @property {number=} topLevelThis how many times the module reads `this` at its top level
|
|
205
|
+
* @property {boolean=} usesTopLevelAwaitForOf module uses top-level `for await…of` or `await using`, which can't be lowered to a generator
|
|
192
206
|
*/
|
|
193
207
|
|
|
194
208
|
/** @typedef {string | Set<string>} ValueCacheVersion */
|
|
@@ -1250,6 +1264,21 @@ class Module extends DependenciesBlock {
|
|
|
1250
1264
|
this.resolveOptions = undefined;
|
|
1251
1265
|
}
|
|
1252
1266
|
|
|
1267
|
+
/**
|
|
1268
|
+
* Re-acquire factory-derived helpers (parser/generator) for an incremental
|
|
1269
|
+
* rebuild so this compilation's plugin hooks apply.
|
|
1270
|
+
* @param {NormalModuleFactory} normalModuleFactory the normal module factory
|
|
1271
|
+
* @returns {void}
|
|
1272
|
+
*/
|
|
1273
|
+
_restoreParserAndGenerator(normalModuleFactory) {}
|
|
1274
|
+
|
|
1275
|
+
/**
|
|
1276
|
+
* Releases the cached parser between incremental rebuilds so it doesn't keep
|
|
1277
|
+
* the previous compilation alive.
|
|
1278
|
+
* @returns {void}
|
|
1279
|
+
*/
|
|
1280
|
+
_cleanupParserForCache() {}
|
|
1281
|
+
|
|
1253
1282
|
/**
|
|
1254
1283
|
* Gets the original source.
|
|
1255
1284
|
* @returns {Source | null} the original source for the module before webpack transformation
|
package/lib/ModuleFactory.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @
|
|
9
|
-
/** @
|
|
10
|
-
/** @
|
|
8
|
+
/** @import { ResolveOptions } from "../declarations/WebpackOptions" */
|
|
9
|
+
/** @import Dependency from "./Dependency" */
|
|
10
|
+
/** @import Module from "./Module" */
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Defines the module factory result type used by this module.
|
|
@@ -10,10 +10,10 @@ const { DEFAULTS } = require("./config/defaults");
|
|
|
10
10
|
const createHash = require("./util/createHash");
|
|
11
11
|
const memoize = require("./util/memoize");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
13
|
+
/** @import { HashFunction } from "../declarations/WebpackOptions" */
|
|
14
|
+
/** @import ChunkGraph from "./ChunkGraph" */
|
|
15
|
+
/** @import Module from "./Module" */
|
|
16
|
+
/** @import RequestShortener from "./RequestShortener" */
|
|
17
17
|
|
|
18
18
|
/** @typedef {(str: string) => boolean} MatcherFn */
|
|
19
19
|
/** @typedef {string | RegExp | MatcherFn | (string | RegExp | MatcherFn)[]} Matcher */
|
|
@@ -21,6 +21,11 @@ const memoize = require("./util/memoize");
|
|
|
21
21
|
|
|
22
22
|
const ModuleFilenameHelpers = module.exports;
|
|
23
23
|
|
|
24
|
+
ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE =
|
|
25
|
+
"webpack://[namespace]/[resourcePath]";
|
|
26
|
+
ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE =
|
|
27
|
+
"webpack://[namespace]/[resourcePath]?[hash]";
|
|
28
|
+
|
|
24
29
|
// TODO webpack 6: consider removing these
|
|
25
30
|
ModuleFilenameHelpers.ALL_LOADERS_RESOURCE = "[all-loaders][resource]";
|
|
26
31
|
ModuleFilenameHelpers.REGEXP_ALL_LOADERS_RESOURCE =
|
|
@@ -169,11 +174,14 @@ ModuleFilenameHelpers.createFilename = (
|
|
|
169
174
|
let moduleId;
|
|
170
175
|
/** @type {ReturnStringCallback} */
|
|
171
176
|
let shortIdentifier;
|
|
177
|
+
/** @type {ReturnStringCallback} */
|
|
178
|
+
let resourceIdentifier;
|
|
172
179
|
if (typeof module === "string") {
|
|
173
180
|
shortIdentifier =
|
|
174
181
|
/** @type {ReturnStringCallback} */
|
|
175
182
|
(memoize(() => requestShortener.shorten(module)));
|
|
176
183
|
identifier = shortIdentifier;
|
|
184
|
+
resourceIdentifier = shortIdentifier;
|
|
177
185
|
moduleId = () => "";
|
|
178
186
|
absoluteResourcePath = () =>
|
|
179
187
|
/** @type {string} */ (module.split("!").pop());
|
|
@@ -182,6 +190,14 @@ ModuleFilenameHelpers.createFilename = (
|
|
|
182
190
|
shortIdentifier = memoize(() =>
|
|
183
191
|
module.readableIdentifier(requestShortener)
|
|
184
192
|
);
|
|
193
|
+
// `[resource]` and `[loaders]` must stay request paths: a subclass's
|
|
194
|
+
// readable identifier may carry display-only decorations (e.g. CssModule's
|
|
195
|
+
// `css ` prefix)
|
|
196
|
+
resourceIdentifier = memoize(() =>
|
|
197
|
+
module instanceof NormalModule
|
|
198
|
+
? /** @type {string} */ (requestShortener.shorten(module.userRequest))
|
|
199
|
+
: module.readableIdentifier(requestShortener)
|
|
200
|
+
);
|
|
185
201
|
identifier =
|
|
186
202
|
/** @type {ReturnStringCallback} */
|
|
187
203
|
(memoize(() => requestShortener.shorten(module.identifier())));
|
|
@@ -196,9 +212,9 @@ ModuleFilenameHelpers.createFilename = (
|
|
|
196
212
|
}
|
|
197
213
|
const resource =
|
|
198
214
|
/** @type {ReturnStringCallback} */
|
|
199
|
-
(memoize(() =>
|
|
215
|
+
(memoize(() => resourceIdentifier().split("!").pop()));
|
|
200
216
|
|
|
201
|
-
const loaders = getBefore(
|
|
217
|
+
const loaders = getBefore(resourceIdentifier, "!");
|
|
202
218
|
const allLoaders = getBefore(identifier, "!");
|
|
203
219
|
const query = getAfter(resource, "?");
|
|
204
220
|
const resourcePath = () => {
|