@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
|
@@ -10,15 +10,26 @@ const Template = require("../Template");
|
|
|
10
10
|
const { reEncodeDigest } = require("../TemplatedPathPlugin");
|
|
11
11
|
const { first } = require("../util/SetHelpers");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
/** @import Chunk, { ChunkId, ChunkFilenameTemplate } from "../Chunk" */
|
|
14
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
15
|
+
/**
|
|
16
|
+
* @import Compilation, {
|
|
17
|
+
* HashWithLengthFunction,
|
|
18
|
+
* HashWithDigestFunction
|
|
19
|
+
* } from "../Compilation"
|
|
20
|
+
*/
|
|
20
21
|
|
|
21
22
|
class GetChunkFilenameRuntimeModule extends RuntimeModule {
|
|
23
|
+
/**
|
|
24
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
25
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
26
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
27
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
28
|
+
*/
|
|
29
|
+
shouldIsolate() {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
22
33
|
/**
|
|
23
34
|
* @param {string} contentType the contentType to use the content hash for
|
|
24
35
|
* @param {string} name kind of filename
|
|
@@ -173,6 +184,15 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
|
|
|
173
184
|
/** @type {Set<Chunk>} */
|
|
174
185
|
const dynamicUrlChunks = new Set();
|
|
175
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Drops the dead empty string a leading placeholder leaves, only when a
|
|
189
|
+
* quoted operand ends the expression so the `+` chain stays a string.
|
|
190
|
+
* @param {string} expr concatenation expression
|
|
191
|
+
* @returns {string} the expression without its dead empty string
|
|
192
|
+
*/
|
|
193
|
+
const dropDeadConcatOperand = (expr) =>
|
|
194
|
+
expr.startsWith('"" + ') && expr.endsWith('"') ? expr.slice(5) : expr;
|
|
195
|
+
|
|
176
196
|
/**
|
|
177
197
|
* @param {Chunk} c the chunk
|
|
178
198
|
* @param {ChunkFilenameTemplate} chunkFilename the filename template for the chunk
|
|
@@ -244,9 +264,10 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
|
|
|
244
264
|
},
|
|
245
265
|
contentHashType: contentType
|
|
246
266
|
});
|
|
247
|
-
|
|
267
|
+
const url = dropDeadConcatOperand(staticChunkFilename);
|
|
268
|
+
let set = staticUrls.get(url);
|
|
248
269
|
if (set === undefined) {
|
|
249
|
-
staticUrls.set(
|
|
270
|
+
staticUrls.set(url, (set = new Set()));
|
|
250
271
|
}
|
|
251
272
|
set.add(c.id);
|
|
252
273
|
};
|
|
@@ -306,7 +327,7 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
|
|
|
306
327
|
const mapExprWithLength = (fn) => (length) =>
|
|
307
328
|
`" + ${createMap((c) => `${fn(c)}`.slice(0, length))} + "`;
|
|
308
329
|
|
|
309
|
-
const
|
|
330
|
+
const dynamicUrl =
|
|
310
331
|
dynamicFilename &&
|
|
311
332
|
compilation.getPath(JSON.stringify(dynamicFilename), {
|
|
312
333
|
hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
|
|
@@ -343,35 +364,39 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
|
|
|
343
364
|
},
|
|
344
365
|
contentHashType: contentType
|
|
345
366
|
});
|
|
367
|
+
const url = dynamicUrl && dropDeadConcatOperand(dynamicUrl);
|
|
346
368
|
|
|
369
|
+
const comment = `// This function allow to reference ${includedChunksMessages.join(
|
|
370
|
+
" and "
|
|
371
|
+
)}`;
|
|
372
|
+
// Nothing to branch on, so the whole function is the template expression.
|
|
373
|
+
if (staticUrls.size === 0) {
|
|
374
|
+
return Template.asString([
|
|
375
|
+
comment,
|
|
376
|
+
// `url` is `undefined` when no chunk contributes a filename; the
|
|
377
|
+
// function then returns `undefined`, as it did before.
|
|
378
|
+
`${global} = ${runtimeTemplate.returningFunction(`${url}`, "chunkId")};`
|
|
379
|
+
]);
|
|
380
|
+
}
|
|
347
381
|
return Template.asString([
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
).join(",")}}[chunkId]`;
|
|
367
|
-
return `if (${condition}) return ${url};`;
|
|
368
|
-
})
|
|
369
|
-
),
|
|
370
|
-
"// return url for filenames based on template",
|
|
371
|
-
`return ${url};`
|
|
372
|
-
]
|
|
373
|
-
: ["// return url for filenames based on template", `return ${url};`]
|
|
374
|
-
)};`
|
|
382
|
+
comment,
|
|
383
|
+
`${global} = ${runtimeTemplate.basicFunction("chunkId", [
|
|
384
|
+
"// return url for filenames not based on template",
|
|
385
|
+
// it minimizes to `x===1?"...":x===2?"...":"..."`
|
|
386
|
+
Template.asString(
|
|
387
|
+
Array.from(staticUrls, ([url, ids]) => {
|
|
388
|
+
const condition =
|
|
389
|
+
ids.size === 1
|
|
390
|
+
? `chunkId === ${JSON.stringify(first(ids))}`
|
|
391
|
+
: `{${Array.from(ids, (id) => `${JSON.stringify(id)}:1`).join(
|
|
392
|
+
","
|
|
393
|
+
)}}[chunkId]`;
|
|
394
|
+
return `if (${condition}) return ${url};`;
|
|
395
|
+
})
|
|
396
|
+
),
|
|
397
|
+
"// return url for filenames based on template",
|
|
398
|
+
`return ${url};`
|
|
399
|
+
])};`
|
|
375
400
|
]);
|
|
376
401
|
}
|
|
377
402
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
10
|
+
/** @import Compilation from "../Compilation" */
|
|
11
11
|
|
|
12
12
|
class GetFullHashRuntimeModule extends RuntimeModule {
|
|
13
13
|
constructor() {
|
|
@@ -16,6 +16,16 @@ class GetFullHashRuntimeModule extends RuntimeModule {
|
|
|
16
16
|
this.fullHash = true;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
21
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
22
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
23
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
24
|
+
*/
|
|
25
|
+
shouldIsolate() {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
/**
|
|
20
30
|
* Generates runtime code for this runtime module.
|
|
21
31
|
* @returns {string | null} runtime code
|
|
@@ -25,7 +35,7 @@ class GetFullHashRuntimeModule extends RuntimeModule {
|
|
|
25
35
|
const { runtimeTemplate } = compilation;
|
|
26
36
|
return `${RuntimeGlobals.getFullHash} = ${runtimeTemplate.returningFunction(
|
|
27
37
|
JSON.stringify(compilation.hash || "XXXX")
|
|
28
|
-
)}
|
|
38
|
+
)};`;
|
|
29
39
|
}
|
|
30
40
|
}
|
|
31
41
|
|
|
@@ -8,10 +8,20 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
const Template = require("../Template");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
11
|
+
/** @import Chunk from "../Chunk" */
|
|
12
|
+
/** @import Compilation from "../Compilation" */
|
|
13
13
|
|
|
14
14
|
class GetMainFilenameRuntimeModule extends RuntimeModule {
|
|
15
|
+
/**
|
|
16
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
17
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
18
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
19
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
20
|
+
*/
|
|
21
|
+
shouldIsolate() {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
15
25
|
/**
|
|
16
26
|
* @param {string} name readable name
|
|
17
27
|
* @param {string} global global object binding
|
|
@@ -8,8 +8,8 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
|
+
/** @import { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
13
13
|
|
|
14
14
|
class GetTrustedTypesPolicyRuntimeModule extends HelperRuntimeModule {
|
|
15
15
|
/**
|
|
@@ -9,7 +9,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
|
10
10
|
const Template = require("../Template");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
12
|
+
/** @import Compilation from "../Compilation" */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Provides a single object URL (one per base URI) for the worklet bootstrap
|
|
@@ -23,6 +23,16 @@ class GetWorkletBootstrapRuntimeModule extends RuntimeModule {
|
|
|
23
23
|
super("get worklet bootstrap", RuntimeModule.STAGE_ATTACH);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
28
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
29
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
30
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
31
|
+
*/
|
|
32
|
+
shouldIsolate() {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
|
|
26
36
|
/**
|
|
27
37
|
* Generates runtime code for this runtime module.
|
|
28
38
|
* @returns {string | null} runtime code
|
|
@@ -38,8 +48,11 @@ class GetWorkletBootstrapRuntimeModule extends RuntimeModule {
|
|
|
38
48
|
Template.indent([
|
|
39
49
|
"var script = [",
|
|
40
50
|
Template.indent([
|
|
41
|
-
// worklet scopes have no `self`; chunks assume a worker-like scope
|
|
42
|
-
|
|
51
|
+
// worklet scopes have no `self`; chunks assume a worker-like scope.
|
|
52
|
+
// `||=` is newer than worklets themselves, so it stays gated.
|
|
53
|
+
`${JSON.stringify(
|
|
54
|
+
`${runtimeTemplate.assignOr("globalThis.self", "globalThis")};`
|
|
55
|
+
)},`,
|
|
43
56
|
// some runtime modules read `location`; forward the document base
|
|
44
57
|
'"globalThis.location = " + JSON.stringify(base) + ";"'
|
|
45
58
|
]),
|
|
@@ -8,16 +8,34 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
const Template = require("../Template");
|
|
10
10
|
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
|
12
|
+
|
|
11
13
|
class GlobalRuntimeModule extends RuntimeModule {
|
|
12
14
|
constructor() {
|
|
13
15
|
super("global");
|
|
14
16
|
}
|
|
15
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
20
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
21
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
22
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
23
|
+
*/
|
|
24
|
+
shouldIsolate() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
16
28
|
/**
|
|
17
29
|
* Generates runtime code for this runtime module.
|
|
18
30
|
* @returns {string | null} runtime code
|
|
19
31
|
*/
|
|
20
32
|
generate() {
|
|
33
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
34
|
+
// `environment.globalThis` promises the binding is there, so nothing has to
|
|
35
|
+
// be searched for.
|
|
36
|
+
if (compilation.outputOptions.environment.globalThis) {
|
|
37
|
+
return `${RuntimeGlobals.global} = globalThis;`;
|
|
38
|
+
}
|
|
21
39
|
return Template.asString([
|
|
22
40
|
`${RuntimeGlobals.global} = (function() {`,
|
|
23
41
|
Template.indent([
|
|
@@ -9,13 +9,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
|
10
10
|
const Template = require("../Template");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
12
|
+
/** @import Compilation from "../Compilation" */
|
|
13
13
|
|
|
14
14
|
class HasOwnPropertyRuntimeModule extends RuntimeModule {
|
|
15
15
|
constructor() {
|
|
16
16
|
super("hasOwnProperty shorthand");
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
21
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
22
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
23
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
24
|
+
*/
|
|
25
|
+
shouldIsolate() {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
/**
|
|
20
30
|
* Generates runtime code for this runtime module.
|
|
21
31
|
* @returns {string | null} runtime code
|
|
@@ -28,7 +38,7 @@ class HasOwnPropertyRuntimeModule extends RuntimeModule {
|
|
|
28
38
|
`${RuntimeGlobals.hasOwnProperty} = ${runtimeTemplate.returningFunction(
|
|
29
39
|
runtimeTemplate.objectHasOwn("obj", "prop"),
|
|
30
40
|
"obj, prop"
|
|
31
|
-
)}
|
|
41
|
+
)};`
|
|
32
42
|
]);
|
|
33
43
|
}
|
|
34
44
|
}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const { SyncWaterfallHook } = require("tapable");
|
|
8
|
-
/** @
|
|
8
|
+
/** @import Compilation from "../Compilation" */
|
|
9
9
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
10
|
const Template = require("../Template");
|
|
11
11
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
12
12
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
13
13
|
|
|
14
|
-
/** @
|
|
14
|
+
/** @import Chunk from "../Chunk" */
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @typedef {object} LoadScriptCompilationHooks
|
|
@@ -9,12 +9,9 @@ const Template = require("../Template");
|
|
|
9
9
|
const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
|
|
10
10
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
|
|
16
|
-
/** @typedef {import("../Module").ExportsType} ExportsType */
|
|
17
|
-
/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
|
|
12
|
+
/** @import { ModuleId } from "../ChunkGraph" */
|
|
13
|
+
/** @import Module, { RuntimeRequirements, ExportsType } from "../Module" */
|
|
14
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
18
15
|
|
|
19
16
|
/**
|
|
20
17
|
* @typedef {object} DeferredCycleState
|
|
@@ -224,6 +221,16 @@ function getOptimizedDeferredModule(
|
|
|
224
221
|
}
|
|
225
222
|
|
|
226
223
|
class MakeOptimizedDeferredNamespaceObjectRuntimeModule extends HelperRuntimeModule {
|
|
224
|
+
/**
|
|
225
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
226
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
227
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
228
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
229
|
+
*/
|
|
230
|
+
shouldIsolate() {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
|
|
227
234
|
/**
|
|
228
235
|
* @param {boolean} hasAsyncRuntime if async module is used.
|
|
229
236
|
*/
|
|
@@ -293,6 +300,16 @@ class MakeOptimizedDeferredNamespaceObjectRuntimeModule extends HelperRuntimeMod
|
|
|
293
300
|
}
|
|
294
301
|
|
|
295
302
|
class MakeDeferredNamespaceObjectRuntimeModule extends HelperRuntimeModule {
|
|
303
|
+
/**
|
|
304
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
305
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
306
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
307
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
308
|
+
*/
|
|
309
|
+
shouldIsolate() {
|
|
310
|
+
return false;
|
|
311
|
+
}
|
|
312
|
+
|
|
296
313
|
/**
|
|
297
314
|
* @param {boolean} hasAsyncRuntime if async module is used.
|
|
298
315
|
*/
|
|
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
13
13
|
class MakeNamespaceObjectRuntimeModule extends HelperRuntimeModule {
|
|
14
14
|
constructor() {
|
|
15
15
|
super("make namespace object");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
20
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
21
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
22
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
23
|
+
*/
|
|
24
|
+
shouldIsolate() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
18
28
|
/**
|
|
19
29
|
* Generates runtime code for this runtime module.
|
|
20
30
|
* @returns {string | null} runtime code
|
|
@@ -23,14 +33,20 @@ class MakeNamespaceObjectRuntimeModule extends HelperRuntimeModule {
|
|
|
23
33
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
24
34
|
const { runtimeTemplate } = compilation;
|
|
25
35
|
const fn = RuntimeGlobals.makeNamespaceObject;
|
|
36
|
+
const toStringTag =
|
|
37
|
+
"Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });";
|
|
26
38
|
return Template.asString([
|
|
27
39
|
"// define __esModule on exports",
|
|
28
40
|
`${fn} = ${runtimeTemplate.basicFunction("exports", [
|
|
29
|
-
`
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
// `environment.symbol` promises the well-known symbols too, so only an
|
|
42
|
+
// environment without it needs the feature test around the tag.
|
|
43
|
+
...(runtimeTemplate.supportsSymbol()
|
|
44
|
+
? [toStringTag]
|
|
45
|
+
: [
|
|
46
|
+
"if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {",
|
|
47
|
+
Template.indent([toStringTag]),
|
|
48
|
+
"}"
|
|
49
|
+
]),
|
|
34
50
|
"Object.defineProperty(exports, '__esModule', { value: true });"
|
|
35
51
|
])};`
|
|
36
52
|
]);
|
|
@@ -13,6 +13,16 @@ class NonceRuntimeModule extends RuntimeModule {
|
|
|
13
13
|
super("nonce", RuntimeModule.STAGE_ATTACH);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
18
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
19
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
20
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
21
|
+
*/
|
|
22
|
+
shouldIsolate() {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
|
|
16
26
|
/**
|
|
17
27
|
* Generates runtime code for this runtime module.
|
|
18
28
|
* @returns {string | null} runtime code
|
|
@@ -8,7 +8,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
const Template = require("../Template");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
13
13
|
class OnChunksLoadedRuntimeModule extends RuntimeModule {
|
|
14
14
|
constructor() {
|
|
@@ -29,7 +29,7 @@ class OnChunksLoadedRuntimeModule extends RuntimeModule {
|
|
|
29
29
|
[
|
|
30
30
|
"if(chunkIds) {",
|
|
31
31
|
Template.indent([
|
|
32
|
-
"priority
|
|
32
|
+
`${runtimeTemplate.assignOr("priority", "0")};`,
|
|
33
33
|
"for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];",
|
|
34
34
|
"deferred[i] = [chunkIds, fn, priority];",
|
|
35
35
|
"return;"
|
|
@@ -45,7 +45,9 @@ class OnChunksLoadedRuntimeModule extends RuntimeModule {
|
|
|
45
45
|
`${runtimeTemplate.renderLet()} fulfilled = true;`,
|
|
46
46
|
"for (var j = 0; j < chunkIds.length; j++) {",
|
|
47
47
|
Template.indent([
|
|
48
|
-
|
|
48
|
+
// Parenthesized: `&` binds looser than `===`, so `priority & 1 === 0`
|
|
49
|
+
// is `priority & false` and gates every priority, not just the odd ones.
|
|
50
|
+
`if (((priority & 1) === 0 || notFulfilled >= priority) && Object.keys(${
|
|
49
51
|
RuntimeGlobals.onChunksLoaded
|
|
50
52
|
}).every(${runtimeTemplate.returningFunction(
|
|
51
53
|
`${RuntimeGlobals.onChunksLoaded}[key](chunkIds[j])`,
|
|
@@ -7,10 +7,20 @@
|
|
|
7
7
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
10
|
+
/** @import { PublicPath } from "../../declarations/WebpackOptions" */
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
13
13
|
class PublicPathRuntimeModule extends RuntimeModule {
|
|
14
|
+
/**
|
|
15
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
16
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
17
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
18
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
19
|
+
*/
|
|
20
|
+
shouldIsolate() {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
14
24
|
/**
|
|
15
25
|
* @param {PublicPath} publicPath public path
|
|
16
26
|
*/
|
|
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
13
13
|
class RelativeUrlRuntimeModule extends HelperRuntimeModule {
|
|
14
14
|
constructor() {
|
|
15
15
|
super("relative url");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
20
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
21
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
22
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
23
|
+
*/
|
|
24
|
+
shouldIsolate() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
18
28
|
/**
|
|
19
29
|
* Generates runtime code for this runtime module.
|
|
20
30
|
* @returns {string | null} runtime code
|
|
@@ -7,14 +7,24 @@
|
|
|
7
7
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
10
|
+
/** @import Chunk from "../Chunk" */
|
|
11
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
12
12
|
|
|
13
13
|
class RuntimeIdRuntimeModule extends RuntimeModule {
|
|
14
14
|
constructor() {
|
|
15
15
|
super("runtimeId");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
20
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
21
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
22
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
23
|
+
*/
|
|
24
|
+
shouldIsolate() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
18
28
|
/**
|
|
19
29
|
* Generates runtime code for this runtime module.
|
|
20
30
|
* @returns {string | null} runtime code
|
|
@@ -8,13 +8,23 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
11
|
+
/** @import Compilation from "../Compilation" */
|
|
12
12
|
|
|
13
13
|
class SetAnonymousDefaultNameRuntimeModule extends HelperRuntimeModule {
|
|
14
14
|
constructor() {
|
|
15
15
|
super("set anonymous default export name");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Returns true, if the runtime module should get it's own scope.
|
|
20
|
+
* When false, `generate()` must emit complete statements ending with `;`
|
|
21
|
+
* so a following runtime IIFE is not parsed as a call (ASI).
|
|
22
|
+
* @returns {boolean} true, if the runtime module should get it's own scope
|
|
23
|
+
*/
|
|
24
|
+
shouldIsolate() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
18
28
|
/**
|
|
19
29
|
* Generates runtime code for this runtime module.
|
|
20
30
|
* @returns {string | null} runtime code
|
|
@@ -5,12 +5,19 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
|
-
const
|
|
9
|
-
const StartupEntrypointRuntimeModule = require("./StartupEntrypointRuntimeModule");
|
|
8
|
+
const lazyModule = require("../util/lazyModule");
|
|
10
9
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
10
|
+
/** @import { ChunkLoadingType } from "../../declarations/WebpackOptions" */
|
|
11
|
+
/** @import Chunk from "../Chunk" */
|
|
12
|
+
/** @import Compiler from "../Compiler" */
|
|
13
|
+
|
|
14
|
+
// only a chunk with startup dependencies emits these
|
|
15
|
+
const getStartupChunkDependenciesRuntimeModule = lazyModule(() =>
|
|
16
|
+
require("./StartupChunkDependenciesRuntimeModule")
|
|
17
|
+
);
|
|
18
|
+
const getStartupEntrypointRuntimeModule = lazyModule(() =>
|
|
19
|
+
require("./StartupEntrypointRuntimeModule")
|
|
20
|
+
);
|
|
14
21
|
|
|
15
22
|
/**
|
|
16
23
|
* Options that describe which chunk loading backend should receive startup
|
|
@@ -74,9 +81,10 @@ class StartupChunkDependenciesPlugin {
|
|
|
74
81
|
set.add(RuntimeGlobals.startup);
|
|
75
82
|
set.add(RuntimeGlobals.ensureChunk);
|
|
76
83
|
set.add(RuntimeGlobals.ensureChunkIncludeEntries);
|
|
77
|
-
compilation.
|
|
84
|
+
compilation.addLazyRuntimeModule(
|
|
78
85
|
chunk,
|
|
79
|
-
|
|
86
|
+
getStartupChunkDependenciesRuntimeModule,
|
|
87
|
+
(Ctor) => new Ctor(this.asyncChunkLoading)
|
|
80
88
|
);
|
|
81
89
|
}
|
|
82
90
|
}
|
|
@@ -88,9 +96,10 @@ class StartupChunkDependenciesPlugin {
|
|
|
88
96
|
set.add(RuntimeGlobals.require);
|
|
89
97
|
set.add(RuntimeGlobals.ensureChunk);
|
|
90
98
|
set.add(RuntimeGlobals.ensureChunkIncludeEntries);
|
|
91
|
-
compilation.
|
|
99
|
+
compilation.addLazyRuntimeModule(
|
|
92
100
|
chunk,
|
|
93
|
-
|
|
101
|
+
getStartupEntrypointRuntimeModule,
|
|
102
|
+
(Ctor) => new Ctor(this.asyncChunkLoading)
|
|
94
103
|
);
|
|
95
104
|
});
|
|
96
105
|
});
|
|
@@ -9,9 +9,9 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
|
10
10
|
const Template = require("../Template");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
12
|
+
/** @import Chunk from "../Chunk" */
|
|
13
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
14
|
+
/** @import Compilation from "../Compilation" */
|
|
15
15
|
|
|
16
16
|
class StartupChunkDependenciesRuntimeModule extends RuntimeModule {
|
|
17
17
|
/**
|