webpack 5.59.0 → 5.94.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 +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
package/lib/ExternalModule.js
CHANGED
@@ -7,9 +7,11 @@
|
|
7
7
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
9
9
|
const ConcatenationScope = require("./ConcatenationScope");
|
10
|
+
const EnvironmentNotSupportAsyncWarning = require("./EnvironmentNotSupportAsyncWarning");
|
10
11
|
const { UsageState } = require("./ExportsInfo");
|
11
12
|
const InitFragment = require("./InitFragment");
|
12
13
|
const Module = require("./Module");
|
14
|
+
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
13
15
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
14
16
|
const Template = require("./Template");
|
15
17
|
const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
|
@@ -27,32 +29,46 @@ const { register } = require("./util/serialization");
|
|
27
29
|
/** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
|
28
30
|
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
|
29
31
|
/** @typedef {import("./ExportsInfo")} ExportsInfo */
|
32
|
+
/** @typedef {import("./Generator").GenerateContext} GenerateContext */
|
33
|
+
/** @typedef {import("./Module").BuildInfo} BuildInfo */
|
30
34
|
/** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
|
31
35
|
/** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */
|
32
36
|
/** @typedef {import("./Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
|
33
37
|
/** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
|
34
38
|
/** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
|
39
|
+
/** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
|
40
|
+
/** @typedef {import("./Module").SourceTypes} SourceTypes */
|
41
|
+
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
35
42
|
/** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
|
36
43
|
/** @typedef {import("./RequestShortener")} RequestShortener */
|
37
44
|
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
38
45
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
39
46
|
/** @typedef {import("./WebpackError")} WebpackError */
|
40
47
|
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
48
|
+
/** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
49
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
50
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
41
51
|
/** @typedef {import("./util/Hash")} Hash */
|
42
52
|
/** @typedef {typeof import("./util/Hash")} HashConstructor */
|
43
53
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
44
54
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
45
55
|
|
56
|
+
/** @typedef {{ attributes?: ImportAttributes, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
|
57
|
+
/** @typedef {{ layer?: string, supports?: string, media?: string }} CssImportDependencyMeta */
|
58
|
+
|
59
|
+
/** @typedef {ImportDependencyMeta | CssImportDependencyMeta} DependencyMeta */
|
60
|
+
|
46
61
|
/**
|
47
|
-
* @typedef {
|
62
|
+
* @typedef {object} SourceData
|
48
63
|
* @property {boolean=} iife
|
49
64
|
* @property {string=} init
|
50
65
|
* @property {string} expression
|
51
66
|
* @property {InitFragment<ChunkRenderContext>[]=} chunkInitFragments
|
52
|
-
* @property {
|
67
|
+
* @property {ReadOnlyRuntimeRequirements=} runtimeRequirements
|
53
68
|
*/
|
54
69
|
|
55
70
|
const TYPES = new Set(["javascript"]);
|
71
|
+
const CSS_TYPES = new Set(["css-import"]);
|
56
72
|
const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]);
|
57
73
|
const RUNTIME_REQUIREMENTS_FOR_SCRIPT = new Set([RuntimeGlobals.loadScript]);
|
58
74
|
const RUNTIME_REQUIREMENTS_FOR_MODULE = new Set([
|
@@ -100,12 +116,20 @@ const getSourceForCommonJsExternal = moduleAndSpecifiers => {
|
|
100
116
|
|
101
117
|
/**
|
102
118
|
* @param {string|string[]} moduleAndSpecifiers the module request
|
119
|
+
* @param {string} importMetaName import.meta name
|
120
|
+
* @param {boolean} needPrefix need to use `node:` prefix for `module` import
|
103
121
|
* @returns {SourceData} the generated source
|
104
122
|
*/
|
105
|
-
const getSourceForCommonJsExternalInNodeModule =
|
123
|
+
const getSourceForCommonJsExternalInNodeModule = (
|
124
|
+
moduleAndSpecifiers,
|
125
|
+
importMetaName,
|
126
|
+
needPrefix
|
127
|
+
) => {
|
106
128
|
const chunkInitFragments = [
|
107
129
|
new InitFragment(
|
108
|
-
|
130
|
+
`import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "${
|
131
|
+
needPrefix ? "node:" : ""
|
132
|
+
}module";\n`,
|
109
133
|
InitFragment.STAGE_HARMONY_IMPORTS,
|
110
134
|
0,
|
111
135
|
"external module node-commonjs"
|
@@ -113,61 +137,99 @@ const getSourceForCommonJsExternalInNodeModule = moduleAndSpecifiers => {
|
|
113
137
|
];
|
114
138
|
if (!Array.isArray(moduleAndSpecifiers)) {
|
115
139
|
return {
|
116
|
-
|
140
|
+
chunkInitFragments,
|
141
|
+
expression: `__WEBPACK_EXTERNAL_createRequire(${importMetaName}.url)(${JSON.stringify(
|
117
142
|
moduleAndSpecifiers
|
118
|
-
)})
|
119
|
-
chunkInitFragments
|
143
|
+
)})`
|
120
144
|
};
|
121
145
|
}
|
122
146
|
const moduleName = moduleAndSpecifiers[0];
|
123
147
|
return {
|
124
|
-
|
148
|
+
chunkInitFragments,
|
149
|
+
expression: `__WEBPACK_EXTERNAL_createRequire(${importMetaName}.url)(${JSON.stringify(
|
125
150
|
moduleName
|
126
|
-
)})${propertyAccess(moduleAndSpecifiers, 1)}
|
127
|
-
chunkInitFragments
|
151
|
+
)})${propertyAccess(moduleAndSpecifiers, 1)}`
|
128
152
|
};
|
129
153
|
};
|
130
154
|
|
131
155
|
/**
|
132
156
|
* @param {string|string[]} moduleAndSpecifiers the module request
|
133
157
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
158
|
+
* @param {ImportDependencyMeta=} dependencyMeta the dependency meta
|
134
159
|
* @returns {SourceData} the generated source
|
135
160
|
*/
|
136
|
-
const getSourceForImportExternal = (
|
161
|
+
const getSourceForImportExternal = (
|
162
|
+
moduleAndSpecifiers,
|
163
|
+
runtimeTemplate,
|
164
|
+
dependencyMeta
|
165
|
+
) => {
|
137
166
|
const importName = runtimeTemplate.outputOptions.importFunctionName;
|
138
|
-
if (
|
167
|
+
if (
|
168
|
+
!runtimeTemplate.supportsDynamicImport() &&
|
169
|
+
(importName === "import" || importName === "module-import")
|
170
|
+
) {
|
139
171
|
throw new Error(
|
140
172
|
"The target environment doesn't support 'import()' so it's not possible to use external type 'import'"
|
141
173
|
);
|
142
174
|
}
|
175
|
+
const attributes =
|
176
|
+
dependencyMeta && dependencyMeta.attributes
|
177
|
+
? dependencyMeta.attributes._isLegacyAssert
|
178
|
+
? `, { assert: ${JSON.stringify(
|
179
|
+
dependencyMeta.attributes,
|
180
|
+
importAssertionReplacer
|
181
|
+
)} }`
|
182
|
+
: `, { with: ${JSON.stringify(dependencyMeta.attributes)} }`
|
183
|
+
: "";
|
143
184
|
if (!Array.isArray(moduleAndSpecifiers)) {
|
144
185
|
return {
|
145
|
-
expression: `${importName}(${JSON.stringify(
|
186
|
+
expression: `${importName}(${JSON.stringify(
|
187
|
+
moduleAndSpecifiers
|
188
|
+
)}${attributes});`
|
146
189
|
};
|
147
190
|
}
|
148
191
|
if (moduleAndSpecifiers.length === 1) {
|
149
192
|
return {
|
150
|
-
expression: `${importName}(${JSON.stringify(
|
193
|
+
expression: `${importName}(${JSON.stringify(
|
194
|
+
moduleAndSpecifiers[0]
|
195
|
+
)}${attributes});`
|
151
196
|
};
|
152
197
|
}
|
153
198
|
const moduleName = moduleAndSpecifiers[0];
|
154
199
|
return {
|
155
200
|
expression: `${importName}(${JSON.stringify(
|
156
201
|
moduleName
|
157
|
-
)}).then(${runtimeTemplate.returningFunction(
|
202
|
+
)}${attributes}).then(${runtimeTemplate.returningFunction(
|
158
203
|
`module${propertyAccess(moduleAndSpecifiers, 1)}`,
|
159
204
|
"module"
|
160
205
|
)});`
|
161
206
|
};
|
162
207
|
};
|
163
208
|
|
209
|
+
/**
|
210
|
+
* @param {string} key key
|
211
|
+
* @param {any | undefined} value value
|
212
|
+
* @returns {undefined | string} replaced value
|
213
|
+
*/
|
214
|
+
const importAssertionReplacer = (key, value) => {
|
215
|
+
if (key === "_isLegacyAssert") {
|
216
|
+
return;
|
217
|
+
}
|
218
|
+
|
219
|
+
return value;
|
220
|
+
};
|
221
|
+
|
222
|
+
/**
|
223
|
+
* @extends {InitFragment<ChunkRenderContext>}
|
224
|
+
*/
|
164
225
|
class ModuleExternalInitFragment extends InitFragment {
|
165
226
|
/**
|
166
227
|
* @param {string} request import source
|
167
228
|
* @param {string=} ident recomputed ident
|
229
|
+
* @param {ImportDependencyMeta=} dependencyMeta the dependency meta
|
168
230
|
* @param {string | HashConstructor=} hashFunction the hash function to use
|
169
231
|
*/
|
170
|
-
constructor(request, ident, hashFunction = "md4") {
|
232
|
+
constructor(request, ident, dependencyMeta, hashFunction = "md4") {
|
171
233
|
if (ident === undefined) {
|
172
234
|
ident = Template.toIdentifier(request);
|
173
235
|
if (ident !== request) {
|
@@ -179,14 +241,24 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
179
241
|
}
|
180
242
|
const identifier = `__WEBPACK_EXTERNAL_MODULE_${ident}__`;
|
181
243
|
super(
|
182
|
-
`import * as ${identifier} from ${JSON.stringify(request)}
|
244
|
+
`import * as ${identifier} from ${JSON.stringify(request)}${
|
245
|
+
dependencyMeta && dependencyMeta.attributes
|
246
|
+
? dependencyMeta.attributes._isLegacyAssert
|
247
|
+
? ` assert ${JSON.stringify(
|
248
|
+
dependencyMeta.attributes,
|
249
|
+
importAssertionReplacer
|
250
|
+
)}`
|
251
|
+
: ` with ${JSON.stringify(dependencyMeta.attributes)}`
|
252
|
+
: ""
|
253
|
+
};\n`,
|
183
254
|
InitFragment.STAGE_HARMONY_IMPORTS,
|
184
255
|
0,
|
185
256
|
`external module import ${ident}`
|
186
257
|
);
|
187
258
|
this._ident = ident;
|
188
|
-
this._identifier = identifier;
|
189
259
|
this._request = request;
|
260
|
+
this._dependencyMeta = request;
|
261
|
+
this._identifier = identifier;
|
190
262
|
}
|
191
263
|
|
192
264
|
getNamespaceIdentifier() {
|
@@ -202,14 +274,27 @@ register(
|
|
202
274
|
serialize(obj, { write }) {
|
203
275
|
write(obj._request);
|
204
276
|
write(obj._ident);
|
277
|
+
write(obj._dependencyMeta);
|
205
278
|
},
|
206
279
|
deserialize({ read }) {
|
207
|
-
return new ModuleExternalInitFragment(read(), read());
|
280
|
+
return new ModuleExternalInitFragment(read(), read(), read());
|
208
281
|
}
|
209
282
|
}
|
210
283
|
);
|
211
284
|
|
212
|
-
|
285
|
+
/**
|
286
|
+
* @param {string} input input
|
287
|
+
* @param {ExportsInfo} exportsInfo the exports info
|
288
|
+
* @param {RuntimeSpec=} runtime the runtime
|
289
|
+
* @param {RuntimeTemplate=} runtimeTemplate the runtime template
|
290
|
+
* @returns {string | undefined} the module remapping
|
291
|
+
*/
|
292
|
+
const generateModuleRemapping = (
|
293
|
+
input,
|
294
|
+
exportsInfo,
|
295
|
+
runtime,
|
296
|
+
runtimeTemplate
|
297
|
+
) => {
|
213
298
|
if (exportsInfo.otherExportsInfo.getUsed(runtime) === UsageState.Unused) {
|
214
299
|
const properties = [];
|
215
300
|
for (const exportInfo of exportsInfo.orderedExports) {
|
@@ -227,9 +312,11 @@ const generateModuleRemapping = (input, exportsInfo, runtime) => {
|
|
227
312
|
}
|
228
313
|
}
|
229
314
|
properties.push(
|
230
|
-
`[${JSON.stringify(used)}]:
|
231
|
-
|
232
|
-
|
315
|
+
`[${JSON.stringify(used)}]: ${
|
316
|
+
/** @type {RuntimeTemplate} */ (runtimeTemplate).returningFunction(
|
317
|
+
`${input}${propertyAccess([exportInfo.name])}`
|
318
|
+
)
|
319
|
+
}`
|
233
320
|
);
|
234
321
|
}
|
235
322
|
return `x({ ${properties.join(", ")} })`;
|
@@ -240,21 +327,24 @@ const generateModuleRemapping = (input, exportsInfo, runtime) => {
|
|
240
327
|
* @param {string|string[]} moduleAndSpecifiers the module request
|
241
328
|
* @param {ExportsInfo} exportsInfo exports info of this module
|
242
329
|
* @param {RuntimeSpec} runtime the runtime
|
243
|
-
* @param {
|
330
|
+
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
331
|
+
* @param {ImportDependencyMeta} dependencyMeta the dependency meta
|
244
332
|
* @returns {SourceData} the generated source
|
245
333
|
*/
|
246
334
|
const getSourceForModuleExternal = (
|
247
335
|
moduleAndSpecifiers,
|
248
336
|
exportsInfo,
|
249
337
|
runtime,
|
250
|
-
|
338
|
+
runtimeTemplate,
|
339
|
+
dependencyMeta
|
251
340
|
) => {
|
252
341
|
if (!Array.isArray(moduleAndSpecifiers))
|
253
342
|
moduleAndSpecifiers = [moduleAndSpecifiers];
|
254
343
|
const initFragment = new ModuleExternalInitFragment(
|
255
344
|
moduleAndSpecifiers[0],
|
256
345
|
undefined,
|
257
|
-
|
346
|
+
dependencyMeta,
|
347
|
+
runtimeTemplate.outputOptions.hashFunction
|
258
348
|
);
|
259
349
|
const baseAccess = `${initFragment.getNamespaceIdentifier()}${propertyAccess(
|
260
350
|
moduleAndSpecifiers,
|
@@ -263,12 +353,21 @@ const getSourceForModuleExternal = (
|
|
263
353
|
const moduleRemapping = generateModuleRemapping(
|
264
354
|
baseAccess,
|
265
355
|
exportsInfo,
|
266
|
-
runtime
|
356
|
+
runtime,
|
357
|
+
runtimeTemplate
|
267
358
|
);
|
268
|
-
|
359
|
+
const expression = moduleRemapping || baseAccess;
|
269
360
|
return {
|
270
361
|
expression,
|
271
|
-
init:
|
362
|
+
init: moduleRemapping
|
363
|
+
? `var x = ${runtimeTemplate.basicFunction(
|
364
|
+
"y",
|
365
|
+
`var x = {}; ${RuntimeGlobals.definePropertyGetters}(x, y); return x`
|
366
|
+
)} \nvar y = ${runtimeTemplate.returningFunction(
|
367
|
+
runtimeTemplate.returningFunction("x"),
|
368
|
+
"x"
|
369
|
+
)}`
|
370
|
+
: undefined,
|
272
371
|
runtimeRequirements: moduleRemapping
|
273
372
|
? RUNTIME_REQUIREMENTS_FOR_MODULE
|
274
373
|
: undefined,
|
@@ -319,11 +418,10 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
|
|
319
418
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
320
419
|
* @returns {string} the generated source
|
321
420
|
*/
|
322
|
-
const checkExternalVariable = (variableName, request, runtimeTemplate) =>
|
323
|
-
|
421
|
+
const checkExternalVariable = (variableName, request, runtimeTemplate) =>
|
422
|
+
`if(typeof ${variableName} === 'undefined') { ${runtimeTemplate.throwMissingModuleErrorBlock(
|
324
423
|
{ request }
|
325
424
|
)} }\n`;
|
326
|
-
};
|
327
425
|
|
328
426
|
/**
|
329
427
|
* @param {string|number} id the module id
|
@@ -347,7 +445,7 @@ const getSourceForAmdOrUmdExternal = (
|
|
347
445
|
externalVariable,
|
348
446
|
Array.isArray(request) ? request.join(".") : request,
|
349
447
|
runtimeTemplate
|
350
|
-
|
448
|
+
)
|
351
449
|
: undefined,
|
352
450
|
expression: externalVariable
|
353
451
|
};
|
@@ -375,9 +473,17 @@ const getSourceForDefaultCase = (optional, request, runtimeTemplate) => {
|
|
375
473
|
};
|
376
474
|
};
|
377
475
|
|
476
|
+
/** @typedef {Record<string, string | string[]>} RequestRecord */
|
477
|
+
|
378
478
|
class ExternalModule extends Module {
|
379
|
-
|
380
|
-
|
479
|
+
/**
|
480
|
+
* @param {string | string[] | RequestRecord} request request
|
481
|
+
* @param {string} type type
|
482
|
+
* @param {string} userRequest user request
|
483
|
+
* @param {DependencyMeta=} dependencyMeta dependency meta
|
484
|
+
*/
|
485
|
+
constructor(request, type, userRequest, dependencyMeta) {
|
486
|
+
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
381
487
|
|
382
488
|
// Info from Factory
|
383
489
|
/** @type {string | string[] | Record<string, string | string[]>} */
|
@@ -386,13 +492,15 @@ class ExternalModule extends Module {
|
|
386
492
|
this.externalType = type;
|
387
493
|
/** @type {string} */
|
388
494
|
this.userRequest = userRequest;
|
495
|
+
/** @type {DependencyMeta=} */
|
496
|
+
this.dependencyMeta = dependencyMeta;
|
389
497
|
}
|
390
498
|
|
391
499
|
/**
|
392
|
-
* @returns {
|
500
|
+
* @returns {SourceTypes} types available (do not mutate)
|
393
501
|
*/
|
394
502
|
getSourceTypes() {
|
395
|
-
return TYPES;
|
503
|
+
return this.externalType === "css-import" ? CSS_TYPES : TYPES;
|
396
504
|
}
|
397
505
|
|
398
506
|
/**
|
@@ -409,7 +517,9 @@ class ExternalModule extends Module {
|
|
409
517
|
* @returns {boolean} true, if the chunk is ok for the module
|
410
518
|
*/
|
411
519
|
chunkCondition(chunk, { chunkGraph }) {
|
412
|
-
return
|
520
|
+
return this.externalType === "css-import"
|
521
|
+
? true
|
522
|
+
: chunkGraph.getNumberOfEntryModules(chunk) > 0;
|
413
523
|
}
|
414
524
|
|
415
525
|
/**
|
@@ -424,18 +534,37 @@ class ExternalModule extends Module {
|
|
424
534
|
* @returns {string} a user readable identifier of the module
|
425
535
|
*/
|
426
536
|
readableIdentifier(requestShortener) {
|
427
|
-
return
|
537
|
+
return `external ${JSON.stringify(this.request)}`;
|
428
538
|
}
|
429
539
|
|
430
540
|
/**
|
431
541
|
* @param {NeedBuildContext} context context info
|
432
|
-
* @param {function(WebpackError=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
542
|
+
* @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
433
543
|
* @returns {void}
|
434
544
|
*/
|
435
545
|
needBuild(context, callback) {
|
436
546
|
return callback(null, !this.buildMeta);
|
437
547
|
}
|
438
548
|
|
549
|
+
/**
|
550
|
+
* @param {string} externalType raw external type
|
551
|
+
* @returns {string} resolved external type
|
552
|
+
*/
|
553
|
+
getModuleImportType(externalType) {
|
554
|
+
if (externalType === "module-import") {
|
555
|
+
if (
|
556
|
+
this.dependencyMeta &&
|
557
|
+
/** @type {ImportDependencyMeta} */ (this.dependencyMeta).externalType
|
558
|
+
) {
|
559
|
+
return /** @type {ImportDependencyMeta} */ (this.dependencyMeta)
|
560
|
+
.externalType;
|
561
|
+
}
|
562
|
+
return "module";
|
563
|
+
}
|
564
|
+
|
565
|
+
return externalType;
|
566
|
+
}
|
567
|
+
|
439
568
|
/**
|
440
569
|
* @param {WebpackOptions} options webpack options
|
441
570
|
* @param {Compilation} compilation the compilation
|
@@ -468,36 +597,71 @@ class ExternalModule extends Module {
|
|
468
597
|
canMangle = true;
|
469
598
|
}
|
470
599
|
break;
|
600
|
+
case "script":
|
601
|
+
this.buildMeta.async = true;
|
602
|
+
EnvironmentNotSupportAsyncWarning.check(
|
603
|
+
this,
|
604
|
+
compilation.runtimeTemplate,
|
605
|
+
"external script"
|
606
|
+
);
|
607
|
+
break;
|
608
|
+
case "promise":
|
609
|
+
this.buildMeta.async = true;
|
610
|
+
EnvironmentNotSupportAsyncWarning.check(
|
611
|
+
this,
|
612
|
+
compilation.runtimeTemplate,
|
613
|
+
"external promise"
|
614
|
+
);
|
615
|
+
break;
|
471
616
|
case "module":
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
617
|
+
case "import":
|
618
|
+
case "module-import": {
|
619
|
+
const type = this.getModuleImportType(externalType);
|
620
|
+
if (type === "module") {
|
621
|
+
if (this.buildInfo.module) {
|
622
|
+
if (!Array.isArray(request) || request.length === 1) {
|
623
|
+
this.buildMeta.exportsType = "namespace";
|
624
|
+
canMangle = true;
|
625
|
+
}
|
626
|
+
} else {
|
627
|
+
this.buildMeta.async = true;
|
628
|
+
EnvironmentNotSupportAsyncWarning.check(
|
629
|
+
this,
|
630
|
+
compilation.runtimeTemplate,
|
631
|
+
"external module"
|
632
|
+
);
|
633
|
+
if (!Array.isArray(request) || request.length === 1) {
|
634
|
+
this.buildMeta.exportsType = "namespace";
|
635
|
+
canMangle = false;
|
636
|
+
}
|
476
637
|
}
|
477
|
-
}
|
638
|
+
}
|
639
|
+
|
640
|
+
if (type === "import") {
|
478
641
|
this.buildMeta.async = true;
|
642
|
+
EnvironmentNotSupportAsyncWarning.check(
|
643
|
+
this,
|
644
|
+
compilation.runtimeTemplate,
|
645
|
+
"external import"
|
646
|
+
);
|
479
647
|
if (!Array.isArray(request) || request.length === 1) {
|
480
648
|
this.buildMeta.exportsType = "namespace";
|
481
649
|
canMangle = false;
|
482
650
|
}
|
483
651
|
}
|
652
|
+
|
484
653
|
break;
|
485
|
-
|
486
|
-
case "promise":
|
487
|
-
this.buildMeta.async = true;
|
488
|
-
break;
|
489
|
-
case "import":
|
490
|
-
this.buildMeta.async = true;
|
491
|
-
if (!Array.isArray(request) || request.length === 1) {
|
492
|
-
this.buildMeta.exportsType = "namespace";
|
493
|
-
canMangle = false;
|
494
|
-
}
|
495
|
-
break;
|
654
|
+
}
|
496
655
|
}
|
497
656
|
this.addDependency(new StaticExportsDependency(true, canMangle));
|
498
657
|
callback();
|
499
658
|
}
|
500
659
|
|
660
|
+
/**
|
661
|
+
* restore unsafe cache data
|
662
|
+
* @param {object} unsafeCacheData data from getUnsafeCacheData
|
663
|
+
* @param {NormalModuleFactory} normalModuleFactory the normal module factory handling the unsafe caching
|
664
|
+
*/
|
501
665
|
restoreFromUnsafeCache(unsafeCacheData, normalModuleFactory) {
|
502
666
|
this._restoreFromUnsafeCache(unsafeCacheData, normalModuleFactory);
|
503
667
|
}
|
@@ -526,8 +690,26 @@ class ExternalModule extends Module {
|
|
526
690
|
return { request, externalType };
|
527
691
|
}
|
528
692
|
|
529
|
-
|
530
|
-
|
693
|
+
/**
|
694
|
+
* @private
|
695
|
+
* @param {string | string[]} request request
|
696
|
+
* @param {string} externalType the external type
|
697
|
+
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
698
|
+
* @param {ModuleGraph} moduleGraph the module graph
|
699
|
+
* @param {ChunkGraph} chunkGraph the chunk graph
|
700
|
+
* @param {RuntimeSpec} runtime the runtime
|
701
|
+
* @param {DependencyMeta | undefined} dependencyMeta the dependency meta
|
702
|
+
* @returns {SourceData} the source data
|
703
|
+
*/
|
704
|
+
_getSourceData(
|
705
|
+
request,
|
706
|
+
externalType,
|
707
|
+
runtimeTemplate,
|
708
|
+
moduleGraph,
|
709
|
+
chunkGraph,
|
710
|
+
runtime,
|
711
|
+
dependencyMeta
|
712
|
+
) {
|
531
713
|
switch (externalType) {
|
532
714
|
case "this":
|
533
715
|
case "window":
|
@@ -536,15 +718,22 @@ class ExternalModule extends Module {
|
|
536
718
|
case "global":
|
537
719
|
return getSourceForGlobalVariableExternal(
|
538
720
|
request,
|
539
|
-
runtimeTemplate.
|
721
|
+
runtimeTemplate.globalObject
|
540
722
|
);
|
541
723
|
case "commonjs":
|
542
724
|
case "commonjs2":
|
543
725
|
case "commonjs-module":
|
726
|
+
case "commonjs-static":
|
544
727
|
return getSourceForCommonJsExternal(request);
|
545
728
|
case "node-commonjs":
|
546
|
-
return this.buildInfo.module
|
547
|
-
? getSourceForCommonJsExternalInNodeModule(
|
729
|
+
return /** @type {BuildInfo} */ (this.buildInfo).module
|
730
|
+
? getSourceForCommonJsExternalInNodeModule(
|
731
|
+
request,
|
732
|
+
/** @type {string} */
|
733
|
+
(runtimeTemplate.outputOptions.importMetaName),
|
734
|
+
/** @type {boolean} */
|
735
|
+
(runtimeTemplate.supportNodePrefixForCoreModules())
|
736
|
+
)
|
548
737
|
: getSourceForCommonJsExternal(request);
|
549
738
|
case "amd":
|
550
739
|
case "amd-require":
|
@@ -560,33 +749,52 @@ class ExternalModule extends Module {
|
|
560
749
|
runtimeTemplate
|
561
750
|
);
|
562
751
|
}
|
563
|
-
case "import":
|
564
|
-
return getSourceForImportExternal(request, runtimeTemplate);
|
565
752
|
case "script":
|
566
753
|
return getSourceForScriptExternal(request, runtimeTemplate);
|
567
|
-
case "module":
|
568
|
-
|
569
|
-
|
754
|
+
case "module":
|
755
|
+
case "import":
|
756
|
+
case "module-import": {
|
757
|
+
const type = this.getModuleImportType(externalType);
|
758
|
+
if (type === "import") {
|
759
|
+
return getSourceForImportExternal(
|
760
|
+
request,
|
761
|
+
runtimeTemplate,
|
762
|
+
/** @type {ImportDependencyMeta} */ (dependencyMeta)
|
763
|
+
);
|
764
|
+
}
|
765
|
+
|
766
|
+
if (type === "module") {
|
767
|
+
if (!(/** @type {BuildInfo} */ (this.buildInfo).module)) {
|
768
|
+
if (!runtimeTemplate.supportsDynamicImport()) {
|
769
|
+
throw new Error(
|
770
|
+
`The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${
|
771
|
+
runtimeTemplate.supportsEcmaScriptModuleSyntax()
|
772
|
+
? "\nDid you mean to build a EcmaScript Module ('output.module: true')?"
|
773
|
+
: ""
|
774
|
+
}`
|
775
|
+
);
|
776
|
+
}
|
777
|
+
return getSourceForImportExternal(
|
778
|
+
request,
|
779
|
+
runtimeTemplate,
|
780
|
+
/** @type {ImportDependencyMeta} */ (dependencyMeta)
|
781
|
+
);
|
782
|
+
}
|
783
|
+
if (!runtimeTemplate.supportsEcmaScriptModuleSyntax()) {
|
570
784
|
throw new Error(
|
571
|
-
"The target environment doesn't support
|
572
|
-
(runtimeTemplate.supportsEcmaScriptModuleSyntax()
|
573
|
-
? "\nDid you mean to build a EcmaScript Module ('output.module: true')?"
|
574
|
-
: "")
|
785
|
+
"The target environment doesn't support EcmaScriptModule syntax so it's not possible to use external type 'module'"
|
575
786
|
);
|
576
787
|
}
|
577
|
-
return
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
788
|
+
return getSourceForModuleExternal(
|
789
|
+
request,
|
790
|
+
moduleGraph.getExportsInfo(this),
|
791
|
+
runtime,
|
792
|
+
runtimeTemplate,
|
793
|
+
/** @type {ImportDependencyMeta} */ (dependencyMeta)
|
582
794
|
);
|
583
795
|
}
|
584
|
-
|
585
|
-
|
586
|
-
moduleGraph.getExportsInfo(this),
|
587
|
-
runtime,
|
588
|
-
runtimeTemplate.outputOptions.hashFunction
|
589
|
-
);
|
796
|
+
|
797
|
+
break;
|
590
798
|
}
|
591
799
|
case "var":
|
592
800
|
case "promise":
|
@@ -613,60 +821,106 @@ class ExternalModule extends Module {
|
|
613
821
|
runtime,
|
614
822
|
concatenationScope
|
615
823
|
}) {
|
616
|
-
const
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
824
|
+
const { request, externalType } = this._getRequestAndExternalType();
|
825
|
+
switch (externalType) {
|
826
|
+
case "asset": {
|
827
|
+
const sources = new Map();
|
828
|
+
sources.set(
|
829
|
+
"javascript",
|
830
|
+
new RawSource(`module.exports = ${JSON.stringify(request)};`)
|
831
|
+
);
|
832
|
+
const data = new Map();
|
833
|
+
data.set("url", request);
|
834
|
+
return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data };
|
835
|
+
}
|
836
|
+
case "css-import": {
|
837
|
+
const sources = new Map();
|
838
|
+
const dependencyMeta = /** @type {CssImportDependencyMeta} */ (
|
839
|
+
this.dependencyMeta
|
840
|
+
);
|
841
|
+
const layer =
|
842
|
+
dependencyMeta.layer !== undefined
|
843
|
+
? ` layer(${dependencyMeta.layer})`
|
844
|
+
: "";
|
845
|
+
const supports = dependencyMeta.supports
|
846
|
+
? ` supports(${dependencyMeta.supports})`
|
847
|
+
: "";
|
848
|
+
const media = dependencyMeta.media ? ` ${dependencyMeta.media}` : "";
|
849
|
+
sources.set(
|
850
|
+
"css-import",
|
851
|
+
new RawSource(
|
852
|
+
`@import url(${JSON.stringify(
|
853
|
+
request
|
854
|
+
)})${layer}${supports}${media};`
|
855
|
+
)
|
856
|
+
);
|
857
|
+
return {
|
858
|
+
sources,
|
859
|
+
runtimeRequirements: EMPTY_RUNTIME_REQUIREMENTS
|
860
|
+
};
|
861
|
+
}
|
862
|
+
default: {
|
863
|
+
const sourceData = this._getSourceData(
|
864
|
+
request,
|
865
|
+
externalType,
|
866
|
+
runtimeTemplate,
|
867
|
+
moduleGraph,
|
868
|
+
chunkGraph,
|
869
|
+
runtime,
|
870
|
+
this.dependencyMeta
|
871
|
+
);
|
622
872
|
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
873
|
+
let sourceString = sourceData.expression;
|
874
|
+
if (sourceData.iife)
|
875
|
+
sourceString = `(function() { return ${sourceString}; }())`;
|
876
|
+
if (concatenationScope) {
|
877
|
+
sourceString = `${
|
878
|
+
runtimeTemplate.supportsConst() ? "const" : "var"
|
879
|
+
} ${ConcatenationScope.NAMESPACE_OBJECT_EXPORT} = ${sourceString};`;
|
880
|
+
concatenationScope.registerNamespaceExport(
|
881
|
+
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
882
|
+
);
|
883
|
+
} else {
|
884
|
+
sourceString = `module.exports = ${sourceString};`;
|
885
|
+
}
|
886
|
+
if (sourceData.init)
|
887
|
+
sourceString = `${sourceData.init}\n${sourceString}`;
|
637
888
|
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
889
|
+
let data;
|
890
|
+
if (sourceData.chunkInitFragments) {
|
891
|
+
data = new Map();
|
892
|
+
data.set("chunkInitFragments", sourceData.chunkInitFragments);
|
893
|
+
}
|
643
894
|
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
895
|
+
const sources = new Map();
|
896
|
+
if (this.useSourceMap || this.useSimpleSourceMap) {
|
897
|
+
sources.set(
|
898
|
+
"javascript",
|
899
|
+
new OriginalSource(sourceString, this.identifier())
|
900
|
+
);
|
901
|
+
} else {
|
902
|
+
sources.set("javascript", new RawSource(sourceString));
|
903
|
+
}
|
904
|
+
|
905
|
+
let runtimeRequirements = sourceData.runtimeRequirements;
|
906
|
+
if (!concatenationScope) {
|
907
|
+
if (!runtimeRequirements) {
|
908
|
+
runtimeRequirements = RUNTIME_REQUIREMENTS;
|
909
|
+
} else {
|
910
|
+
const set = new Set(runtimeRequirements);
|
911
|
+
set.add(RuntimeGlobals.module);
|
912
|
+
runtimeRequirements = set;
|
913
|
+
}
|
914
|
+
}
|
653
915
|
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
set.add(RuntimeGlobals.module);
|
661
|
-
runtimeRequirements = set;
|
916
|
+
return {
|
917
|
+
sources,
|
918
|
+
runtimeRequirements:
|
919
|
+
runtimeRequirements || EMPTY_RUNTIME_REQUIREMENTS,
|
920
|
+
data
|
921
|
+
};
|
662
922
|
}
|
663
923
|
}
|
664
|
-
|
665
|
-
return {
|
666
|
-
sources,
|
667
|
-
runtimeRequirements: runtimeRequirements || EMPTY_RUNTIME_REQUIREMENTS,
|
668
|
-
data
|
669
|
-
};
|
670
924
|
}
|
671
925
|
|
672
926
|
/**
|
@@ -692,22 +946,30 @@ class ExternalModule extends Module {
|
|
692
946
|
super.updateHash(hash, context);
|
693
947
|
}
|
694
948
|
|
949
|
+
/**
|
950
|
+
* @param {ObjectSerializerContext} context context
|
951
|
+
*/
|
695
952
|
serialize(context) {
|
696
953
|
const { write } = context;
|
697
954
|
|
698
955
|
write(this.request);
|
699
956
|
write(this.externalType);
|
700
957
|
write(this.userRequest);
|
958
|
+
write(this.dependencyMeta);
|
701
959
|
|
702
960
|
super.serialize(context);
|
703
961
|
}
|
704
962
|
|
963
|
+
/**
|
964
|
+
* @param {ObjectDeserializerContext} context context
|
965
|
+
*/
|
705
966
|
deserialize(context) {
|
706
967
|
const { read } = context;
|
707
968
|
|
708
969
|
this.request = read();
|
709
970
|
this.externalType = read();
|
710
971
|
this.userRequest = read();
|
972
|
+
this.dependencyMeta = read();
|
711
973
|
|
712
974
|
super.deserialize(context);
|
713
975
|
}
|