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/config/defaults.js
CHANGED
|
@@ -22,6 +22,7 @@ const {
|
|
|
22
22
|
CSS_MODULE_TYPE_AUTO,
|
|
23
23
|
CSS_MODULE_TYPE_GLOBAL,
|
|
24
24
|
CSS_MODULE_TYPE_MODULE,
|
|
25
|
+
HTML_MODULE_TYPE,
|
|
25
26
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
26
27
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
27
28
|
JAVASCRIPT_MODULE_TYPE_ESM,
|
|
@@ -80,11 +81,13 @@ const {
|
|
|
80
81
|
/** @typedef {import("./target").TargetProperties} TargetProperties */
|
|
81
82
|
|
|
82
83
|
/**
|
|
84
|
+
* Defines the recursive non nullable type used by this module.
|
|
83
85
|
* @template T
|
|
84
86
|
* @typedef {{ [P in keyof T]-?: T[P] extends object ? RecursiveNonNullable<NonNullable<T[P]>> : NonNullable<T[P]> }} RecursiveNonNullable
|
|
85
87
|
*/
|
|
86
88
|
|
|
87
89
|
/**
|
|
90
|
+
* Defines the shared type used by this module.
|
|
88
91
|
* @typedef {Output & {
|
|
89
92
|
* uniqueName: NonNullable<Output["uniqueName"]>,
|
|
90
93
|
* filename: NonNullable<Output["filename"]>,
|
|
@@ -129,6 +132,7 @@ const {
|
|
|
129
132
|
*/
|
|
130
133
|
|
|
131
134
|
/**
|
|
135
|
+
* Defines the shared type used by this module.
|
|
132
136
|
* @typedef {SnapshotOptions & {
|
|
133
137
|
* managedPaths: NonNullable<SnapshotOptions["managedPaths"]>,
|
|
134
138
|
* unmanagedPaths: NonNullable<SnapshotOptions["unmanagedPaths"]>,
|
|
@@ -141,6 +145,7 @@ const {
|
|
|
141
145
|
*/
|
|
142
146
|
|
|
143
147
|
/**
|
|
148
|
+
* Defines the shared type used by this module.
|
|
144
149
|
* @typedef {Optimization & {
|
|
145
150
|
* runtimeChunk: NonNullable<Optimization["runtimeChunk"]>,
|
|
146
151
|
* splitChunks: NonNullable<Optimization["splitChunks"]>,
|
|
@@ -169,6 +174,7 @@ const {
|
|
|
169
174
|
*/
|
|
170
175
|
|
|
171
176
|
/**
|
|
177
|
+
* Defines the shared type used by this module.
|
|
172
178
|
* @typedef {ExternalsPresets & {
|
|
173
179
|
* web: NonNullable<ExternalsPresets["web"]>,
|
|
174
180
|
* node: NonNullable<ExternalsPresets["node"]>,
|
|
@@ -181,6 +187,7 @@ const {
|
|
|
181
187
|
*/
|
|
182
188
|
|
|
183
189
|
/**
|
|
190
|
+
* Defines the shared type used by this module.
|
|
184
191
|
* @typedef {InfrastructureLogging & {
|
|
185
192
|
* stream: NonNullable<InfrastructureLogging["stream"]>,
|
|
186
193
|
* level: NonNullable<InfrastructureLogging["level"]>,
|
|
@@ -191,14 +198,17 @@ const {
|
|
|
191
198
|
*/
|
|
192
199
|
|
|
193
200
|
/**
|
|
201
|
+
* Defines the webpack options normalized with base defaults type used by this module.
|
|
194
202
|
* @typedef {WebpackOptionsNormalized & { context: NonNullable<WebpackOptionsNormalized["context"]> } & { infrastructureLogging: InfrastructureLoggingNormalizedWithDefaults }} WebpackOptionsNormalizedWithBaseDefaults
|
|
195
203
|
*/
|
|
196
204
|
|
|
197
205
|
/**
|
|
206
|
+
* Defines the webpack options normalized with defaults type used by this module.
|
|
198
207
|
* @typedef {WebpackOptionsNormalizedWithBaseDefaults & { target: NonNullable<WebpackOptionsNormalized["target"]> } & { output: OutputNormalizedWithDefaults } & { optimization: OptimizationNormalizedWithDefaults } & { devtool: NonNullable<WebpackOptionsNormalized["devtool"]> } & { stats: NonNullable<WebpackOptionsNormalized["stats"]> } & { node: NonNullable<WebpackOptionsNormalized["node"]> } & { profile: NonNullable<WebpackOptionsNormalized["profile"]> } & { parallelism: NonNullable<WebpackOptionsNormalized["parallelism"]> } & { snapshot: SnapshotNormalizedWithDefaults } & { externalsPresets: ExternalsPresetsNormalizedWithDefaults } & { externalsType: NonNullable<WebpackOptionsNormalized["externalsType"]> } & { watch: NonNullable<WebpackOptionsNormalized["watch"]> } & { performance: NonNullable<WebpackOptionsNormalized["performance"]> } & { recordsInputPath: NonNullable<WebpackOptionsNormalized["recordsInputPath"]> } & { recordsOutputPath: NonNullable<WebpackOptionsNormalized["recordsOutputPath"]> } & { dotenv: NonNullable<WebpackOptionsNormalized["dotenv"]> }} WebpackOptionsNormalizedWithDefaults
|
|
199
208
|
*/
|
|
200
209
|
|
|
201
210
|
/**
|
|
211
|
+
* Defines the resolved options type used by this module.
|
|
202
212
|
* @typedef {object} ResolvedOptions
|
|
203
213
|
* @property {PlatformTargetProperties | false} platform - platform target properties
|
|
204
214
|
*/
|
|
@@ -211,7 +221,7 @@ const DEFAULTS = {
|
|
|
211
221
|
};
|
|
212
222
|
|
|
213
223
|
/**
|
|
214
|
-
*
|
|
224
|
+
* Processes the provided obj.
|
|
215
225
|
* @template T
|
|
216
226
|
* @template {keyof T} P
|
|
217
227
|
* @param {T} obj an object
|
|
@@ -226,7 +236,7 @@ const D = (obj, prop, value) => {
|
|
|
226
236
|
};
|
|
227
237
|
|
|
228
238
|
/**
|
|
229
|
-
*
|
|
239
|
+
* Processes the provided obj.
|
|
230
240
|
* @template T
|
|
231
241
|
* @template {keyof T} P
|
|
232
242
|
* @param {T} obj an object
|
|
@@ -282,6 +292,7 @@ const A = (obj, prop, factory) => {
|
|
|
282
292
|
};
|
|
283
293
|
|
|
284
294
|
/**
|
|
295
|
+
* Apply webpack options base defaults.
|
|
285
296
|
* @param {WebpackOptionsNormalized} options options to be modified
|
|
286
297
|
* @returns {void}
|
|
287
298
|
*/
|
|
@@ -291,6 +302,7 @@ const applyWebpackOptionsBaseDefaults = (options) => {
|
|
|
291
302
|
};
|
|
292
303
|
|
|
293
304
|
/**
|
|
305
|
+
* Apply webpack options defaults.
|
|
294
306
|
* @param {WebpackOptionsNormalized} options options to be modified
|
|
295
307
|
* @param {number=} compilerIndex index of compiler
|
|
296
308
|
* @returns {ResolvedOptions} Resolved options after apply defaults
|
|
@@ -420,6 +432,12 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
420
432
|
css:
|
|
421
433
|
/** @type {NonNullable<ExperimentsNormalized["css"]>} */
|
|
422
434
|
(options.experiments.css),
|
|
435
|
+
html:
|
|
436
|
+
/** @type {NonNullable<ExperimentsNormalized["html"]>} */
|
|
437
|
+
(options.experiments.html),
|
|
438
|
+
typescript:
|
|
439
|
+
/** @type {NonNullable<ExperimentsNormalized["typescript"]>} */
|
|
440
|
+
(options.experiments.typescript),
|
|
423
441
|
deferImport:
|
|
424
442
|
/** @type {NonNullable<ExperimentsNormalized["deferImport"]>} */
|
|
425
443
|
(options.experiments.deferImport),
|
|
@@ -433,7 +451,8 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
433
451
|
mode: options.mode,
|
|
434
452
|
outputModule:
|
|
435
453
|
/** @type {NonNullable<WebpackOptionsNormalized["output"]["module"]>} */
|
|
436
|
-
(options.output.module)
|
|
454
|
+
(options.output.module),
|
|
455
|
+
library: options.output.library
|
|
437
456
|
});
|
|
438
457
|
|
|
439
458
|
applyExternalsPresetsDefaults(options.externalsPresets, {
|
|
@@ -505,7 +524,10 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
505
524
|
mode: /** @type {Mode} */ (options.mode),
|
|
506
525
|
css:
|
|
507
526
|
/** @type {NonNullable<ExperimentsNormalized["css"]>} */
|
|
508
|
-
(options.experiments.css)
|
|
527
|
+
(options.experiments.css),
|
|
528
|
+
typescript:
|
|
529
|
+
/** @type {NonNullable<ExperimentsNormalized["typescript"]>} */
|
|
530
|
+
(options.experiments.typescript)
|
|
509
531
|
}),
|
|
510
532
|
options.resolve
|
|
511
533
|
);
|
|
@@ -531,6 +553,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
|
|
|
531
553
|
};
|
|
532
554
|
|
|
533
555
|
/**
|
|
556
|
+
* Apply experiments defaults.
|
|
534
557
|
* @param {ExperimentsNormalized} experiments options
|
|
535
558
|
* @param {object} options options
|
|
536
559
|
* @param {boolean} options.production is production
|
|
@@ -554,6 +577,10 @@ const applyExperimentsDefaults = (
|
|
|
554
577
|
D(experiments, "deferImport", false);
|
|
555
578
|
D(experiments, "sourceImport", false);
|
|
556
579
|
F(experiments, "css", () => (experiments.futureDefaults ? true : undefined));
|
|
580
|
+
F(experiments, "html", () => (experiments.futureDefaults ? true : undefined));
|
|
581
|
+
F(experiments, "typescript", () =>
|
|
582
|
+
experiments.futureDefaults ? true : undefined
|
|
583
|
+
);
|
|
557
584
|
|
|
558
585
|
if (typeof experiments.buildHttp === "object") {
|
|
559
586
|
D(experiments.buildHttp, "frozen", production);
|
|
@@ -562,6 +589,7 @@ const applyExperimentsDefaults = (
|
|
|
562
589
|
};
|
|
563
590
|
|
|
564
591
|
/**
|
|
592
|
+
* Apply cache defaults.
|
|
565
593
|
* @param {CacheOptionsNormalized} cache options
|
|
566
594
|
* @param {object} options options
|
|
567
595
|
* @param {string} options.name name
|
|
@@ -644,6 +672,7 @@ const applyCacheDefaults = (
|
|
|
644
672
|
};
|
|
645
673
|
|
|
646
674
|
/**
|
|
675
|
+
* Apply snapshot defaults.
|
|
647
676
|
* @param {SnapshotOptions} snapshot options
|
|
648
677
|
* @param {object} options options
|
|
649
678
|
* @param {boolean} options.production is production
|
|
@@ -721,6 +750,7 @@ const applySnapshotDefaults = (snapshot, { production, futureDefaults }) => {
|
|
|
721
750
|
};
|
|
722
751
|
|
|
723
752
|
/**
|
|
753
|
+
* Apply javascript parser options defaults.
|
|
724
754
|
* @param {JavascriptParserOptions} parserOptions parser options
|
|
725
755
|
* @param {object} options options
|
|
726
756
|
* @param {boolean} options.futureDefaults is future defaults enabled
|
|
@@ -728,11 +758,21 @@ const applySnapshotDefaults = (snapshot, { production, futureDefaults }) => {
|
|
|
728
758
|
* @param {boolean} options.sourceImport is import source enabled
|
|
729
759
|
* @param {boolean} options.isNode is node target platform
|
|
730
760
|
* @param {boolean} options.outputModule is output.module enabled
|
|
761
|
+
* @param {WebpackOptionsNormalized["output"]["library"]} options.library library options
|
|
762
|
+
* @param {boolean} options.typescript is typescript enabled
|
|
731
763
|
* @returns {void}
|
|
732
764
|
*/
|
|
733
765
|
const applyJavascriptParserOptionsDefaults = (
|
|
734
766
|
parserOptions,
|
|
735
|
-
{
|
|
767
|
+
{
|
|
768
|
+
futureDefaults,
|
|
769
|
+
deferImport,
|
|
770
|
+
sourceImport,
|
|
771
|
+
isNode,
|
|
772
|
+
outputModule,
|
|
773
|
+
library,
|
|
774
|
+
typescript
|
|
775
|
+
}
|
|
736
776
|
) => {
|
|
737
777
|
D(parserOptions, "unknownContextRequest", ".");
|
|
738
778
|
D(parserOptions, "unknownContextRegExp", false);
|
|
@@ -755,10 +795,13 @@ const applyJavascriptParserOptionsDefaults = (
|
|
|
755
795
|
D(parserOptions, "dynamicUrl", true);
|
|
756
796
|
D(parserOptions, "deferImport", deferImport);
|
|
757
797
|
D(parserOptions, "sourceImport", sourceImport);
|
|
798
|
+
D(parserOptions, "typescript", typescript);
|
|
758
799
|
if (futureDefaults) D(parserOptions, "exportsPresence", "error");
|
|
800
|
+
D(parserOptions, "anonymousDefaultExportName", !library);
|
|
759
801
|
};
|
|
760
802
|
|
|
761
803
|
/**
|
|
804
|
+
* Apply json generator options defaults.
|
|
762
805
|
* @param {JsonGeneratorOptions} generatorOptions generator options
|
|
763
806
|
* @returns {void}
|
|
764
807
|
*/
|
|
@@ -767,6 +810,7 @@ const applyJsonGeneratorOptionsDefaults = (generatorOptions) => {
|
|
|
767
810
|
};
|
|
768
811
|
|
|
769
812
|
/**
|
|
813
|
+
* Apply css generator options defaults.
|
|
770
814
|
* @param {CssGeneratorOptions} generatorOptions generator options
|
|
771
815
|
* @param {object} options options
|
|
772
816
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
@@ -785,12 +829,15 @@ const applyCssGeneratorOptionsDefaults = (
|
|
|
785
829
|
};
|
|
786
830
|
|
|
787
831
|
/**
|
|
832
|
+
* Apply module defaults.
|
|
788
833
|
* @param {ModuleOptions} module options
|
|
789
834
|
* @param {object} options options
|
|
790
835
|
* @param {boolean} options.cache is caching enabled
|
|
791
836
|
* @param {boolean} options.syncWebAssembly is syncWebAssembly enabled
|
|
792
837
|
* @param {boolean} options.asyncWebAssembly is asyncWebAssembly enabled
|
|
838
|
+
* @param {boolean} options.typescript is typescript enabled
|
|
793
839
|
* @param {boolean} options.css is css enabled
|
|
840
|
+
* @param {boolean} options.html is html enabled
|
|
794
841
|
* @param {boolean} options.futureDefaults is future defaults enabled
|
|
795
842
|
* @param {string} options.uniqueName the unique name
|
|
796
843
|
* @param {boolean} options.isNode is node target platform
|
|
@@ -801,6 +848,7 @@ const applyCssGeneratorOptionsDefaults = (
|
|
|
801
848
|
* @param {HashSalt} options.hashSalt hash salt
|
|
802
849
|
* @param {HashFunction} options.hashFunction hash function
|
|
803
850
|
* @param {boolean} options.outputModule is output.module enabled
|
|
851
|
+
* @param {WebpackOptionsNormalized["output"]["library"]} options.library library options
|
|
804
852
|
* @returns {void}
|
|
805
853
|
*/
|
|
806
854
|
const applyModuleDefaults = (
|
|
@@ -812,6 +860,8 @@ const applyModuleDefaults = (
|
|
|
812
860
|
syncWebAssembly,
|
|
813
861
|
asyncWebAssembly,
|
|
814
862
|
css,
|
|
863
|
+
html,
|
|
864
|
+
typescript,
|
|
815
865
|
futureDefaults,
|
|
816
866
|
isNode,
|
|
817
867
|
uniqueName,
|
|
@@ -819,7 +869,8 @@ const applyModuleDefaults = (
|
|
|
819
869
|
mode,
|
|
820
870
|
deferImport,
|
|
821
871
|
sourceImport,
|
|
822
|
-
outputModule
|
|
872
|
+
outputModule,
|
|
873
|
+
library
|
|
823
874
|
}
|
|
824
875
|
) => {
|
|
825
876
|
if (cache) {
|
|
@@ -827,6 +878,7 @@ const applyModuleDefaults = (
|
|
|
827
878
|
module,
|
|
828
879
|
"unsafeCache",
|
|
829
880
|
/**
|
|
881
|
+
* Handles the callback logic for this hook.
|
|
830
882
|
* @param {Module} module module
|
|
831
883
|
* @returns {boolean} true, if we want to cache the module
|
|
832
884
|
*/
|
|
@@ -880,11 +932,14 @@ const applyModuleDefaults = (
|
|
|
880
932
|
deferImport,
|
|
881
933
|
sourceImport,
|
|
882
934
|
isNode,
|
|
883
|
-
outputModule
|
|
935
|
+
outputModule,
|
|
936
|
+
library,
|
|
937
|
+
typescript
|
|
884
938
|
}
|
|
885
939
|
);
|
|
886
940
|
|
|
887
941
|
F(module.generator, "json", () => ({}));
|
|
942
|
+
|
|
888
943
|
applyJsonGeneratorOptionsDefaults(
|
|
889
944
|
/** @type {NonNullable<GeneratorOptionsByModuleTypeKnown["json"]>} */
|
|
890
945
|
(module.generator.json)
|
|
@@ -1027,6 +1082,16 @@ const applyModuleDefaults = (
|
|
|
1027
1082
|
}
|
|
1028
1083
|
}
|
|
1029
1084
|
|
|
1085
|
+
if (html) {
|
|
1086
|
+
// `module.generator.html.extract` is intentionally left undefined by
|
|
1087
|
+
// default: HtmlGenerator treats undefined as "extract iff this HTML
|
|
1088
|
+
// module is a compilation entry", which is the HTML-entry-point
|
|
1089
|
+
// behaviour. Setting `extract: true` forces extraction for all HTML
|
|
1090
|
+
// modules (including imported ones); `extract: false` disables it
|
|
1091
|
+
// everywhere.
|
|
1092
|
+
F(module.generator, HTML_MODULE_TYPE, () => ({}));
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1030
1095
|
A(module, "defaultRules", () => {
|
|
1031
1096
|
const esm = {
|
|
1032
1097
|
type: JAVASCRIPT_MODULE_TYPE_ESM,
|
|
@@ -1084,6 +1149,7 @@ const applyModuleDefaults = (
|
|
|
1084
1149
|
...esm
|
|
1085
1150
|
}
|
|
1086
1151
|
];
|
|
1152
|
+
|
|
1087
1153
|
if (asyncWebAssembly) {
|
|
1088
1154
|
const wasm = {
|
|
1089
1155
|
type: WEBASSEMBLY_MODULE_TYPE_ASYNC,
|
|
@@ -1129,6 +1195,7 @@ const applyModuleDefaults = (
|
|
|
1129
1195
|
...wasm
|
|
1130
1196
|
});
|
|
1131
1197
|
}
|
|
1198
|
+
|
|
1132
1199
|
if (css) {
|
|
1133
1200
|
const resolve = {
|
|
1134
1201
|
fullySpecified: true,
|
|
@@ -1150,14 +1217,20 @@ const applyModuleDefaults = (
|
|
|
1150
1217
|
resolve
|
|
1151
1218
|
});
|
|
1152
1219
|
// For CSS modules, i.e. `.class { composes: className from "./style.css" }`
|
|
1153
|
-
// We inherit for such constructions
|
|
1220
|
+
// We inherit for such constructions, but skip files that are already
|
|
1221
|
+
// detected as CSS modules by extension (`.module.<ext>`) — they get
|
|
1222
|
+
// the same modules-mode behavior from the auto rule, and forcing a
|
|
1223
|
+
// different type stamp here would create a duplicate module instance.
|
|
1224
|
+
const moduleExtension = /\.module\.\w+$/i;
|
|
1154
1225
|
rules.push({
|
|
1155
1226
|
dependency: /css-import-local-module/,
|
|
1227
|
+
exclude: moduleExtension,
|
|
1156
1228
|
type: CSS_MODULE_TYPE_MODULE,
|
|
1157
1229
|
resolve
|
|
1158
1230
|
});
|
|
1159
1231
|
rules.push({
|
|
1160
1232
|
dependency: /css-import-global-module/,
|
|
1233
|
+
exclude: moduleExtension,
|
|
1161
1234
|
type: CSS_MODULE_TYPE_GLOBAL,
|
|
1162
1235
|
resolve
|
|
1163
1236
|
});
|
|
@@ -1179,6 +1252,72 @@ const applyModuleDefaults = (
|
|
|
1179
1252
|
}
|
|
1180
1253
|
);
|
|
1181
1254
|
}
|
|
1255
|
+
if (html) {
|
|
1256
|
+
const resolve = {
|
|
1257
|
+
fullySpecified: true,
|
|
1258
|
+
preferRelative: true
|
|
1259
|
+
};
|
|
1260
|
+
|
|
1261
|
+
rules.push({
|
|
1262
|
+
test: /\.html$/i,
|
|
1263
|
+
type: HTML_MODULE_TYPE,
|
|
1264
|
+
resolve
|
|
1265
|
+
});
|
|
1266
|
+
rules.push({
|
|
1267
|
+
mimetype: "text/html",
|
|
1268
|
+
type: HTML_MODULE_TYPE,
|
|
1269
|
+
resolve
|
|
1270
|
+
});
|
|
1271
|
+
if (css) {
|
|
1272
|
+
// Inline `<style>` content in an HTML module is fed into the
|
|
1273
|
+
// CSS pipeline as a `data:text/css` virtual module. We force
|
|
1274
|
+
// `exportType: "text"` so the CSS module exposes the
|
|
1275
|
+
// processed CSS text on the `css-text` codegen channel that
|
|
1276
|
+
// `HtmlInlineStyleDependency.Template` reads back into the
|
|
1277
|
+
// `<style>` tag.
|
|
1278
|
+
rules.push({
|
|
1279
|
+
dependency: "html-style",
|
|
1280
|
+
parser: {
|
|
1281
|
+
exportType: "text"
|
|
1282
|
+
},
|
|
1283
|
+
resolve
|
|
1284
|
+
});
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
if (typescript) {
|
|
1289
|
+
rules.push(
|
|
1290
|
+
{
|
|
1291
|
+
test: /\.mts$/i,
|
|
1292
|
+
...esm
|
|
1293
|
+
},
|
|
1294
|
+
{
|
|
1295
|
+
test: /\.ts$/i,
|
|
1296
|
+
descriptionData: {
|
|
1297
|
+
type: "module"
|
|
1298
|
+
},
|
|
1299
|
+
...esm
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
test: /\.cts$/i,
|
|
1303
|
+
...commonjs
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
test: /\.ts$/i,
|
|
1307
|
+
descriptionData: {
|
|
1308
|
+
type: "commonjs"
|
|
1309
|
+
},
|
|
1310
|
+
...commonjs
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
mimetype: {
|
|
1314
|
+
or: ["text/typescript", "application/typescript"]
|
|
1315
|
+
},
|
|
1316
|
+
...esm
|
|
1317
|
+
}
|
|
1318
|
+
);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1182
1321
|
rules.push(
|
|
1183
1322
|
{
|
|
1184
1323
|
dependency: "url",
|
|
@@ -1216,6 +1355,7 @@ const applyModuleDefaults = (
|
|
|
1216
1355
|
};
|
|
1217
1356
|
|
|
1218
1357
|
/**
|
|
1358
|
+
* Apply output defaults.
|
|
1219
1359
|
* @param {Output} output options
|
|
1220
1360
|
* @param {object} options options
|
|
1221
1361
|
* @param {string} options.context context
|
|
@@ -1242,6 +1382,7 @@ const applyOutputDefaults = (
|
|
|
1242
1382
|
}
|
|
1243
1383
|
) => {
|
|
1244
1384
|
/**
|
|
1385
|
+
* Returns a readable library name.
|
|
1245
1386
|
* @param {Library=} library the library option
|
|
1246
1387
|
* @returns {string} a readable library name
|
|
1247
1388
|
*/
|
|
@@ -1293,11 +1434,13 @@ const applyOutputDefaults = (
|
|
|
1293
1434
|
|
|
1294
1435
|
const environment = /** @type {Environment} */ (output.environment);
|
|
1295
1436
|
/**
|
|
1437
|
+
* Returns true, when v is truthy or undefined.
|
|
1296
1438
|
* @param {boolean | undefined} v value
|
|
1297
1439
|
* @returns {boolean} true, when v is truthy or undefined
|
|
1298
1440
|
*/
|
|
1299
1441
|
const optimistic = (v) => v || v === undefined;
|
|
1300
1442
|
/**
|
|
1443
|
+
* Conditionally optimistic.
|
|
1301
1444
|
* @param {boolean | undefined} v value
|
|
1302
1445
|
* @param {boolean | undefined} c condition
|
|
1303
1446
|
* @returns {boolean | undefined} true, when v is truthy or undefined, or c is truthy
|
|
@@ -1439,6 +1582,43 @@ const applyOutputDefaults = (
|
|
|
1439
1582
|
}
|
|
1440
1583
|
return "[id].css";
|
|
1441
1584
|
});
|
|
1585
|
+
// Derive html filename defaults from `output.filename` / `output.chunkFilename`
|
|
1586
|
+
// (the same shape the CSS pipeline uses), but if the derived template lacks
|
|
1587
|
+
// any per-module differentiator, fall back to `[name].html` so multiple
|
|
1588
|
+
// extracted HTML modules in one compilation don't collide on the same
|
|
1589
|
+
// emitted file. For example: `output.filename: "bundle.js"` would derive
|
|
1590
|
+
// `bundle.html` — two `.html` modules extracted in the same build would
|
|
1591
|
+
// both want that name and conflict at emit time.
|
|
1592
|
+
const HAS_PATH_PLACEHOLDER_REGEXP =
|
|
1593
|
+
/\[(name|id|chunkhash|contenthash|fullhash|hash)/;
|
|
1594
|
+
/**
|
|
1595
|
+
* @param {string} template html filename template derived from `output.filename`
|
|
1596
|
+
* @returns {string} same template, or `[name].html` if it has no per-module placeholder
|
|
1597
|
+
*/
|
|
1598
|
+
const ensureUniqueHtmlTemplate = (template) =>
|
|
1599
|
+
HAS_PATH_PLACEHOLDER_REGEXP.test(template) ? template : "[name].html";
|
|
1600
|
+
F(output, "htmlFilename", () => {
|
|
1601
|
+
const filename =
|
|
1602
|
+
/** @type {NonNullable<Output["htmlFilename"]>} */
|
|
1603
|
+
(output.filename);
|
|
1604
|
+
if (typeof filename !== "function") {
|
|
1605
|
+
return ensureUniqueHtmlTemplate(
|
|
1606
|
+
filename.replace(/\.[mc]?js(\?|$)/, ".html$1")
|
|
1607
|
+
);
|
|
1608
|
+
}
|
|
1609
|
+
return "[name].html";
|
|
1610
|
+
});
|
|
1611
|
+
F(output, "htmlChunkFilename", () => {
|
|
1612
|
+
const chunkFilename =
|
|
1613
|
+
/** @type {NonNullable<Output["htmlChunkFilename"]>} */
|
|
1614
|
+
(output.chunkFilename);
|
|
1615
|
+
if (typeof chunkFilename !== "function") {
|
|
1616
|
+
return ensureUniqueHtmlTemplate(
|
|
1617
|
+
chunkFilename.replace(/\.[mc]?js(\?|$)/, ".html$1")
|
|
1618
|
+
);
|
|
1619
|
+
}
|
|
1620
|
+
return "[name].html";
|
|
1621
|
+
});
|
|
1442
1622
|
D(output, "assetModuleFilename", "[hash][ext][query][fragment]");
|
|
1443
1623
|
D(output, "webassemblyModuleFilename", "[hash].module.wasm");
|
|
1444
1624
|
D(output, "compareBeforeEmit", true);
|
|
@@ -1615,6 +1795,7 @@ const applyOutputDefaults = (
|
|
|
1615
1795
|
}
|
|
1616
1796
|
|
|
1617
1797
|
/**
|
|
1798
|
+
* Processes the provided fn.
|
|
1618
1799
|
* @param {(entryDescription: EntryDescription) => void} fn iterator
|
|
1619
1800
|
* @returns {void}
|
|
1620
1801
|
*/
|
|
@@ -1673,6 +1854,7 @@ const applyOutputDefaults = (
|
|
|
1673
1854
|
};
|
|
1674
1855
|
|
|
1675
1856
|
/**
|
|
1857
|
+
* Apply externals presets defaults.
|
|
1676
1858
|
* @param {ExternalsPresets} externalsPresets options
|
|
1677
1859
|
* @param {object} options options
|
|
1678
1860
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
@@ -1685,6 +1867,7 @@ const applyExternalsPresetsDefaults = (
|
|
|
1685
1867
|
{ targetProperties, buildHttp, outputModule }
|
|
1686
1868
|
) => {
|
|
1687
1869
|
/**
|
|
1870
|
+
* Checks whether this object is universal.
|
|
1688
1871
|
* @param {keyof TargetProperties} key a key
|
|
1689
1872
|
* @returns {boolean} true when target is universal, otherwise false
|
|
1690
1873
|
*/
|
|
@@ -1752,6 +1935,7 @@ const applyExternalsPresetsDefaults = (
|
|
|
1752
1935
|
};
|
|
1753
1936
|
|
|
1754
1937
|
/**
|
|
1938
|
+
* Apply loader defaults.
|
|
1755
1939
|
* @param {Loader} loader options
|
|
1756
1940
|
* @param {object} options options
|
|
1757
1941
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
@@ -1776,6 +1960,7 @@ const applyLoaderDefaults = (loader, { targetProperties, environment }) => {
|
|
|
1776
1960
|
};
|
|
1777
1961
|
|
|
1778
1962
|
/**
|
|
1963
|
+
* Apply node defaults.
|
|
1779
1964
|
* @param {WebpackNode} node options
|
|
1780
1965
|
* @param {object} options options
|
|
1781
1966
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
@@ -1821,6 +2006,7 @@ const applyNodeDefaults = (
|
|
|
1821
2006
|
};
|
|
1822
2007
|
|
|
1823
2008
|
/**
|
|
2009
|
+
* Apply performance defaults.
|
|
1824
2010
|
* @param {Performance} performance options
|
|
1825
2011
|
* @param {object} options options
|
|
1826
2012
|
* @param {boolean} options.production is production
|
|
@@ -1834,6 +2020,7 @@ const applyPerformanceDefaults = (performance, { production }) => {
|
|
|
1834
2020
|
};
|
|
1835
2021
|
|
|
1836
2022
|
/**
|
|
2023
|
+
* Apply optimization defaults.
|
|
1837
2024
|
* @param {Optimization} optimization options
|
|
1838
2025
|
* @param {object} options options
|
|
1839
2026
|
* @param {boolean} options.production is production
|
|
@@ -1931,12 +2118,14 @@ const applyOptimizationDefaults = (
|
|
|
1931
2118
|
};
|
|
1932
2119
|
|
|
1933
2120
|
/**
|
|
2121
|
+
* Gets resolve defaults.
|
|
1934
2122
|
* @param {object} options options
|
|
1935
2123
|
* @param {boolean} options.cache is cache enable
|
|
1936
2124
|
* @param {string} options.context build context
|
|
1937
2125
|
* @param {TargetProperties | false} options.targetProperties target properties
|
|
1938
2126
|
* @param {Mode} options.mode mode
|
|
1939
2127
|
* @param {boolean} options.css is css enabled
|
|
2128
|
+
* @param {boolean} options.typescript is typescript enabled
|
|
1940
2129
|
* @returns {ResolveOptions} resolve options
|
|
1941
2130
|
*/
|
|
1942
2131
|
const getResolveDefaults = ({
|
|
@@ -1944,7 +2133,8 @@ const getResolveDefaults = ({
|
|
|
1944
2133
|
context,
|
|
1945
2134
|
targetProperties,
|
|
1946
2135
|
mode,
|
|
1947
|
-
css
|
|
2136
|
+
css,
|
|
2137
|
+
typescript
|
|
1948
2138
|
}) => {
|
|
1949
2139
|
/** @type {string[]} */
|
|
1950
2140
|
const conditions = ["webpack"];
|
|
@@ -1959,24 +2149,43 @@ const getResolveDefaults = ({
|
|
|
1959
2149
|
if (targetProperties.nwjs) conditions.push("nwjs");
|
|
1960
2150
|
}
|
|
1961
2151
|
|
|
1962
|
-
const jsExtensions =
|
|
2152
|
+
const jsExtensions = typescript
|
|
2153
|
+
? [".ts", ".js", ".json", ".wasm"]
|
|
2154
|
+
: [".js", ".json", ".wasm"];
|
|
1963
2155
|
|
|
1964
2156
|
const tp = targetProperties;
|
|
1965
2157
|
const browserField =
|
|
1966
2158
|
tp && tp.web && (!tp.node || (tp.electron && tp.electronRenderer));
|
|
1967
2159
|
|
|
2160
|
+
// When `experiments.typescript` is on, also honor the `typescript`
|
|
2161
|
+
// conditional-exports key so monorepo packages can ship .ts sources via
|
|
2162
|
+
// `package.json#exports` — same convention Node.js's amaro uses.
|
|
2163
|
+
const tsConditionPrefix = typescript ? ["typescript"] : [];
|
|
2164
|
+
|
|
1968
2165
|
/** @type {() => ResolveOptions} */
|
|
1969
2166
|
const cjsDeps = () => ({
|
|
1970
2167
|
aliasFields: browserField ? ["browser"] : [],
|
|
1971
2168
|
mainFields: browserField ? ["browser", "module", "..."] : ["module", "..."],
|
|
1972
|
-
conditionNames: [
|
|
2169
|
+
conditionNames: [
|
|
2170
|
+
...tsConditionPrefix,
|
|
2171
|
+
"require",
|
|
2172
|
+
"module-sync",
|
|
2173
|
+
"module",
|
|
2174
|
+
"..."
|
|
2175
|
+
],
|
|
1973
2176
|
extensions: [...jsExtensions]
|
|
1974
2177
|
});
|
|
1975
2178
|
/** @type {() => ResolveOptions} */
|
|
1976
2179
|
const esmDeps = () => ({
|
|
1977
2180
|
aliasFields: browserField ? ["browser"] : [],
|
|
1978
2181
|
mainFields: browserField ? ["browser", "module", "..."] : ["module", "..."],
|
|
1979
|
-
conditionNames: [
|
|
2182
|
+
conditionNames: [
|
|
2183
|
+
...tsConditionPrefix,
|
|
2184
|
+
"import",
|
|
2185
|
+
"module-sync",
|
|
2186
|
+
"module",
|
|
2187
|
+
"..."
|
|
2188
|
+
],
|
|
1980
2189
|
extensions: [...jsExtensions]
|
|
1981
2190
|
});
|
|
1982
2191
|
|
|
@@ -2057,10 +2266,20 @@ const getResolveDefaults = ({
|
|
|
2057
2266
|
cssResolveOptions;
|
|
2058
2267
|
}
|
|
2059
2268
|
|
|
2269
|
+
if (typescript) {
|
|
2270
|
+
resolveOptions.tsconfig = true;
|
|
2271
|
+
resolveOptions.extensionAlias = {
|
|
2272
|
+
".js": [".js", ".ts"],
|
|
2273
|
+
".cjs": [".cjs", ".cts"],
|
|
2274
|
+
".mjs": [".mjs", ".mts"]
|
|
2275
|
+
};
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2060
2278
|
return resolveOptions;
|
|
2061
2279
|
};
|
|
2062
2280
|
|
|
2063
2281
|
/**
|
|
2282
|
+
* Gets resolve loader defaults.
|
|
2064
2283
|
* @param {object} options options
|
|
2065
2284
|
* @param {boolean} options.cache is cache enable
|
|
2066
2285
|
* @returns {ResolveOptions} resolve options
|
|
@@ -2080,6 +2299,7 @@ const getResolveLoaderDefaults = ({ cache }) => {
|
|
|
2080
2299
|
};
|
|
2081
2300
|
|
|
2082
2301
|
/**
|
|
2302
|
+
* Apply infrastructure logging defaults.
|
|
2083
2303
|
* @param {InfrastructureLogging} infrastructureLogging options
|
|
2084
2304
|
* @returns {void}
|
|
2085
2305
|
*/
|