@depup/webpack 5.106.1-depup.0 → 5.109.2-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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- 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 +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/ExternalModule.js
CHANGED
|
@@ -8,22 +8,27 @@
|
|
|
8
8
|
const { SyncBailHook } = require("tapable");
|
|
9
9
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
|
10
10
|
const ConcatenationScope = require("./ConcatenationScope");
|
|
11
|
-
const EnvironmentNotSupportAsyncWarning = require("./EnvironmentNotSupportAsyncWarning");
|
|
12
11
|
const { UsageState } = require("./ExportsInfo");
|
|
13
12
|
const InitFragment = require("./InitFragment");
|
|
14
13
|
const Module = require("./Module");
|
|
15
14
|
const {
|
|
15
|
+
ASSET_URL_TYPE,
|
|
16
|
+
ASSET_URL_TYPES,
|
|
16
17
|
CSS_IMPORT_TYPES,
|
|
17
|
-
CSS_URL_TYPES,
|
|
18
18
|
JAVASCRIPT_TYPE,
|
|
19
19
|
JAVASCRIPT_TYPES
|
|
20
20
|
} = require("./ModuleSourceTypeConstants");
|
|
21
21
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
|
22
22
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
23
23
|
const Template = require("./Template");
|
|
24
|
+
const WebpackError = require("./WebpackError");
|
|
24
25
|
const { DEFAULTS } = require("./config/defaults");
|
|
26
|
+
const { ImportPhaseUtils } = require("./dependencies/ImportPhase");
|
|
25
27
|
const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
|
|
28
|
+
const EnvironmentNotSupportAsyncWarning = require("./errors/EnvironmentNotSupportAsyncWarning");
|
|
29
|
+
const { coreModules } = require("./node/nodeBuiltins");
|
|
26
30
|
const createHash = require("./util/createHash");
|
|
31
|
+
const createHooksRegistry = require("./util/createHooksRegistry");
|
|
27
32
|
const extractUrlAndGlobal = require("./util/extractUrlAndGlobal");
|
|
28
33
|
const makeSerializable = require("./util/makeSerializable");
|
|
29
34
|
const { propertyAccess } = require("./util/property");
|
|
@@ -62,19 +67,22 @@ const { register } = require("./util/serialization");
|
|
|
62
67
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
63
68
|
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
|
64
69
|
/** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
65
|
-
/** @typedef {import("./
|
|
66
|
-
/** @typedef {import("
|
|
70
|
+
/** @typedef {import("./dependencies/ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
71
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemInterop} ExternalInterop */
|
|
72
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext<[ExternalModuleRequest, ExternalsType, string, DependencyMeta | undefined, ExternalInterop | undefined]>} ObjectDeserializerContext */
|
|
73
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext<[ExternalModuleRequest, ExternalsType, string, DependencyMeta | undefined, ExternalInterop | undefined]>} ObjectSerializerContext */
|
|
67
74
|
/** @typedef {import("./util/Hash")} Hash */
|
|
68
75
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
69
76
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
70
77
|
|
|
71
|
-
/** @typedef {{ attributes?: ImportAttributes, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
|
|
78
|
+
/** @typedef {{ attributes?: ImportAttributes, phase?: ImportPhaseType, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
|
|
72
79
|
/** @typedef {{ layer?: string, supports?: string, media?: string }} CssImportDependencyMeta */
|
|
73
|
-
/** @typedef {{ sourceType: "css-url" }} AssetDependencyMeta */
|
|
80
|
+
/** @typedef {{ sourceType: "asset-url" | "css-url" }} AssetDependencyMeta */
|
|
74
81
|
|
|
75
82
|
/** @typedef {ImportDependencyMeta | CssImportDependencyMeta | AssetDependencyMeta} DependencyMeta */
|
|
76
83
|
|
|
77
84
|
/**
|
|
85
|
+
* Defines the source data type used by this module.
|
|
78
86
|
* @typedef {object} SourceData
|
|
79
87
|
* @property {boolean=} iife
|
|
80
88
|
* @property {string=} init
|
|
@@ -97,7 +105,68 @@ const RUNTIME_REQUIREMENTS_FOR_MODULE = new Set([
|
|
|
97
105
|
/** @type {RuntimeRequirements} */
|
|
98
106
|
const EMPTY_RUNTIME_REQUIREMENTS = new Set();
|
|
99
107
|
|
|
108
|
+
const NODE_PREFIX = "node:";
|
|
109
|
+
|
|
110
|
+
// externals of these types are wired by the library wrapper, which does its own per-key lookup on object externals
|
|
111
|
+
const LIBRARY_WIRED_EXTERNAL_TYPES = new Set([
|
|
112
|
+
"amd",
|
|
113
|
+
"amd-require",
|
|
114
|
+
"umd",
|
|
115
|
+
"umd2",
|
|
116
|
+
"system",
|
|
117
|
+
"jsonp"
|
|
118
|
+
]);
|
|
119
|
+
// External types that emit a node.js-resolvable specifier (`require`/`import`).
|
|
120
|
+
const NODE_RESOLVING_EXTERNAL_TYPES = new Set([
|
|
121
|
+
"commonjs",
|
|
122
|
+
"commonjs2",
|
|
123
|
+
"commonjs-module",
|
|
124
|
+
"commonjs-static",
|
|
125
|
+
"node-commonjs",
|
|
126
|
+
"import",
|
|
127
|
+
"module"
|
|
128
|
+
]);
|
|
129
|
+
|
|
100
130
|
/**
|
|
131
|
+
* Normalizes a node.js core module specifier for the target. Strips `node:`
|
|
132
|
+
* when the target can't resolve a prefixed request, adds `node:` for a universal
|
|
133
|
+
* bundle (which may run on deno/bun where the prefix is required), and otherwise
|
|
134
|
+
* keeps the author's original notation.
|
|
135
|
+
* @param {string | string[]} request the external request
|
|
136
|
+
* @param {ExternalsType} externalType the resolved external type
|
|
137
|
+
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
138
|
+
* @returns {string | string[]} the normalized request
|
|
139
|
+
*/
|
|
140
|
+
const normalizeNodeCoreModuleRequest = (
|
|
141
|
+
request,
|
|
142
|
+
externalType,
|
|
143
|
+
runtimeTemplate
|
|
144
|
+
) => {
|
|
145
|
+
if (!NODE_RESOLVING_EXTERNAL_TYPES.has(externalType)) return request;
|
|
146
|
+
const name = Array.isArray(request) ? request[0] : request;
|
|
147
|
+
if (typeof name !== "string") return request;
|
|
148
|
+
/**
|
|
149
|
+
* @param {string} next replacement specifier
|
|
150
|
+
* @returns {string | string[]} request with the specifier swapped
|
|
151
|
+
*/
|
|
152
|
+
const withName = (next) =>
|
|
153
|
+
Array.isArray(request) ? [next, ...request.slice(1)] : next;
|
|
154
|
+
|
|
155
|
+
if (
|
|
156
|
+
runtimeTemplate.outputOptions.environment.nodePrefixForCoreModules === false
|
|
157
|
+
) {
|
|
158
|
+
if (!name.startsWith(NODE_PREFIX)) return request;
|
|
159
|
+
const stripped = name.slice(NODE_PREFIX.length);
|
|
160
|
+
return coreModules.has(stripped) ? withName(stripped) : request;
|
|
161
|
+
}
|
|
162
|
+
if (runtimeTemplate.isUniversalTarget() && !name.startsWith(NODE_PREFIX)) {
|
|
163
|
+
return coreModules.has(name) ? withName(NODE_PREFIX + name) : request;
|
|
164
|
+
}
|
|
165
|
+
return request;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Gets source for global variable external.
|
|
101
170
|
* @param {string | string[]} variableName the variable name or path
|
|
102
171
|
* @param {string} type the module system
|
|
103
172
|
* @returns {SourceData} the generated source
|
|
@@ -121,6 +190,7 @@ const getSourceForGlobalVariableExternal = (variableName, type) => {
|
|
|
121
190
|
/** @typedef {string | string[]} ModuleAndSpecifiers */
|
|
122
191
|
|
|
123
192
|
/**
|
|
193
|
+
* Gets source for common js external.
|
|
124
194
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
125
195
|
* @returns {SourceData} the generated source
|
|
126
196
|
*/
|
|
@@ -140,33 +210,55 @@ const getSourceForCommonJsExternal = (moduleAndSpecifiers) => {
|
|
|
140
210
|
};
|
|
141
211
|
|
|
142
212
|
/**
|
|
213
|
+
* Gets external module node commonjs init fragment.
|
|
143
214
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
215
|
+
* @param {boolean=} universal target may also run outside node (e.g. `["node", "web"]`)
|
|
144
216
|
* @returns {InitFragment<ChunkRenderContext>} code
|
|
145
217
|
*/
|
|
146
|
-
const getExternalModuleNodeCommonjsInitFragment = (
|
|
218
|
+
const getExternalModuleNodeCommonjsInitFragment = (
|
|
219
|
+
runtimeTemplate,
|
|
220
|
+
universal = false
|
|
221
|
+
) => {
|
|
147
222
|
const importMetaName = runtimeTemplate.outputOptions.importMetaName;
|
|
223
|
+
const moduleId = runtimeTemplate.renderNodePrefixForCoreModule("module");
|
|
224
|
+
|
|
225
|
+
if (!universal) {
|
|
226
|
+
return new InitFragment(
|
|
227
|
+
`import { createRequire as __WEBPACK_EXTERNAL_createRequire } from ${moduleId};\n${runtimeTemplate.renderConst()} __WEBPACK_EXTERNAL_createRequire_require = __WEBPACK_EXTERNAL_createRequire(${importMetaName}.url);\n`,
|
|
228
|
+
InitFragment.STAGE_HARMONY_IMPORTS,
|
|
229
|
+
0,
|
|
230
|
+
"external module node-commonjs"
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// defensively obtain `createRequire` so the universal bundle still loads off node
|
|
235
|
+
const content = `${runtimeTemplate.renderConst()} __WEBPACK_EXTERNAL_createRequire_require = ${runtimeTemplate.getBuiltinModule(
|
|
236
|
+
moduleId,
|
|
237
|
+
`.createRequire(${importMetaName}.url)`
|
|
238
|
+
)};\n`;
|
|
148
239
|
|
|
149
240
|
return new InitFragment(
|
|
150
|
-
|
|
151
|
-
"module"
|
|
152
|
-
)};\n${runtimeTemplate.renderConst()} __WEBPACK_EXTERNAL_createRequire_require = __WEBPACK_EXTERNAL_createRequire(${importMetaName}.url);\n`,
|
|
241
|
+
content,
|
|
153
242
|
InitFragment.STAGE_HARMONY_IMPORTS,
|
|
154
243
|
0,
|
|
155
|
-
"external module node-commonjs"
|
|
244
|
+
"external module node-commonjs universal"
|
|
156
245
|
);
|
|
157
246
|
};
|
|
158
247
|
|
|
159
248
|
/**
|
|
249
|
+
* Gets source for common js external in node module.
|
|
160
250
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
161
251
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
252
|
+
* @param {boolean=} universal target may also run outside node (e.g. `["node", "web"]`)
|
|
162
253
|
* @returns {SourceData} the generated source
|
|
163
254
|
*/
|
|
164
255
|
const getSourceForCommonJsExternalInNodeModule = (
|
|
165
256
|
moduleAndSpecifiers,
|
|
166
|
-
runtimeTemplate
|
|
257
|
+
runtimeTemplate,
|
|
258
|
+
universal = false
|
|
167
259
|
) => {
|
|
168
260
|
const chunkInitFragments = [
|
|
169
|
-
getExternalModuleNodeCommonjsInitFragment(runtimeTemplate)
|
|
261
|
+
getExternalModuleNodeCommonjsInitFragment(runtimeTemplate, universal)
|
|
170
262
|
];
|
|
171
263
|
if (!Array.isArray(moduleAndSpecifiers)) {
|
|
172
264
|
return {
|
|
@@ -186,6 +278,7 @@ const getSourceForCommonJsExternalInNodeModule = (
|
|
|
186
278
|
};
|
|
187
279
|
|
|
188
280
|
/**
|
|
281
|
+
* Gets source for import external.
|
|
189
282
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
190
283
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
191
284
|
* @param {ImportDependencyMeta=} dependencyMeta the dependency meta
|
|
@@ -196,15 +289,25 @@ const getSourceForImportExternal = (
|
|
|
196
289
|
runtimeTemplate,
|
|
197
290
|
dependencyMeta
|
|
198
291
|
) => {
|
|
199
|
-
const
|
|
292
|
+
const baseImportName = runtimeTemplate.outputOptions.importFunctionName;
|
|
200
293
|
if (
|
|
201
294
|
!runtimeTemplate.supportsDynamicImport() &&
|
|
202
|
-
(
|
|
295
|
+
(baseImportName === "import" || baseImportName === "module-import")
|
|
203
296
|
) {
|
|
204
297
|
throw new Error(
|
|
205
298
|
"The target environment doesn't support 'import()' so it's not possible to use external type 'import'"
|
|
206
299
|
);
|
|
207
300
|
}
|
|
301
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
302
|
+
// `import.defer(…)` and `import.source(…)` are only valid forms of the
|
|
303
|
+
// native `import(…)` function, so we only emit the phase suffix when the
|
|
304
|
+
// importFunctionName is the default `"import"`.
|
|
305
|
+
const importName =
|
|
306
|
+
baseImportName === "import" && ImportPhaseUtils.isDefer(phase)
|
|
307
|
+
? "import.defer"
|
|
308
|
+
: baseImportName === "import" && ImportPhaseUtils.isSource(phase)
|
|
309
|
+
? "import.source"
|
|
310
|
+
: baseImportName;
|
|
208
311
|
const attributes =
|
|
209
312
|
dependencyMeta && dependencyMeta.attributes
|
|
210
313
|
? dependencyMeta.attributes._isLegacyAssert
|
|
@@ -240,6 +343,7 @@ const getSourceForImportExternal = (
|
|
|
240
343
|
};
|
|
241
344
|
|
|
242
345
|
/**
|
|
346
|
+
* Import assertion replacer.
|
|
243
347
|
* @param {string} key key
|
|
244
348
|
* @param {ImportAttributes | string | boolean | undefined} value value
|
|
245
349
|
* @returns {ImportAttributes | string | boolean | undefined} replaced value
|
|
@@ -253,10 +357,12 @@ const importAssertionReplacer = (key, value) => {
|
|
|
253
357
|
};
|
|
254
358
|
|
|
255
359
|
/**
|
|
360
|
+
* Represents ModuleExternalInitFragment.
|
|
256
361
|
* @extends {InitFragment<GenerateContext>}
|
|
257
362
|
*/
|
|
258
363
|
class ModuleExternalInitFragment extends InitFragment {
|
|
259
364
|
/**
|
|
365
|
+
* Creates an instance of ModuleExternalInitFragment.
|
|
260
366
|
* @param {string} request import source
|
|
261
367
|
* @param {Imported} imported the imported specifiers
|
|
262
368
|
* @param {string=} ident recomputed ident
|
|
@@ -284,16 +390,24 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
284
390
|
"",
|
|
285
391
|
InitFragment.STAGE_HARMONY_IMPORTS,
|
|
286
392
|
0,
|
|
287
|
-
`external module import ${ident} ${
|
|
393
|
+
`external module import ${ident} ${
|
|
394
|
+
imported === true ? imported : imported.join(" ")
|
|
395
|
+
}`
|
|
288
396
|
);
|
|
397
|
+
/** @type {string} */
|
|
289
398
|
this._ident = ident;
|
|
399
|
+
/** @type {string} */
|
|
290
400
|
this._request = request;
|
|
401
|
+
/** @type {ImportDependencyMeta | undefined} */
|
|
291
402
|
this._dependencyMeta = dependencyMeta;
|
|
403
|
+
/** @type {string} */
|
|
292
404
|
this._identifier = this.buildIdentifier(ident);
|
|
405
|
+
/** @type {Imported} */
|
|
293
406
|
this._imported = this.buildImported(imported);
|
|
294
407
|
}
|
|
295
408
|
|
|
296
409
|
/**
|
|
410
|
+
* Returns imported.
|
|
297
411
|
* @returns {Imported} imported
|
|
298
412
|
*/
|
|
299
413
|
getImported() {
|
|
@@ -301,6 +415,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
301
415
|
}
|
|
302
416
|
|
|
303
417
|
/**
|
|
418
|
+
* Updates imported using the provided imported.
|
|
304
419
|
* @param {Imported} imported imported
|
|
305
420
|
*/
|
|
306
421
|
setImported(imported) {
|
|
@@ -308,6 +423,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
308
423
|
}
|
|
309
424
|
|
|
310
425
|
/**
|
|
426
|
+
* Returns the source code that will be included as initialization code.
|
|
311
427
|
* @param {GenerateContext} context context
|
|
312
428
|
* @returns {string | Source | undefined} the source code that will be included as initialization code
|
|
313
429
|
*/
|
|
@@ -320,23 +436,34 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
320
436
|
} = this;
|
|
321
437
|
const attributes =
|
|
322
438
|
dependencyMeta && dependencyMeta.attributes
|
|
323
|
-
? dependencyMeta.attributes._isLegacyAssert
|
|
324
|
-
dependencyMeta.attributes._isLegacyAssert
|
|
439
|
+
? dependencyMeta.attributes._isLegacyAssert
|
|
325
440
|
? ` assert ${JSON.stringify(
|
|
326
441
|
dependencyMeta.attributes,
|
|
327
442
|
importAssertionReplacer
|
|
328
443
|
)}`
|
|
329
444
|
: ` with ${JSON.stringify(dependencyMeta.attributes)}`
|
|
330
445
|
: "";
|
|
446
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
331
447
|
let content = "";
|
|
332
448
|
if (imported === true) {
|
|
333
449
|
// namespace
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
450
|
+
const phaseKeyword = ImportPhaseUtils.isDefer(phase) ? "defer " : "";
|
|
451
|
+
content = `import ${phaseKeyword}* as ${identifier} from ${JSON.stringify(
|
|
452
|
+
request
|
|
453
|
+
)}${attributes};\n`;
|
|
337
454
|
} else if (imported.length === 0) {
|
|
338
455
|
// just import, no use
|
|
339
456
|
content = `import ${JSON.stringify(request)}${attributes};\n`;
|
|
457
|
+
} else if (
|
|
458
|
+
ImportPhaseUtils.isSource(phase) &&
|
|
459
|
+
imported.length === 1 &&
|
|
460
|
+
imported[0][0] === "default"
|
|
461
|
+
) {
|
|
462
|
+
// `import source x from "…"` — the source-phase form binds the source
|
|
463
|
+
// object directly to a single identifier (no namespace, no destructuring).
|
|
464
|
+
content = `import source ${imported[0][1]} from ${JSON.stringify(
|
|
465
|
+
request
|
|
466
|
+
)}${attributes};\n`;
|
|
340
467
|
} else {
|
|
341
468
|
content = `import { ${imported
|
|
342
469
|
.map(([name, finalName]) => {
|
|
@@ -355,6 +482,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
355
482
|
}
|
|
356
483
|
|
|
357
484
|
/**
|
|
485
|
+
* Returns identifier.
|
|
358
486
|
* @param {string} ident ident
|
|
359
487
|
* @returns {string} identifier
|
|
360
488
|
*/
|
|
@@ -363,6 +491,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
363
491
|
}
|
|
364
492
|
|
|
365
493
|
/**
|
|
494
|
+
* Returns normalized imported.
|
|
366
495
|
* @param {Imported} imported imported
|
|
367
496
|
* @returns {Imported} normalized imported
|
|
368
497
|
*/
|
|
@@ -395,6 +524,7 @@ register(
|
|
|
395
524
|
);
|
|
396
525
|
|
|
397
526
|
/**
|
|
527
|
+
* Generates module remapping.
|
|
398
528
|
* @param {string} input input
|
|
399
529
|
* @param {ExportsInfo} exportsInfo the exports info
|
|
400
530
|
* @param {RuntimeSpec=} runtime the runtime
|
|
@@ -437,6 +567,7 @@ const generateModuleRemapping = (
|
|
|
437
567
|
};
|
|
438
568
|
|
|
439
569
|
/**
|
|
570
|
+
* Gets source for module external.
|
|
440
571
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
441
572
|
* @param {ExportsInfo} exportsInfo exports info of this module
|
|
442
573
|
* @param {RuntimeSpec} runtime the runtime
|
|
@@ -453,6 +584,7 @@ const getSourceForModuleExternal = (
|
|
|
453
584
|
dependencyMeta,
|
|
454
585
|
concatenationScope
|
|
455
586
|
) => {
|
|
587
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
456
588
|
/** @type {Imported} */
|
|
457
589
|
let imported = true;
|
|
458
590
|
if (concatenationScope) {
|
|
@@ -481,6 +613,14 @@ const getSourceForModuleExternal = (
|
|
|
481
613
|
imported = true;
|
|
482
614
|
}
|
|
483
615
|
|
|
616
|
+
// `import defer …` is only valid as `import defer * as ns from "…"`, so
|
|
617
|
+
// keep the namespace form even if usage analysis would otherwise narrow
|
|
618
|
+
// the import down to specific names. Defer + concatenation is semantically
|
|
619
|
+
// at odds (lazy vs. eager), so we preserve the user-written shape here.
|
|
620
|
+
if (ImportPhaseUtils.isDefer(phase)) {
|
|
621
|
+
imported = true;
|
|
622
|
+
}
|
|
623
|
+
|
|
484
624
|
const initFragment = new ModuleExternalInitFragment(
|
|
485
625
|
moduleAndSpecifiers[0],
|
|
486
626
|
imported,
|
|
@@ -511,10 +651,10 @@ const getSourceForModuleExternal = (
|
|
|
511
651
|
return {
|
|
512
652
|
expression,
|
|
513
653
|
init: moduleRemapping
|
|
514
|
-
?
|
|
654
|
+
? `${runtimeTemplate.renderConst()} x = ${runtimeTemplate.basicFunction(
|
|
515
655
|
"y",
|
|
516
|
-
|
|
517
|
-
)} \
|
|
656
|
+
`${runtimeTemplate.renderConst()} x = {}; ${RuntimeGlobals.definePropertyGetters}(x, y); return x`
|
|
657
|
+
)} \n${runtimeTemplate.renderConst()} y = ${runtimeTemplate.returningFunction(
|
|
518
658
|
runtimeTemplate.returningFunction("x"),
|
|
519
659
|
"x"
|
|
520
660
|
)}`
|
|
@@ -530,6 +670,7 @@ const getSourceForModuleExternal = (
|
|
|
530
670
|
};
|
|
531
671
|
|
|
532
672
|
/**
|
|
673
|
+
* Gets source for script external.
|
|
533
674
|
* @param {string | string[]} urlAndGlobal the script request
|
|
534
675
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
535
676
|
* @returns {SourceData} the generated source
|
|
@@ -541,7 +682,7 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
|
|
|
541
682
|
const url = urlAndGlobal[0];
|
|
542
683
|
const globalName = urlAndGlobal[1];
|
|
543
684
|
return {
|
|
544
|
-
init:
|
|
685
|
+
init: `${runtimeTemplate.renderConst()} __webpack_error__ = new Error();`,
|
|
545
686
|
expression: `new Promise(${runtimeTemplate.basicFunction(
|
|
546
687
|
"resolve, reject",
|
|
547
688
|
[
|
|
@@ -550,12 +691,13 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
|
|
|
550
691
|
url
|
|
551
692
|
)}, ${runtimeTemplate.basicFunction("event", [
|
|
552
693
|
`if(typeof ${globalName} !== "undefined") return resolve();`,
|
|
553
|
-
|
|
554
|
-
|
|
694
|
+
`${runtimeTemplate.renderConst()} errorType = event && (event.type === 'load' ? 'missing' : event.type);`,
|
|
695
|
+
`${runtimeTemplate.renderConst()} realSrc = event && event.target && event.target.src;`,
|
|
555
696
|
"__webpack_error__.message = 'Loading script failed.\\n(' + errorType + ': ' + realSrc + ')';",
|
|
556
697
|
"__webpack_error__.name = 'ScriptExternalLoadError';",
|
|
557
698
|
"__webpack_error__.type = errorType;",
|
|
558
699
|
"__webpack_error__.request = realSrc;",
|
|
700
|
+
"__webpack_error__.event = event;",
|
|
559
701
|
"reject(__webpack_error__);"
|
|
560
702
|
])}, ${JSON.stringify(globalName)});`
|
|
561
703
|
]
|
|
@@ -567,6 +709,42 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
|
|
|
567
709
|
};
|
|
568
710
|
|
|
569
711
|
/**
|
|
712
|
+
* Gets source for amd-async external. Loads the module at runtime via the
|
|
713
|
+
* asynchronous AMD `require([...])` API and exposes it as an async module,
|
|
714
|
+
* so no AMD library wrapper around the chunk is needed.
|
|
715
|
+
* @param {string | string[]} request the request path
|
|
716
|
+
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
717
|
+
* @returns {SourceData} the generated source
|
|
718
|
+
*/
|
|
719
|
+
const getSourceForAmdAsyncExternal = (request, runtimeTemplate) => {
|
|
720
|
+
if (!Array.isArray(request)) {
|
|
721
|
+
request = [request];
|
|
722
|
+
}
|
|
723
|
+
const { library } = runtimeTemplate.outputOptions;
|
|
724
|
+
const amdRequire =
|
|
725
|
+
library && library.amdContainer
|
|
726
|
+
? `${library.amdContainer}.require`
|
|
727
|
+
: "require";
|
|
728
|
+
return {
|
|
729
|
+
expression: `new Promise(${runtimeTemplate.basicFunction(
|
|
730
|
+
"resolve, reject",
|
|
731
|
+
[
|
|
732
|
+
`if (typeof ${amdRequire} !== "function") return reject(new Error(${JSON.stringify(
|
|
733
|
+
`AMD 'require' is not available to load external module ${request[0]}`
|
|
734
|
+
)}));`,
|
|
735
|
+
`${amdRequire}(${JSON.stringify([
|
|
736
|
+
request[0]
|
|
737
|
+
])}, ${runtimeTemplate.basicFunction(
|
|
738
|
+
"module",
|
|
739
|
+
`resolve(module${propertyAccess(request, 1)});`
|
|
740
|
+
)}, reject);`
|
|
741
|
+
]
|
|
742
|
+
)})`
|
|
743
|
+
};
|
|
744
|
+
};
|
|
745
|
+
|
|
746
|
+
/**
|
|
747
|
+
* Checks external variable.
|
|
570
748
|
* @param {string} variableName the variable name to check
|
|
571
749
|
* @param {string} request the request path
|
|
572
750
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
@@ -578,6 +756,7 @@ const checkExternalVariable = (variableName, request, runtimeTemplate) =>
|
|
|
578
756
|
)} }\n`;
|
|
579
757
|
|
|
580
758
|
/**
|
|
759
|
+
* Gets source for amd or umd external.
|
|
581
760
|
* @param {ModuleId | string} id the module id
|
|
582
761
|
* @param {boolean} optional true, if the module is optional
|
|
583
762
|
* @param {string | string[]} request the request path
|
|
@@ -606,6 +785,7 @@ const getSourceForAmdOrUmdExternal = (
|
|
|
606
785
|
};
|
|
607
786
|
|
|
608
787
|
/**
|
|
788
|
+
* Gets source for default case.
|
|
609
789
|
* @param {boolean} optional true, if the module is optional
|
|
610
790
|
* @param {string | string[]} request the request path
|
|
611
791
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
@@ -630,24 +810,42 @@ const getSourceForDefaultCase = (optional, request, runtimeTemplate) => {
|
|
|
630
810
|
/** @typedef {Record<string, string | string[]>} RequestRecord */
|
|
631
811
|
/** @typedef {string | string[] | RequestRecord} ExternalModuleRequest */
|
|
632
812
|
|
|
813
|
+
const createCompilationHooks = () => ({
|
|
814
|
+
/**
|
|
815
|
+
* @type {SyncBailHook<[Chunk, Compilation], boolean>}
|
|
816
|
+
* @since 5.106.0
|
|
817
|
+
*/
|
|
818
|
+
chunkCondition: new SyncBailHook(["chunk", "compilation"])
|
|
819
|
+
});
|
|
820
|
+
|
|
633
821
|
/**
|
|
634
|
-
* @typedef {
|
|
635
|
-
* @property {SyncBailHook<[Chunk, Compilation], boolean>} chunkCondition
|
|
822
|
+
* @typedef {ReturnType<typeof createCompilationHooks>} ExternalModuleHooks
|
|
636
823
|
*/
|
|
637
824
|
|
|
638
|
-
/**
|
|
639
|
-
|
|
825
|
+
/**
|
|
826
|
+
* Defines the build info properties specific to external modules.
|
|
827
|
+
* @typedef {object} KnownExternalModuleBuildInfo
|
|
828
|
+
* @property {boolean=} javascriptModule true when emitting an ESM external (`output.module`)
|
|
829
|
+
*/
|
|
830
|
+
|
|
831
|
+
/** @typedef {BuildInfo & KnownExternalModuleBuildInfo} ExternalModuleBuildInfo */
|
|
640
832
|
|
|
641
833
|
class ExternalModule extends Module {
|
|
642
834
|
/**
|
|
835
|
+
* Creates an instance of ExternalModule.
|
|
643
836
|
* @param {ExternalModuleRequest} request request
|
|
644
837
|
* @param {ExternalsType} type type
|
|
645
838
|
* @param {string} userRequest user request
|
|
646
839
|
* @param {DependencyMeta=} dependencyMeta dependency meta
|
|
840
|
+
* @param {ExternalInterop=} interop how the external's exports interoperate with ES module imports
|
|
647
841
|
*/
|
|
648
|
-
constructor(request, type, userRequest, dependencyMeta) {
|
|
842
|
+
constructor(request, type, userRequest, dependencyMeta, interop) {
|
|
649
843
|
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
|
650
844
|
|
|
845
|
+
// Redeclared with the external module specific shape
|
|
846
|
+
/** @type {ExternalModuleBuildInfo | undefined} */
|
|
847
|
+
this.buildInfo = undefined;
|
|
848
|
+
|
|
651
849
|
// Info from Factory
|
|
652
850
|
/** @type {ExternalModuleRequest} */
|
|
653
851
|
this.request = request;
|
|
@@ -657,34 +855,23 @@ class ExternalModule extends Module {
|
|
|
657
855
|
this.userRequest = userRequest;
|
|
658
856
|
/** @type {DependencyMeta=} */
|
|
659
857
|
this.dependencyMeta = dependencyMeta;
|
|
858
|
+
/** @type {ExternalInterop | undefined} interop shape of the external's exports (undefined = importer-driven default) */
|
|
859
|
+
this.interop = interop;
|
|
660
860
|
}
|
|
661
861
|
|
|
662
862
|
/**
|
|
663
|
-
*
|
|
664
|
-
* @returns {ExternalModuleHooks} the attached hooks
|
|
665
|
-
*/
|
|
666
|
-
static getCompilationHooks(compilation) {
|
|
667
|
-
let hooks = compilationHooksMap.get(compilation);
|
|
668
|
-
if (hooks === undefined) {
|
|
669
|
-
hooks = {
|
|
670
|
-
chunkCondition: new SyncBailHook(["chunk", "compilation"])
|
|
671
|
-
};
|
|
672
|
-
compilationHooksMap.set(compilation, hooks);
|
|
673
|
-
}
|
|
674
|
-
return hooks;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
/**
|
|
863
|
+
* Returns the source types this module can generate.
|
|
678
864
|
* @returns {SourceTypes} types available (do not mutate)
|
|
679
865
|
*/
|
|
680
866
|
getSourceTypes() {
|
|
681
|
-
if (
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
867
|
+
if (this.externalType === "asset" && this.dependencyMeta) {
|
|
868
|
+
const sourceType =
|
|
869
|
+
/** @type {AssetDependencyMeta} */
|
|
870
|
+
(this.dependencyMeta).sourceType;
|
|
871
|
+
// TODO webpack 6 drop "css-url" once the alias is removed
|
|
872
|
+
if (sourceType === ASSET_URL_TYPE || sourceType === "css-url") {
|
|
873
|
+
return ASSET_URL_TYPES;
|
|
874
|
+
}
|
|
688
875
|
} else if (this.externalType === "css-import") {
|
|
689
876
|
return CSS_IMPORT_TYPES;
|
|
690
877
|
}
|
|
@@ -693,6 +880,7 @@ class ExternalModule extends Module {
|
|
|
693
880
|
}
|
|
694
881
|
|
|
695
882
|
/**
|
|
883
|
+
* Gets the library identifier.
|
|
696
884
|
* @param {LibIdentOptions} options options
|
|
697
885
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
698
886
|
*/
|
|
@@ -701,6 +889,7 @@ class ExternalModule extends Module {
|
|
|
701
889
|
}
|
|
702
890
|
|
|
703
891
|
/**
|
|
892
|
+
* Returns true if the module can be placed in the chunk.
|
|
704
893
|
* @param {Chunk} chunk the chunk which condition should be checked
|
|
705
894
|
* @param {Compilation} compilation the compilation
|
|
706
895
|
* @returns {boolean} true if the module can be placed in the chunk
|
|
@@ -721,13 +910,30 @@ class ExternalModule extends Module {
|
|
|
721
910
|
}
|
|
722
911
|
|
|
723
912
|
/**
|
|
913
|
+
* Returns the unique identifier used to reference this module.
|
|
724
914
|
* @returns {string} a unique identifier of the module
|
|
725
915
|
*/
|
|
726
916
|
identifier() {
|
|
727
|
-
|
|
917
|
+
let id = `external ${this._resolveExternalType(
|
|
918
|
+
this.externalType
|
|
919
|
+
)} ${JSON.stringify(this.request)}`;
|
|
920
|
+
const meta = /** @type {ImportDependencyMeta | undefined} */ (
|
|
921
|
+
this.dependencyMeta
|
|
922
|
+
);
|
|
923
|
+
if (meta) {
|
|
924
|
+
if (meta.phase) {
|
|
925
|
+
id += `|phase=${ImportPhaseUtils.stringify(meta.phase)}`;
|
|
926
|
+
}
|
|
927
|
+
if (meta.attributes) {
|
|
928
|
+
id += `|attributes=${JSON.stringify(meta.attributes)}`;
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
if (this.interop) id += `|interop=${this.interop}`;
|
|
932
|
+
return id;
|
|
728
933
|
}
|
|
729
934
|
|
|
730
935
|
/**
|
|
936
|
+
* Returns a human-readable identifier for this module.
|
|
731
937
|
* @param {RequestShortener} requestShortener the request shortener
|
|
732
938
|
* @returns {string} a user readable identifier of the module
|
|
733
939
|
*/
|
|
@@ -736,6 +942,7 @@ class ExternalModule extends Module {
|
|
|
736
942
|
}
|
|
737
943
|
|
|
738
944
|
/**
|
|
945
|
+
* Checks whether the module needs to be rebuilt for the current build state.
|
|
739
946
|
* @param {NeedBuildContext} context context info
|
|
740
947
|
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
741
948
|
* @returns {void}
|
|
@@ -745,6 +952,7 @@ class ExternalModule extends Module {
|
|
|
745
952
|
}
|
|
746
953
|
|
|
747
954
|
/**
|
|
955
|
+
* Builds the module using the provided compilation context.
|
|
748
956
|
* @param {WebpackOptions} options webpack options
|
|
749
957
|
* @param {Compilation} compilation the compilation
|
|
750
958
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -763,6 +971,28 @@ class ExternalModule extends Module {
|
|
|
763
971
|
javascriptModule: compilation.outputOptions.module
|
|
764
972
|
};
|
|
765
973
|
const { request, externalType } = this._getRequestAndExternalType();
|
|
974
|
+
if (
|
|
975
|
+
request === undefined &&
|
|
976
|
+
typeof this.request === "object" &&
|
|
977
|
+
!Array.isArray(this.request) &&
|
|
978
|
+
!LIBRARY_WIRED_EXTERNAL_TYPES.has(this.externalType)
|
|
979
|
+
) {
|
|
980
|
+
this.addError(
|
|
981
|
+
new WebpackError(
|
|
982
|
+
`Missing external configuration for type "${
|
|
983
|
+
this.externalType
|
|
984
|
+
}" in external ${JSON.stringify(
|
|
985
|
+
this.request
|
|
986
|
+
)}. Add a ${JSON.stringify(
|
|
987
|
+
this.externalType
|
|
988
|
+
)} entry to it or set 'output.externalsType'/'output.library.type' to one of: ${Object.keys(
|
|
989
|
+
this.request
|
|
990
|
+
)
|
|
991
|
+
.map((key) => JSON.stringify(key))
|
|
992
|
+
.join(", ")}`
|
|
993
|
+
)
|
|
994
|
+
);
|
|
995
|
+
}
|
|
766
996
|
this.buildMeta.exportsType = "dynamic";
|
|
767
997
|
let canMangle = false;
|
|
768
998
|
this.clearDependenciesAndBlocks();
|
|
@@ -811,6 +1041,14 @@ class ExternalModule extends Module {
|
|
|
811
1041
|
"external promise"
|
|
812
1042
|
);
|
|
813
1043
|
break;
|
|
1044
|
+
case "amd-async":
|
|
1045
|
+
this.buildMeta.async = true;
|
|
1046
|
+
EnvironmentNotSupportAsyncWarning.check(
|
|
1047
|
+
this,
|
|
1048
|
+
compilation.runtimeTemplate,
|
|
1049
|
+
"external amd-async"
|
|
1050
|
+
);
|
|
1051
|
+
break;
|
|
814
1052
|
case "import":
|
|
815
1053
|
this.buildMeta.async = true;
|
|
816
1054
|
EnvironmentNotSupportAsyncWarning.check(
|
|
@@ -824,6 +1062,20 @@ class ExternalModule extends Module {
|
|
|
824
1062
|
}
|
|
825
1063
|
break;
|
|
826
1064
|
}
|
|
1065
|
+
// Opt-in override for how the external's exports interoperate with ESM
|
|
1066
|
+
// imports, independent of the importer's strictness (see Rollup's
|
|
1067
|
+
// `output.interop`). Only meaningful for a single-request external.
|
|
1068
|
+
if (this.interop && (!Array.isArray(request) || request.length === 1)) {
|
|
1069
|
+
if (this.interop === "esModule") {
|
|
1070
|
+
// external already is an ES module namespace: `default` unboxes to `.default`
|
|
1071
|
+
this.buildMeta.exportsType = "namespace";
|
|
1072
|
+
} else {
|
|
1073
|
+
// "default": treat as CommonJS, `default` is the whole exports (Node.js semantics)
|
|
1074
|
+
this.buildMeta.exportsType = "default";
|
|
1075
|
+
this.buildMeta.defaultObject = "redirect";
|
|
1076
|
+
}
|
|
1077
|
+
canMangle = false;
|
|
1078
|
+
}
|
|
827
1079
|
this.addDependency(new StaticExportsDependency(true, canMangle));
|
|
828
1080
|
callback();
|
|
829
1081
|
}
|
|
@@ -838,6 +1090,7 @@ class ExternalModule extends Module {
|
|
|
838
1090
|
}
|
|
839
1091
|
|
|
840
1092
|
/**
|
|
1093
|
+
* Returns the reason this module cannot be concatenated, when one exists.
|
|
841
1094
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
842
1095
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
843
1096
|
*/
|
|
@@ -855,6 +1108,7 @@ class ExternalModule extends Module {
|
|
|
855
1108
|
}
|
|
856
1109
|
|
|
857
1110
|
/**
|
|
1111
|
+
* Get request and external type.
|
|
858
1112
|
* @private
|
|
859
1113
|
* @returns {{ request: string | string[], externalType: ExternalsType }} the request and external type
|
|
860
1114
|
*/
|
|
@@ -901,6 +1155,7 @@ class ExternalModule extends Module {
|
|
|
901
1155
|
}
|
|
902
1156
|
|
|
903
1157
|
/**
|
|
1158
|
+
* Returns the source data.
|
|
904
1159
|
* @private
|
|
905
1160
|
* @param {string | string[]} request request
|
|
906
1161
|
* @param {ExternalsType} externalType the external type
|
|
@@ -922,6 +1177,11 @@ class ExternalModule extends Module {
|
|
|
922
1177
|
dependencyMeta,
|
|
923
1178
|
concatenationScope
|
|
924
1179
|
) {
|
|
1180
|
+
request = normalizeNodeCoreModuleRequest(
|
|
1181
|
+
request,
|
|
1182
|
+
externalType,
|
|
1183
|
+
runtimeTemplate
|
|
1184
|
+
);
|
|
925
1185
|
switch (externalType) {
|
|
926
1186
|
case "this":
|
|
927
1187
|
case "window":
|
|
@@ -936,11 +1196,24 @@ class ExternalModule extends Module {
|
|
|
936
1196
|
case "commonjs2":
|
|
937
1197
|
case "commonjs-module":
|
|
938
1198
|
case "commonjs-static":
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
1199
|
+
case "node-commonjs": {
|
|
1200
|
+
const { node } = runtimeTemplate.compilation.options.externalsPresets;
|
|
1201
|
+
// ESM has no `require`; load via `createRequire` when the target is node
|
|
1202
|
+
const createRequireInModule =
|
|
1203
|
+
/** @type {BuildInfo} */ (this.buildInfo).javascriptModule &&
|
|
1204
|
+
(externalType === "node-commonjs" || Boolean(node));
|
|
1205
|
+
if (!createRequireInModule) {
|
|
1206
|
+
return getSourceForCommonJsExternal(request);
|
|
1207
|
+
}
|
|
1208
|
+
// for a universal target (e.g. `["node", "web"]`) load defensively so the browser doesn't crash
|
|
1209
|
+
return getSourceForCommonJsExternalInNodeModule(
|
|
1210
|
+
request,
|
|
1211
|
+
runtimeTemplate,
|
|
1212
|
+
runtimeTemplate.isUniversalTarget()
|
|
1213
|
+
);
|
|
1214
|
+
}
|
|
1215
|
+
case "amd-async":
|
|
1216
|
+
return getSourceForAmdAsyncExternal(request, runtimeTemplate);
|
|
944
1217
|
case "amd":
|
|
945
1218
|
case "amd-require":
|
|
946
1219
|
case "umd":
|
|
@@ -1007,6 +1280,7 @@ class ExternalModule extends Module {
|
|
|
1007
1280
|
}
|
|
1008
1281
|
|
|
1009
1282
|
/**
|
|
1283
|
+
* Generates code and runtime requirements for this module.
|
|
1010
1284
|
* @param {CodeGenerationContext} context context for code generation
|
|
1011
1285
|
* @returns {CodeGenerationResult} result
|
|
1012
1286
|
*/
|
|
@@ -1031,12 +1305,14 @@ class ExternalModule extends Module {
|
|
|
1031
1305
|
data.set("url", { javascript: /** @type {string} */ (request) });
|
|
1032
1306
|
return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data };
|
|
1033
1307
|
}
|
|
1034
|
-
|
|
1308
|
+
// TODO webpack 6 remove "css-url" alias
|
|
1309
|
+
case "css-url":
|
|
1310
|
+
case "asset-url": {
|
|
1035
1311
|
/** @type {Sources} */
|
|
1036
1312
|
const sources = new Map();
|
|
1037
1313
|
/** @type {CodeGenerationResultData} */
|
|
1038
1314
|
const data = new Map();
|
|
1039
|
-
data.set("url", {
|
|
1315
|
+
data.set("url", { [ASSET_URL_TYPE]: /** @type {string} */ (request) });
|
|
1040
1316
|
return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data };
|
|
1041
1317
|
}
|
|
1042
1318
|
case "css-import": {
|
|
@@ -1092,7 +1368,9 @@ class ExternalModule extends Module {
|
|
|
1092
1368
|
scope.registerRawExport(specifier, finalName);
|
|
1093
1369
|
}
|
|
1094
1370
|
} else if (concatenationScope) {
|
|
1095
|
-
sourceString = `${runtimeTemplate.renderConst()} ${
|
|
1371
|
+
sourceString = `${runtimeTemplate.renderConst()} ${
|
|
1372
|
+
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
|
1373
|
+
} = ${sourceString};`;
|
|
1096
1374
|
concatenationScope.registerNamespaceExport(
|
|
1097
1375
|
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
|
1098
1376
|
);
|
|
@@ -1143,6 +1421,7 @@ class ExternalModule extends Module {
|
|
|
1143
1421
|
}
|
|
1144
1422
|
|
|
1145
1423
|
/**
|
|
1424
|
+
* Returns the estimated size for the requested source type.
|
|
1146
1425
|
* @param {string=} type the source type for which the size should be estimated
|
|
1147
1426
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
1148
1427
|
*/
|
|
@@ -1151,6 +1430,7 @@ class ExternalModule extends Module {
|
|
|
1151
1430
|
}
|
|
1152
1431
|
|
|
1153
1432
|
/**
|
|
1433
|
+
* Updates the hash with the data contributed by this instance.
|
|
1154
1434
|
* @param {Hash} hash the hash used to track dependencies
|
|
1155
1435
|
* @param {UpdateHashContext} context context
|
|
1156
1436
|
* @returns {void}
|
|
@@ -1158,42 +1438,63 @@ class ExternalModule extends Module {
|
|
|
1158
1438
|
updateHash(hash, context) {
|
|
1159
1439
|
const { chunkGraph } = context;
|
|
1160
1440
|
hash.update(
|
|
1161
|
-
`${this._resolveExternalType(this.externalType)}${JSON.stringify(
|
|
1162
|
-
|
|
1163
|
-
)}`
|
|
1441
|
+
`${this._resolveExternalType(this.externalType)}${JSON.stringify(
|
|
1442
|
+
this.request
|
|
1443
|
+
)}${this.isOptional(chunkGraph.moduleGraph)}`
|
|
1164
1444
|
);
|
|
1445
|
+
const meta = /** @type {ImportDependencyMeta | undefined} */ (
|
|
1446
|
+
this.dependencyMeta
|
|
1447
|
+
);
|
|
1448
|
+
if (meta) {
|
|
1449
|
+
if (meta.phase) {
|
|
1450
|
+
hash.update(`|phase=${ImportPhaseUtils.stringify(meta.phase)}`);
|
|
1451
|
+
}
|
|
1452
|
+
if (meta.attributes) {
|
|
1453
|
+
hash.update(`|attributes=${JSON.stringify(meta.attributes)}`);
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
if (this.interop) hash.update(`|interop=${this.interop}`);
|
|
1165
1457
|
super.updateHash(hash, context);
|
|
1166
1458
|
}
|
|
1167
1459
|
|
|
1168
1460
|
/**
|
|
1461
|
+
* Serializes this instance into the provided serializer context.
|
|
1169
1462
|
* @param {ObjectSerializerContext} context context
|
|
1170
1463
|
*/
|
|
1171
1464
|
serialize(context) {
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1465
|
+
context
|
|
1466
|
+
.write(this.request)
|
|
1467
|
+
.write(this.externalType)
|
|
1468
|
+
.write(this.userRequest)
|
|
1469
|
+
.write(this.dependencyMeta)
|
|
1470
|
+
.write(this.interop);
|
|
1178
1471
|
|
|
1179
1472
|
super.serialize(context);
|
|
1180
1473
|
}
|
|
1181
1474
|
|
|
1182
1475
|
/**
|
|
1476
|
+
* Restores this instance from the provided deserializer context.
|
|
1183
1477
|
* @param {ObjectDeserializerContext} context context
|
|
1184
1478
|
*/
|
|
1185
1479
|
deserialize(context) {
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
this.
|
|
1189
|
-
|
|
1190
|
-
this.userRequest = read();
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1480
|
+
this.request = context.read();
|
|
1481
|
+
const c1 = context.rest;
|
|
1482
|
+
this.externalType = c1.read();
|
|
1483
|
+
const c2 = c1.rest;
|
|
1484
|
+
this.userRequest = c2.read();
|
|
1485
|
+
const c3 = c2.rest;
|
|
1486
|
+
this.dependencyMeta = c3.read();
|
|
1487
|
+
const c4 = c3.rest;
|
|
1488
|
+
this.interop = c4.read();
|
|
1489
|
+
|
|
1490
|
+
super.deserialize(c4.rest);
|
|
1194
1491
|
}
|
|
1195
1492
|
}
|
|
1196
1493
|
|
|
1494
|
+
ExternalModule.getCompilationHooks = createHooksRegistry(
|
|
1495
|
+
createCompilationHooks
|
|
1496
|
+
);
|
|
1497
|
+
|
|
1197
1498
|
makeSerializable(ExternalModule, "webpack/lib/ExternalModule");
|
|
1198
1499
|
|
|
1199
1500
|
module.exports = ExternalModule;
|