webpack 5.106.1 → 5.107.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 +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- 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 +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +101 -19
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -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 +2 -1
- package/lib/ProgressPlugin.js +158 -68
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +19 -6
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +33 -4
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +5 -2
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- 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} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -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 +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -0
- package/lib/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -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 +22 -1
- 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 +39 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- 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 +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -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 +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- 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 +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- 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 +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- 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 +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -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 +18 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- 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 +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- 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 +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- 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/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /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,7 +8,6 @@
|
|
|
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");
|
|
@@ -22,7 +21,9 @@ const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
|
|
22
21
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
23
22
|
const Template = require("./Template");
|
|
24
23
|
const { DEFAULTS } = require("./config/defaults");
|
|
24
|
+
const { ImportPhaseUtils } = require("./dependencies/ImportPhase");
|
|
25
25
|
const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
|
|
26
|
+
const EnvironmentNotSupportAsyncWarning = require("./errors/EnvironmentNotSupportAsyncWarning");
|
|
26
27
|
const createHash = require("./util/createHash");
|
|
27
28
|
const extractUrlAndGlobal = require("./util/extractUrlAndGlobal");
|
|
28
29
|
const makeSerializable = require("./util/makeSerializable");
|
|
@@ -62,19 +63,21 @@ const { register } = require("./util/serialization");
|
|
|
62
63
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
|
63
64
|
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
|
64
65
|
/** @typedef {import("./javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
66
|
+
/** @typedef {import("./dependencies/ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
65
67
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
66
68
|
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
67
69
|
/** @typedef {import("./util/Hash")} Hash */
|
|
68
70
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
|
69
71
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
|
70
72
|
|
|
71
|
-
/** @typedef {{ attributes?: ImportAttributes, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
|
|
73
|
+
/** @typedef {{ attributes?: ImportAttributes, phase?: ImportPhaseType, externalType: "import" | "module" | undefined }} ImportDependencyMeta */
|
|
72
74
|
/** @typedef {{ layer?: string, supports?: string, media?: string }} CssImportDependencyMeta */
|
|
73
75
|
/** @typedef {{ sourceType: "css-url" }} AssetDependencyMeta */
|
|
74
76
|
|
|
75
77
|
/** @typedef {ImportDependencyMeta | CssImportDependencyMeta | AssetDependencyMeta} DependencyMeta */
|
|
76
78
|
|
|
77
79
|
/**
|
|
80
|
+
* Defines the source data type used by this module.
|
|
78
81
|
* @typedef {object} SourceData
|
|
79
82
|
* @property {boolean=} iife
|
|
80
83
|
* @property {string=} init
|
|
@@ -98,6 +101,7 @@ const RUNTIME_REQUIREMENTS_FOR_MODULE = new Set([
|
|
|
98
101
|
const EMPTY_RUNTIME_REQUIREMENTS = new Set();
|
|
99
102
|
|
|
100
103
|
/**
|
|
104
|
+
* Gets source for global variable external.
|
|
101
105
|
* @param {string | string[]} variableName the variable name or path
|
|
102
106
|
* @param {string} type the module system
|
|
103
107
|
* @returns {SourceData} the generated source
|
|
@@ -121,6 +125,7 @@ const getSourceForGlobalVariableExternal = (variableName, type) => {
|
|
|
121
125
|
/** @typedef {string | string[]} ModuleAndSpecifiers */
|
|
122
126
|
|
|
123
127
|
/**
|
|
128
|
+
* Gets source for common js external.
|
|
124
129
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
125
130
|
* @returns {SourceData} the generated source
|
|
126
131
|
*/
|
|
@@ -140,6 +145,7 @@ const getSourceForCommonJsExternal = (moduleAndSpecifiers) => {
|
|
|
140
145
|
};
|
|
141
146
|
|
|
142
147
|
/**
|
|
148
|
+
* Gets external module node commonjs init fragment.
|
|
143
149
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
144
150
|
* @returns {InitFragment<ChunkRenderContext>} code
|
|
145
151
|
*/
|
|
@@ -157,6 +163,7 @@ const getExternalModuleNodeCommonjsInitFragment = (runtimeTemplate) => {
|
|
|
157
163
|
};
|
|
158
164
|
|
|
159
165
|
/**
|
|
166
|
+
* Gets source for common js external in node module.
|
|
160
167
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
161
168
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
162
169
|
* @returns {SourceData} the generated source
|
|
@@ -186,6 +193,7 @@ const getSourceForCommonJsExternalInNodeModule = (
|
|
|
186
193
|
};
|
|
187
194
|
|
|
188
195
|
/**
|
|
196
|
+
* Gets source for import external.
|
|
189
197
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
190
198
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
191
199
|
* @param {ImportDependencyMeta=} dependencyMeta the dependency meta
|
|
@@ -196,15 +204,25 @@ const getSourceForImportExternal = (
|
|
|
196
204
|
runtimeTemplate,
|
|
197
205
|
dependencyMeta
|
|
198
206
|
) => {
|
|
199
|
-
const
|
|
207
|
+
const baseImportName = runtimeTemplate.outputOptions.importFunctionName;
|
|
200
208
|
if (
|
|
201
209
|
!runtimeTemplate.supportsDynamicImport() &&
|
|
202
|
-
(
|
|
210
|
+
(baseImportName === "import" || baseImportName === "module-import")
|
|
203
211
|
) {
|
|
204
212
|
throw new Error(
|
|
205
213
|
"The target environment doesn't support 'import()' so it's not possible to use external type 'import'"
|
|
206
214
|
);
|
|
207
215
|
}
|
|
216
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
217
|
+
// `import.defer(…)` and `import.source(…)` are only valid forms of the
|
|
218
|
+
// native `import(…)` function, so we only emit the phase suffix when the
|
|
219
|
+
// importFunctionName is the default `"import"`.
|
|
220
|
+
const importName =
|
|
221
|
+
baseImportName === "import" && ImportPhaseUtils.isDefer(phase)
|
|
222
|
+
? "import.defer"
|
|
223
|
+
: baseImportName === "import" && ImportPhaseUtils.isSource(phase)
|
|
224
|
+
? "import.source"
|
|
225
|
+
: baseImportName;
|
|
208
226
|
const attributes =
|
|
209
227
|
dependencyMeta && dependencyMeta.attributes
|
|
210
228
|
? dependencyMeta.attributes._isLegacyAssert
|
|
@@ -240,6 +258,7 @@ const getSourceForImportExternal = (
|
|
|
240
258
|
};
|
|
241
259
|
|
|
242
260
|
/**
|
|
261
|
+
* Import assertion replacer.
|
|
243
262
|
* @param {string} key key
|
|
244
263
|
* @param {ImportAttributes | string | boolean | undefined} value value
|
|
245
264
|
* @returns {ImportAttributes | string | boolean | undefined} replaced value
|
|
@@ -253,10 +272,12 @@ const importAssertionReplacer = (key, value) => {
|
|
|
253
272
|
};
|
|
254
273
|
|
|
255
274
|
/**
|
|
275
|
+
* Represents ModuleExternalInitFragment.
|
|
256
276
|
* @extends {InitFragment<GenerateContext>}
|
|
257
277
|
*/
|
|
258
278
|
class ModuleExternalInitFragment extends InitFragment {
|
|
259
279
|
/**
|
|
280
|
+
* Creates an instance of ModuleExternalInitFragment.
|
|
260
281
|
* @param {string} request import source
|
|
261
282
|
* @param {Imported} imported the imported specifiers
|
|
262
283
|
* @param {string=} ident recomputed ident
|
|
@@ -284,7 +305,9 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
284
305
|
"",
|
|
285
306
|
InitFragment.STAGE_HARMONY_IMPORTS,
|
|
286
307
|
0,
|
|
287
|
-
`external module import ${ident} ${
|
|
308
|
+
`external module import ${ident} ${
|
|
309
|
+
imported === true ? imported : imported.join(" ")
|
|
310
|
+
}`
|
|
288
311
|
);
|
|
289
312
|
this._ident = ident;
|
|
290
313
|
this._request = request;
|
|
@@ -294,6 +317,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
294
317
|
}
|
|
295
318
|
|
|
296
319
|
/**
|
|
320
|
+
* Returns imported.
|
|
297
321
|
* @returns {Imported} imported
|
|
298
322
|
*/
|
|
299
323
|
getImported() {
|
|
@@ -301,6 +325,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
301
325
|
}
|
|
302
326
|
|
|
303
327
|
/**
|
|
328
|
+
* Updates imported using the provided imported.
|
|
304
329
|
* @param {Imported} imported imported
|
|
305
330
|
*/
|
|
306
331
|
setImported(imported) {
|
|
@@ -308,6 +333,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
308
333
|
}
|
|
309
334
|
|
|
310
335
|
/**
|
|
336
|
+
* Returns the source code that will be included as initialization code.
|
|
311
337
|
* @param {GenerateContext} context context
|
|
312
338
|
* @returns {string | Source | undefined} the source code that will be included as initialization code
|
|
313
339
|
*/
|
|
@@ -320,23 +346,34 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
320
346
|
} = this;
|
|
321
347
|
const attributes =
|
|
322
348
|
dependencyMeta && dependencyMeta.attributes
|
|
323
|
-
? dependencyMeta.attributes._isLegacyAssert
|
|
324
|
-
dependencyMeta.attributes._isLegacyAssert
|
|
349
|
+
? dependencyMeta.attributes._isLegacyAssert
|
|
325
350
|
? ` assert ${JSON.stringify(
|
|
326
351
|
dependencyMeta.attributes,
|
|
327
352
|
importAssertionReplacer
|
|
328
353
|
)}`
|
|
329
354
|
: ` with ${JSON.stringify(dependencyMeta.attributes)}`
|
|
330
355
|
: "";
|
|
356
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
331
357
|
let content = "";
|
|
332
358
|
if (imported === true) {
|
|
333
359
|
// namespace
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
360
|
+
const phaseKeyword = ImportPhaseUtils.isDefer(phase) ? "defer " : "";
|
|
361
|
+
content = `import ${phaseKeyword}* as ${identifier} from ${JSON.stringify(
|
|
362
|
+
request
|
|
363
|
+
)}${attributes};\n`;
|
|
337
364
|
} else if (imported.length === 0) {
|
|
338
365
|
// just import, no use
|
|
339
366
|
content = `import ${JSON.stringify(request)}${attributes};\n`;
|
|
367
|
+
} else if (
|
|
368
|
+
ImportPhaseUtils.isSource(phase) &&
|
|
369
|
+
imported.length === 1 &&
|
|
370
|
+
imported[0][0] === "default"
|
|
371
|
+
) {
|
|
372
|
+
// `import source x from "…"` — the source-phase form binds the source
|
|
373
|
+
// object directly to a single identifier (no namespace, no destructuring).
|
|
374
|
+
content = `import source ${imported[0][1]} from ${JSON.stringify(
|
|
375
|
+
request
|
|
376
|
+
)}${attributes};\n`;
|
|
340
377
|
} else {
|
|
341
378
|
content = `import { ${imported
|
|
342
379
|
.map(([name, finalName]) => {
|
|
@@ -355,6 +392,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
355
392
|
}
|
|
356
393
|
|
|
357
394
|
/**
|
|
395
|
+
* Returns identifier.
|
|
358
396
|
* @param {string} ident ident
|
|
359
397
|
* @returns {string} identifier
|
|
360
398
|
*/
|
|
@@ -363,6 +401,7 @@ class ModuleExternalInitFragment extends InitFragment {
|
|
|
363
401
|
}
|
|
364
402
|
|
|
365
403
|
/**
|
|
404
|
+
* Returns normalized imported.
|
|
366
405
|
* @param {Imported} imported imported
|
|
367
406
|
* @returns {Imported} normalized imported
|
|
368
407
|
*/
|
|
@@ -395,6 +434,7 @@ register(
|
|
|
395
434
|
);
|
|
396
435
|
|
|
397
436
|
/**
|
|
437
|
+
* Generates module remapping.
|
|
398
438
|
* @param {string} input input
|
|
399
439
|
* @param {ExportsInfo} exportsInfo the exports info
|
|
400
440
|
* @param {RuntimeSpec=} runtime the runtime
|
|
@@ -437,6 +477,7 @@ const generateModuleRemapping = (
|
|
|
437
477
|
};
|
|
438
478
|
|
|
439
479
|
/**
|
|
480
|
+
* Gets source for module external.
|
|
440
481
|
* @param {ModuleAndSpecifiers} moduleAndSpecifiers the module request
|
|
441
482
|
* @param {ExportsInfo} exportsInfo exports info of this module
|
|
442
483
|
* @param {RuntimeSpec} runtime the runtime
|
|
@@ -453,6 +494,7 @@ const getSourceForModuleExternal = (
|
|
|
453
494
|
dependencyMeta,
|
|
454
495
|
concatenationScope
|
|
455
496
|
) => {
|
|
497
|
+
const phase = dependencyMeta && dependencyMeta.phase;
|
|
456
498
|
/** @type {Imported} */
|
|
457
499
|
let imported = true;
|
|
458
500
|
if (concatenationScope) {
|
|
@@ -481,6 +523,14 @@ const getSourceForModuleExternal = (
|
|
|
481
523
|
imported = true;
|
|
482
524
|
}
|
|
483
525
|
|
|
526
|
+
// `import defer …` is only valid as `import defer * as ns from "…"`, so
|
|
527
|
+
// keep the namespace form even if usage analysis would otherwise narrow
|
|
528
|
+
// the import down to specific names. Defer + concatenation is semantically
|
|
529
|
+
// at odds (lazy vs. eager), so we preserve the user-written shape here.
|
|
530
|
+
if (ImportPhaseUtils.isDefer(phase)) {
|
|
531
|
+
imported = true;
|
|
532
|
+
}
|
|
533
|
+
|
|
484
534
|
const initFragment = new ModuleExternalInitFragment(
|
|
485
535
|
moduleAndSpecifiers[0],
|
|
486
536
|
imported,
|
|
@@ -530,6 +580,7 @@ const getSourceForModuleExternal = (
|
|
|
530
580
|
};
|
|
531
581
|
|
|
532
582
|
/**
|
|
583
|
+
* Gets source for script external.
|
|
533
584
|
* @param {string | string[]} urlAndGlobal the script request
|
|
534
585
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
535
586
|
* @returns {SourceData} the generated source
|
|
@@ -567,6 +618,7 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => {
|
|
|
567
618
|
};
|
|
568
619
|
|
|
569
620
|
/**
|
|
621
|
+
* Checks external variable.
|
|
570
622
|
* @param {string} variableName the variable name to check
|
|
571
623
|
* @param {string} request the request path
|
|
572
624
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
@@ -578,6 +630,7 @@ const checkExternalVariable = (variableName, request, runtimeTemplate) =>
|
|
|
578
630
|
)} }\n`;
|
|
579
631
|
|
|
580
632
|
/**
|
|
633
|
+
* Gets source for amd or umd external.
|
|
581
634
|
* @param {ModuleId | string} id the module id
|
|
582
635
|
* @param {boolean} optional true, if the module is optional
|
|
583
636
|
* @param {string | string[]} request the request path
|
|
@@ -606,6 +659,7 @@ const getSourceForAmdOrUmdExternal = (
|
|
|
606
659
|
};
|
|
607
660
|
|
|
608
661
|
/**
|
|
662
|
+
* Gets source for default case.
|
|
609
663
|
* @param {boolean} optional true, if the module is optional
|
|
610
664
|
* @param {string | string[]} request the request path
|
|
611
665
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
@@ -631,6 +685,7 @@ const getSourceForDefaultCase = (optional, request, runtimeTemplate) => {
|
|
|
631
685
|
/** @typedef {string | string[] | RequestRecord} ExternalModuleRequest */
|
|
632
686
|
|
|
633
687
|
/**
|
|
688
|
+
* Defines the external module hooks type used by this module.
|
|
634
689
|
* @typedef {object} ExternalModuleHooks
|
|
635
690
|
* @property {SyncBailHook<[Chunk, Compilation], boolean>} chunkCondition
|
|
636
691
|
*/
|
|
@@ -640,6 +695,7 @@ const compilationHooksMap = new WeakMap();
|
|
|
640
695
|
|
|
641
696
|
class ExternalModule extends Module {
|
|
642
697
|
/**
|
|
698
|
+
* Creates an instance of ExternalModule.
|
|
643
699
|
* @param {ExternalModuleRequest} request request
|
|
644
700
|
* @param {ExternalsType} type type
|
|
645
701
|
* @param {string} userRequest user request
|
|
@@ -660,6 +716,7 @@ class ExternalModule extends Module {
|
|
|
660
716
|
}
|
|
661
717
|
|
|
662
718
|
/**
|
|
719
|
+
* Returns the attached hooks.
|
|
663
720
|
* @param {Compilation} compilation the compilation
|
|
664
721
|
* @returns {ExternalModuleHooks} the attached hooks
|
|
665
722
|
*/
|
|
@@ -675,6 +732,7 @@ class ExternalModule extends Module {
|
|
|
675
732
|
}
|
|
676
733
|
|
|
677
734
|
/**
|
|
735
|
+
* Returns the source types this module can generate.
|
|
678
736
|
* @returns {SourceTypes} types available (do not mutate)
|
|
679
737
|
*/
|
|
680
738
|
getSourceTypes() {
|
|
@@ -693,6 +751,7 @@ class ExternalModule extends Module {
|
|
|
693
751
|
}
|
|
694
752
|
|
|
695
753
|
/**
|
|
754
|
+
* Gets the library identifier.
|
|
696
755
|
* @param {LibIdentOptions} options options
|
|
697
756
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
698
757
|
*/
|
|
@@ -701,6 +760,7 @@ class ExternalModule extends Module {
|
|
|
701
760
|
}
|
|
702
761
|
|
|
703
762
|
/**
|
|
763
|
+
* Returns true if the module can be placed in the chunk.
|
|
704
764
|
* @param {Chunk} chunk the chunk which condition should be checked
|
|
705
765
|
* @param {Compilation} compilation the compilation
|
|
706
766
|
* @returns {boolean} true if the module can be placed in the chunk
|
|
@@ -721,13 +781,29 @@ class ExternalModule extends Module {
|
|
|
721
781
|
}
|
|
722
782
|
|
|
723
783
|
/**
|
|
784
|
+
* Returns the unique identifier used to reference this module.
|
|
724
785
|
* @returns {string} a unique identifier of the module
|
|
725
786
|
*/
|
|
726
787
|
identifier() {
|
|
727
|
-
|
|
788
|
+
let id = `external ${this._resolveExternalType(
|
|
789
|
+
this.externalType
|
|
790
|
+
)} ${JSON.stringify(this.request)}`;
|
|
791
|
+
const meta = /** @type {ImportDependencyMeta | undefined} */ (
|
|
792
|
+
this.dependencyMeta
|
|
793
|
+
);
|
|
794
|
+
if (meta) {
|
|
795
|
+
if (meta.phase) {
|
|
796
|
+
id += `|phase=${ImportPhaseUtils.stringify(meta.phase)}`;
|
|
797
|
+
}
|
|
798
|
+
if (meta.attributes) {
|
|
799
|
+
id += `|attributes=${JSON.stringify(meta.attributes)}`;
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
return id;
|
|
728
803
|
}
|
|
729
804
|
|
|
730
805
|
/**
|
|
806
|
+
* Returns a human-readable identifier for this module.
|
|
731
807
|
* @param {RequestShortener} requestShortener the request shortener
|
|
732
808
|
* @returns {string} a user readable identifier of the module
|
|
733
809
|
*/
|
|
@@ -736,6 +812,7 @@ class ExternalModule extends Module {
|
|
|
736
812
|
}
|
|
737
813
|
|
|
738
814
|
/**
|
|
815
|
+
* Checks whether the module needs to be rebuilt for the current build state.
|
|
739
816
|
* @param {NeedBuildContext} context context info
|
|
740
817
|
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
741
818
|
* @returns {void}
|
|
@@ -745,6 +822,7 @@ class ExternalModule extends Module {
|
|
|
745
822
|
}
|
|
746
823
|
|
|
747
824
|
/**
|
|
825
|
+
* Builds the module using the provided compilation context.
|
|
748
826
|
* @param {WebpackOptions} options webpack options
|
|
749
827
|
* @param {Compilation} compilation the compilation
|
|
750
828
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -838,6 +916,7 @@ class ExternalModule extends Module {
|
|
|
838
916
|
}
|
|
839
917
|
|
|
840
918
|
/**
|
|
919
|
+
* Returns the reason this module cannot be concatenated, when one exists.
|
|
841
920
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
842
921
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
843
922
|
*/
|
|
@@ -855,6 +934,7 @@ class ExternalModule extends Module {
|
|
|
855
934
|
}
|
|
856
935
|
|
|
857
936
|
/**
|
|
937
|
+
* Get request and external type.
|
|
858
938
|
* @private
|
|
859
939
|
* @returns {{ request: string | string[], externalType: ExternalsType }} the request and external type
|
|
860
940
|
*/
|
|
@@ -901,6 +981,7 @@ class ExternalModule extends Module {
|
|
|
901
981
|
}
|
|
902
982
|
|
|
903
983
|
/**
|
|
984
|
+
* Returns the source data.
|
|
904
985
|
* @private
|
|
905
986
|
* @param {string | string[]} request request
|
|
906
987
|
* @param {ExternalsType} externalType the external type
|
|
@@ -1007,6 +1088,7 @@ class ExternalModule extends Module {
|
|
|
1007
1088
|
}
|
|
1008
1089
|
|
|
1009
1090
|
/**
|
|
1091
|
+
* Generates code and runtime requirements for this module.
|
|
1010
1092
|
* @param {CodeGenerationContext} context context for code generation
|
|
1011
1093
|
* @returns {CodeGenerationResult} result
|
|
1012
1094
|
*/
|
|
@@ -1092,7 +1174,9 @@ class ExternalModule extends Module {
|
|
|
1092
1174
|
scope.registerRawExport(specifier, finalName);
|
|
1093
1175
|
}
|
|
1094
1176
|
} else if (concatenationScope) {
|
|
1095
|
-
sourceString = `${runtimeTemplate.renderConst()} ${
|
|
1177
|
+
sourceString = `${runtimeTemplate.renderConst()} ${
|
|
1178
|
+
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
|
1179
|
+
} = ${sourceString};`;
|
|
1096
1180
|
concatenationScope.registerNamespaceExport(
|
|
1097
1181
|
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
|
|
1098
1182
|
);
|
|
@@ -1143,6 +1227,7 @@ class ExternalModule extends Module {
|
|
|
1143
1227
|
}
|
|
1144
1228
|
|
|
1145
1229
|
/**
|
|
1230
|
+
* Returns the estimated size for the requested source type.
|
|
1146
1231
|
* @param {string=} type the source type for which the size should be estimated
|
|
1147
1232
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
1148
1233
|
*/
|
|
@@ -1151,6 +1236,7 @@ class ExternalModule extends Module {
|
|
|
1151
1236
|
}
|
|
1152
1237
|
|
|
1153
1238
|
/**
|
|
1239
|
+
* Updates the hash with the data contributed by this instance.
|
|
1154
1240
|
* @param {Hash} hash the hash used to track dependencies
|
|
1155
1241
|
* @param {UpdateHashContext} context context
|
|
1156
1242
|
* @returns {void}
|
|
@@ -1158,14 +1244,26 @@ class ExternalModule extends Module {
|
|
|
1158
1244
|
updateHash(hash, context) {
|
|
1159
1245
|
const { chunkGraph } = context;
|
|
1160
1246
|
hash.update(
|
|
1161
|
-
`${this._resolveExternalType(this.externalType)}${JSON.stringify(
|
|
1162
|
-
|
|
1163
|
-
)}`
|
|
1247
|
+
`${this._resolveExternalType(this.externalType)}${JSON.stringify(
|
|
1248
|
+
this.request
|
|
1249
|
+
)}${this.isOptional(chunkGraph.moduleGraph)}`
|
|
1250
|
+
);
|
|
1251
|
+
const meta = /** @type {ImportDependencyMeta | undefined} */ (
|
|
1252
|
+
this.dependencyMeta
|
|
1164
1253
|
);
|
|
1254
|
+
if (meta) {
|
|
1255
|
+
if (meta.phase) {
|
|
1256
|
+
hash.update(`|phase=${ImportPhaseUtils.stringify(meta.phase)}`);
|
|
1257
|
+
}
|
|
1258
|
+
if (meta.attributes) {
|
|
1259
|
+
hash.update(`|attributes=${JSON.stringify(meta.attributes)}`);
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1165
1262
|
super.updateHash(hash, context);
|
|
1166
1263
|
}
|
|
1167
1264
|
|
|
1168
1265
|
/**
|
|
1266
|
+
* Serializes this instance into the provided serializer context.
|
|
1169
1267
|
* @param {ObjectSerializerContext} context context
|
|
1170
1268
|
*/
|
|
1171
1269
|
serialize(context) {
|
|
@@ -1180,6 +1278,7 @@ class ExternalModule extends Module {
|
|
|
1180
1278
|
}
|
|
1181
1279
|
|
|
1182
1280
|
/**
|
|
1281
|
+
* Restores this instance from the provided deserializer context.
|
|
1183
1282
|
* @param {ObjectDeserializerContext} context context
|
|
1184
1283
|
*/
|
|
1185
1284
|
deserialize(context) {
|
|
@@ -33,6 +33,7 @@ const { cachedSetProperty, resolveByProperty } = require("./util/cleverMerge");
|
|
|
33
33
|
/** @typedef {(options?: ResolveOptions) => ExternalItemFunctionDataGetResolveCallbackResult | ExternalItemFunctionDataGetResolveResult} ExternalItemFunctionDataGetResolve */
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
+
* Defines the external item function data type used by this module.
|
|
36
37
|
* @typedef {object} ExternalItemFunctionData
|
|
37
38
|
* @property {string} context the directory in which the request is placed
|
|
38
39
|
* @property {ModuleFactoryCreateDataContextInfo} contextInfo contextual information
|
|
@@ -50,6 +51,7 @@ const EMPTY_RESOLVE_OPTIONS = {};
|
|
|
50
51
|
// TODO webpack 6 remove this
|
|
51
52
|
const callDeprecatedExternals = util.deprecate(
|
|
52
53
|
/**
|
|
54
|
+
* Handles the callback logic for this hook.
|
|
53
55
|
* @param {EXPECTED_FUNCTION} externalsFunction externals function
|
|
54
56
|
* @param {string} context context
|
|
55
57
|
* @param {string} request request
|
|
@@ -67,6 +69,7 @@ const callDeprecatedExternals = util.deprecate(
|
|
|
67
69
|
/** @typedef {ExternalItemObjectKnown & ExternalItemObjectUnknown} ExternalItemObject */
|
|
68
70
|
|
|
69
71
|
/**
|
|
72
|
+
* Defines the external weak cache type used by this module.
|
|
70
73
|
* @template {ExternalItemObject} T
|
|
71
74
|
* @typedef {WeakMap<T, Map<IssuerLayer, Omit<T, "byLayer">>>} ExternalWeakCache
|
|
72
75
|
*/
|
|
@@ -75,6 +78,7 @@ const callDeprecatedExternals = util.deprecate(
|
|
|
75
78
|
const cache = new WeakMap();
|
|
76
79
|
|
|
77
80
|
/**
|
|
81
|
+
* Returns result.
|
|
78
82
|
* @param {ExternalItemObject} obj obj
|
|
79
83
|
* @param {IssuerLayer} layer layer
|
|
80
84
|
* @returns {Omit<ExternalItemObject, "byLayer">} result
|
|
@@ -99,6 +103,7 @@ const PLUGIN_NAME = "ExternalModuleFactoryPlugin";
|
|
|
99
103
|
|
|
100
104
|
class ExternalModuleFactoryPlugin {
|
|
101
105
|
/**
|
|
106
|
+
* Creates an instance of ExternalModuleFactoryPlugin.
|
|
102
107
|
* @param {ExternalsType | ((dependency: Dependency) => ExternalsType)} type default external type
|
|
103
108
|
* @param {Externals} externals externals config
|
|
104
109
|
*/
|
|
@@ -108,6 +113,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
/**
|
|
116
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
111
117
|
* @param {NormalModuleFactory} normalModuleFactory the normal module factory
|
|
112
118
|
* @returns {void}
|
|
113
119
|
*/
|
|
@@ -124,6 +130,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
124
130
|
/** @typedef {(err?: Error | null, externalModule?: ExternalModule) => void} HandleExternalCallback */
|
|
125
131
|
|
|
126
132
|
/**
|
|
133
|
+
* Processes the provided value.
|
|
127
134
|
* @param {ExternalValue} value the external config
|
|
128
135
|
* @param {ExternalsType | undefined} type type of external
|
|
129
136
|
* @param {HandleExternalCallback} callback callback
|
|
@@ -186,6 +193,11 @@ class ExternalModuleFactoryPlugin {
|
|
|
186
193
|
|
|
187
194
|
dependencyMeta = {
|
|
188
195
|
attributes: dependency.attributes,
|
|
196
|
+
phase:
|
|
197
|
+
dependency instanceof HarmonyImportDependency ||
|
|
198
|
+
dependency instanceof ImportDependency
|
|
199
|
+
? dependency.phase
|
|
200
|
+
: undefined,
|
|
189
201
|
externalType
|
|
190
202
|
};
|
|
191
203
|
} else if (dependency instanceof CssImportDependency) {
|
|
@@ -215,6 +227,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
215
227
|
};
|
|
216
228
|
|
|
217
229
|
/**
|
|
230
|
+
* Processes the provided external.
|
|
218
231
|
* @param {Externals} externals externals config
|
|
219
232
|
* @param {HandleExternalCallback} callback callback
|
|
220
233
|
* @returns {void}
|
|
@@ -230,6 +243,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
230
243
|
/** @type {boolean | undefined} */
|
|
231
244
|
let asyncFlag;
|
|
232
245
|
/**
|
|
246
|
+
* Handle externals and callback.
|
|
233
247
|
* @param {(Error | null)=} err err
|
|
234
248
|
* @param {ExternalModule=} module module
|
|
235
249
|
* @returns {void}
|
|
@@ -262,6 +276,7 @@ class ExternalModuleFactoryPlugin {
|
|
|
262
276
|
}
|
|
263
277
|
} else if (typeof externals === "function") {
|
|
264
278
|
/**
|
|
279
|
+
* Processes the provided err.
|
|
265
280
|
* @param {Error | null | undefined} err err
|
|
266
281
|
* @param {ExternalValue=} value value
|
|
267
282
|
* @param {ExternalsType=} type type
|
package/lib/ExternalsPlugin.js
CHANGED
|
@@ -19,6 +19,7 @@ const PLUGIN_NAME = "ExternalsPlugin";
|
|
|
19
19
|
|
|
20
20
|
class ExternalsPlugin {
|
|
21
21
|
/**
|
|
22
|
+
* Creates an instance of ExternalsPlugin.
|
|
22
23
|
* @param {ExternalsType | ((dependency: Dependency) => ExternalsType)} type default external type
|
|
23
24
|
* @param {Externals} externals externals config
|
|
24
25
|
*/
|
|
@@ -28,7 +29,7 @@ class ExternalsPlugin {
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
|
-
*
|
|
32
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
32
33
|
* @param {Compiler} compiler the compiler instance
|
|
33
34
|
* @returns {void}
|
|
34
35
|
*/
|