webpack 5.97.1 → 5.104.1
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 +368 -434
- package/bin/webpack.js +15 -9
- package/hot/dev-server.js +18 -3
- package/hot/emitter-event-target.js +7 -0
- package/hot/lazy-compilation-node.js +45 -29
- package/hot/lazy-compilation-universal.js +18 -0
- package/hot/lazy-compilation-web.js +15 -5
- package/hot/load-http.js +7 -0
- package/hot/log.js +15 -15
- package/hot/only-dev-server.js +19 -4
- package/hot/poll.js +1 -0
- package/lib/APIPlugin.js +48 -50
- package/lib/AbstractMethodError.js +1 -0
- package/lib/AsyncDependenciesBlock.js +4 -5
- package/lib/AutomaticPrefetchPlugin.js +22 -22
- package/lib/BannerPlugin.js +35 -40
- package/lib/Cache.js +12 -9
- package/lib/CacheFacade.js +13 -13
- package/lib/CaseSensitiveModulesWarning.js +6 -6
- package/lib/Chunk.js +68 -47
- package/lib/ChunkGraph.js +174 -95
- package/lib/ChunkGroup.js +32 -24
- package/lib/ChunkTemplate.js +8 -8
- package/lib/CleanPlugin.js +90 -42
- package/lib/CodeGenerationResults.js +12 -9
- package/lib/CompatibilityPlugin.js +70 -21
- package/lib/Compilation.js +827 -550
- package/lib/Compiler.js +137 -109
- package/lib/ConcatenationScope.js +45 -8
- package/lib/ConditionalInitFragment.js +1 -1
- package/lib/ConstPlugin.js +89 -59
- package/lib/ContextExclusionPlugin.js +5 -4
- package/lib/ContextModule.js +66 -51
- package/lib/ContextModuleFactory.js +51 -30
- package/lib/ContextReplacementPlugin.js +89 -34
- package/lib/CssModule.js +8 -4
- package/lib/DefinePlugin.js +209 -57
- package/lib/DelegatedModule.js +34 -23
- package/lib/DelegatedModuleFactoryPlugin.js +27 -24
- package/lib/DelegatedPlugin.js +4 -2
- package/lib/DependenciesBlock.js +0 -2
- package/lib/Dependency.js +37 -19
- package/lib/DependencyTemplate.js +2 -0
- package/lib/DependencyTemplates.js +5 -6
- package/lib/DllEntryPlugin.js +8 -4
- package/lib/DllModule.js +11 -12
- package/lib/DllModuleFactory.js +2 -2
- package/lib/DllPlugin.js +9 -6
- package/lib/DllReferencePlugin.js +60 -65
- package/lib/DotenvPlugin.js +462 -0
- package/lib/DynamicEntryPlugin.js +8 -8
- package/lib/EntryOptionPlugin.js +8 -6
- package/lib/EntryPlugin.js +5 -3
- package/lib/Entrypoint.js +19 -0
- package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
- package/lib/EnvironmentPlugin.js +26 -19
- package/lib/ErrorHelpers.js +6 -6
- package/lib/EvalDevToolModulePlugin.js +17 -14
- package/lib/EvalSourceMapDevToolPlugin.js +156 -142
- package/lib/ExportsInfo.js +180 -115
- package/lib/ExportsInfoApiPlugin.js +2 -2
- package/lib/ExternalModule.js +256 -102
- package/lib/ExternalModuleFactoryPlugin.js +66 -29
- package/lib/ExternalsPlugin.js +57 -2
- package/lib/FileSystemInfo.js +313 -247
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
- package/lib/FlagDependencyExportsPlugin.js +29 -19
- package/lib/FlagDependencyUsagePlugin.js +9 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +43 -10
- package/lib/GraphHelpers.js +11 -3
- package/lib/HookWebpackError.js +35 -7
- package/lib/HotModuleReplacementPlugin.js +149 -108
- package/lib/HotUpdateChunk.js +0 -3
- package/lib/IgnoreErrorModuleFactory.js +2 -2
- package/lib/IgnorePlugin.js +16 -13
- package/lib/IgnoreWarningsPlugin.js +6 -4
- package/lib/InitFragment.js +41 -23
- package/lib/InvalidDependenciesModuleWarning.js +2 -3
- package/lib/JavascriptMetaInfoPlugin.js +2 -4
- package/lib/LibManifestPlugin.js +12 -13
- package/lib/LoaderOptionsPlugin.js +12 -14
- package/lib/LoaderTargetPlugin.js +5 -3
- package/lib/MainTemplate.js +18 -29
- package/lib/ManifestPlugin.js +235 -0
- package/lib/Module.js +138 -60
- package/lib/ModuleBuildError.js +4 -2
- package/lib/ModuleDependencyError.js +4 -3
- package/lib/ModuleDependencyWarning.js +4 -3
- package/lib/ModuleError.js +1 -1
- package/lib/ModuleFactory.js +10 -3
- package/lib/ModuleFilenameHelpers.js +63 -60
- package/lib/ModuleGraph.js +195 -70
- package/lib/ModuleGraphConnection.js +14 -20
- package/lib/ModuleInfoHeaderPlugin.js +15 -16
- package/lib/ModuleNotFoundError.js +1 -1
- package/lib/ModuleParseError.js +8 -4
- package/lib/ModuleSourceTypeConstants.js +189 -0
- package/lib/ModuleTemplate.js +7 -8
- package/lib/ModuleTypeConstants.js +37 -15
- package/lib/ModuleWarning.js +1 -1
- package/lib/MultiCompiler.js +64 -49
- package/lib/MultiStats.js +19 -14
- package/lib/MultiWatching.js +7 -11
- package/lib/NoEmitOnErrorsPlugin.js +5 -3
- package/lib/NodeStuffPlugin.js +438 -126
- package/lib/NormalModule.js +322 -201
- package/lib/NormalModuleFactory.js +230 -117
- package/lib/NormalModuleReplacementPlugin.js +37 -39
- package/lib/NullFactory.js +3 -2
- package/lib/OptimizationStages.js +1 -1
- package/lib/OptionsApply.js +1 -1
- package/lib/Parser.js +5 -3
- package/lib/PlatformPlugin.js +3 -1
- package/lib/PrefetchPlugin.js +6 -4
- package/lib/ProgressPlugin.js +48 -49
- package/lib/ProvidePlugin.js +7 -5
- package/lib/RawModule.js +26 -12
- package/lib/RecordIdsPlugin.js +88 -110
- package/lib/RequestShortener.js +3 -1
- package/lib/ResolverFactory.js +15 -14
- package/lib/RuntimeGlobals.js +216 -153
- package/lib/RuntimeModule.js +7 -6
- package/lib/RuntimePlugin.js +115 -62
- package/lib/RuntimeTemplate.js +248 -76
- package/lib/SelfModuleFactory.js +2 -2
- package/lib/SizeFormatHelpers.js +2 -2
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
- package/lib/SourceMapDevToolPlugin.js +72 -59
- package/lib/Stats.js +2 -3
- package/lib/Template.js +31 -24
- package/lib/TemplatedPathPlugin.js +24 -21
- package/lib/UseStrictPlugin.js +1 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
- package/lib/WarnDeprecatedOptionPlugin.js +7 -8
- package/lib/WarnNoModeSetPlugin.js +3 -1
- package/lib/WatchIgnorePlugin.js +11 -9
- package/lib/Watching.js +27 -29
- package/lib/WebpackError.js +10 -3
- package/lib/WebpackIsIncludedPlugin.js +4 -5
- package/lib/WebpackOptionsApply.js +263 -135
- package/lib/asset/AssetBytesGenerator.js +171 -0
- package/lib/asset/AssetBytesParser.js +37 -0
- package/lib/asset/AssetGenerator.js +285 -223
- package/lib/asset/AssetModulesPlugin.js +103 -41
- package/lib/asset/AssetParser.js +7 -3
- package/lib/asset/AssetSourceGenerator.js +41 -17
- package/lib/asset/RawDataUrlModule.js +17 -9
- package/lib/async-modules/AsyncModuleHelpers.js +52 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
- package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
- package/lib/buildChunkGraph.js +36 -17
- package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
- package/lib/cache/IdleFileCachePlugin.js +22 -20
- package/lib/cache/MemoryCachePlugin.js +3 -3
- package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
- package/lib/cache/PackFileCacheStrategy.js +198 -170
- package/lib/cache/ResolverCachePlugin.js +58 -48
- package/lib/cache/getLazyHashedEtag.js +5 -4
- package/lib/cli.js +197 -39
- package/lib/config/browserslistTargetHandler.js +110 -85
- package/lib/config/defaults.js +514 -113
- package/lib/config/normalization.js +91 -64
- package/lib/config/target.js +30 -18
- package/lib/container/ContainerEntryDependency.js +0 -1
- package/lib/container/ContainerEntryModule.js +16 -15
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerPlugin.js +5 -6
- package/lib/container/ContainerReferencePlugin.js +27 -30
- package/lib/container/FallbackDependency.js +2 -1
- package/lib/container/FallbackModule.js +19 -14
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +7 -7
- package/lib/container/ModuleFederationPlugin.js +4 -4
- package/lib/container/RemoteModule.js +14 -14
- package/lib/container/RemoteRuntimeModule.js +2 -2
- package/lib/container/options.js +9 -9
- package/lib/css/CssGenerator.js +366 -74
- package/lib/css/CssLoadingRuntimeModule.js +26 -16
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
- package/lib/css/CssModulesPlugin.js +191 -142
- package/lib/css/CssParser.js +1756 -740
- package/lib/css/walkCssTokens.js +180 -67
- package/lib/debug/ProfilingPlugin.js +135 -51
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
- package/lib/dependencies/AMDPlugin.js +18 -11
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
- package/lib/dependencies/AMDRequireContextDependency.js +2 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
- package/lib/dependencies/AMDRuntimeModules.js +3 -1
- package/lib/dependencies/CachedConstDependency.js +24 -18
- package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
- package/lib/dependencies/CommonJsExportsDependency.js +2 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
- package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
- package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
- package/lib/dependencies/CommonJsPlugin.js +29 -18
- package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
- package/lib/dependencies/ConstDependency.js +2 -2
- package/lib/dependencies/ContextDependency.js +10 -5
- package/lib/dependencies/ContextDependencyHelpers.js +21 -13
- package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
- package/lib/dependencies/ContextElementDependency.js +23 -12
- package/lib/dependencies/CssIcssExportDependency.js +402 -22
- package/lib/dependencies/CssIcssImportDependency.js +116 -51
- package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
- package/lib/dependencies/CssImportDependency.js +17 -14
- package/lib/dependencies/CssUrlDependency.js +8 -13
- package/lib/dependencies/DynamicExports.js +19 -19
- package/lib/dependencies/ExportsInfoDependency.js +13 -10
- package/lib/dependencies/ExternalModuleDependency.js +7 -7
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
- package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
- package/lib/dependencies/HarmonyExports.js +5 -5
- package/lib/dependencies/HarmonyImportDependency.js +92 -45
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
- package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
- package/lib/dependencies/ImportContextDependency.js +15 -1
- package/lib/dependencies/ImportDependency.js +25 -7
- package/lib/dependencies/ImportEagerDependency.js +7 -5
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
- package/lib/dependencies/ImportMetaPlugin.js +172 -20
- package/lib/dependencies/ImportParserPlugin.js +327 -49
- package/lib/dependencies/ImportPhase.js +121 -0
- package/lib/dependencies/ImportPlugin.js +3 -1
- package/lib/dependencies/ImportWeakDependency.js +7 -5
- package/lib/dependencies/JsonExportsDependency.js +54 -28
- package/lib/dependencies/LoaderDependency.js +0 -3
- package/lib/dependencies/LoaderImportDependency.js +0 -3
- package/lib/dependencies/LoaderPlugin.js +24 -25
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
- package/lib/dependencies/ModuleDependency.js +14 -13
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/ProvidedDependency.js +8 -10
- package/lib/dependencies/PureExpressionDependency.js +1 -2
- package/lib/dependencies/RequireContextDependency.js +2 -1
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
- package/lib/dependencies/RequireContextPlugin.js +5 -2
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
- package/lib/dependencies/RequireEnsurePlugin.js +6 -6
- package/lib/dependencies/RequireIncludeDependency.js +2 -2
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
- package/lib/dependencies/RequireIncludePlugin.js +1 -0
- package/lib/dependencies/RequireResolveContextDependency.js +1 -1
- package/lib/dependencies/RequireResolveDependency.js +3 -3
- package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
- package/lib/dependencies/StaticExportsDependency.js +3 -5
- package/lib/dependencies/SystemPlugin.js +4 -4
- package/lib/dependencies/URLContextDependency.js +65 -0
- package/lib/dependencies/URLDependency.js +3 -8
- package/lib/dependencies/URLPlugin.js +18 -159
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
- package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
- package/lib/dependencies/WorkerDependency.js +8 -6
- package/lib/dependencies/WorkerPlugin.js +131 -67
- package/lib/dependencies/getFunctionExpression.js +2 -2
- package/lib/dependencies/processExportInfo.js +4 -4
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
- package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
- package/lib/formatLocation.js +2 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
- package/lib/hmr/LazyCompilationPlugin.js +67 -54
- package/lib/hmr/lazyCompilationBackend.js +23 -18
- package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
- package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
- package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
- package/lib/ids/HashedModuleIdsPlugin.js +15 -13
- package/lib/ids/IdHelpers.js +66 -49
- package/lib/ids/NamedChunkIdsPlugin.js +14 -17
- package/lib/ids/NamedModuleIdsPlugin.js +12 -14
- package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
- package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
- package/lib/ids/SyncModuleIdsPlugin.js +18 -13
- package/lib/index.js +54 -14
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
- package/lib/javascript/BasicEvaluatedExpression.js +26 -18
- package/lib/javascript/ChunkFormatHelpers.js +70 -0
- package/lib/javascript/ChunkHelpers.js +17 -5
- package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
- package/lib/javascript/JavascriptGenerator.js +122 -100
- package/lib/javascript/JavascriptModulesPlugin.js +332 -152
- package/lib/javascript/JavascriptParser.js +1488 -1052
- package/lib/javascript/JavascriptParserHelpers.js +48 -47
- package/lib/javascript/StartupHelpers.js +23 -22
- package/lib/json/JsonData.js +4 -4
- package/lib/json/JsonGenerator.js +66 -32
- package/lib/json/JsonModulesPlugin.js +16 -6
- package/lib/json/JsonParser.js +23 -8
- package/lib/library/AbstractLibraryPlugin.js +45 -10
- package/lib/library/AmdLibraryPlugin.js +7 -5
- package/lib/library/AssignLibraryPlugin.js +71 -17
- package/lib/library/EnableLibraryPlugin.js +51 -25
- package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
- package/lib/library/JsonpLibraryPlugin.js +5 -2
- package/lib/library/ModuleLibraryPlugin.js +230 -18
- package/lib/library/SystemLibraryPlugin.js +29 -11
- package/lib/library/UmdLibraryPlugin.js +35 -32
- package/lib/logging/Logger.js +18 -15
- package/lib/logging/createConsoleLogger.js +27 -27
- package/lib/logging/runtime.js +11 -11
- package/lib/logging/truncateArgs.js +5 -5
- package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
- package/lib/node/NodeEnvironmentPlugin.js +9 -3
- package/lib/node/NodeTargetPlugin.js +9 -1
- package/lib/node/NodeTemplatePlugin.js +2 -2
- package/lib/node/NodeWatchFileSystem.js +4 -4
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
- package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
- package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
- package/lib/node/nodeConsole.js +12 -7
- package/lib/optimize/AggressiveMergingPlugin.js +46 -47
- package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
- package/lib/optimize/ConcatenatedModule.js +620 -251
- package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
- package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
- package/lib/optimize/InnerGraph.js +139 -124
- package/lib/optimize/InnerGraphPlugin.js +29 -24
- package/lib/optimize/LimitChunkCountPlugin.js +32 -8
- package/lib/optimize/MangleExportsPlugin.js +22 -22
- package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
- package/lib/optimize/MinChunkSizePlugin.js +12 -7
- package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
- package/lib/optimize/RealContentHashPlugin.js +58 -44
- package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
- package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
- package/lib/optimize/RuntimeChunkPlugin.js +22 -25
- package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
- package/lib/optimize/SplitChunksPlugin.js +209 -158
- package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +8 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/rules/BasicEffectRulePlugin.js +14 -5
- package/lib/rules/BasicMatcherRulePlugin.js +18 -7
- package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
- package/lib/rules/RuleSetCompiler.js +73 -32
- package/lib/rules/UseEffectRulePlugin.js +61 -25
- package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
- package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
- package/lib/runtime/BaseUriRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +0 -1
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
- package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
- package/lib/runtime/SystemContextRuntimeModule.js +0 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
- package/lib/schemes/DataUriPlugin.js +9 -31
- package/lib/schemes/FileUriPlugin.js +11 -6
- package/lib/schemes/HttpUriPlugin.js +381 -261
- package/lib/schemes/VirtualUrlPlugin.js +222 -0
- package/lib/serialization/AggregateErrorSerializer.js +41 -0
- package/lib/serialization/BinaryMiddleware.js +51 -33
- package/lib/serialization/ErrorObjectSerializer.js +7 -2
- package/lib/serialization/FileMiddleware.js +101 -71
- package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
- package/lib/serialization/ObjectMiddleware.js +130 -54
- package/lib/serialization/PlainObjectSerializer.js +1 -1
- package/lib/serialization/Serializer.js +38 -20
- package/lib/serialization/SerializerMiddleware.js +121 -49
- package/lib/serialization/SingleItemMiddleware.js +9 -7
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedModule.js +9 -9
- package/lib/sharing/ConsumeSharedPlugin.js +14 -14
- package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
- package/lib/sharing/ProvideSharedModule.js +9 -11
- package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
- package/lib/sharing/ProvideSharedPlugin.js +15 -10
- package/lib/sharing/SharePlugin.js +3 -4
- package/lib/sharing/ShareRuntimeModule.js +7 -6
- package/lib/sharing/resolveMatchedConfigs.js +27 -13
- package/lib/sharing/utils.js +37 -43
- package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
- package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
- package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
- package/lib/stats/StatsFactory.js +75 -32
- package/lib/stats/StatsPrinter.js +71 -51
- package/lib/url/URLParserPlugin.js +264 -0
- package/lib/util/ArrayHelpers.js +6 -8
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +11 -10
- package/lib/util/Hash.js +37 -5
- package/lib/util/IterableHelpers.js +4 -4
- package/lib/util/LazyBucketSortedSet.js +46 -27
- package/lib/util/LazySet.js +16 -10
- package/lib/util/MapHelpers.js +1 -1
- package/lib/util/ParallelismFactorCalculator.js +2 -2
- package/lib/util/Semaphore.js +3 -3
- package/lib/util/SetHelpers.js +6 -6
- package/lib/util/SortableSet.js +11 -9
- package/lib/util/StackedCacheMap.js +2 -2
- package/lib/util/StackedMap.js +3 -3
- package/lib/util/StringXor.js +2 -1
- package/lib/util/TupleQueue.js +11 -8
- package/lib/util/TupleSet.js +44 -19
- package/lib/util/URLAbsoluteSpecifier.js +3 -4
- package/lib/util/WeakTupleMap.js +56 -42
- package/lib/util/binarySearchBounds.js +4 -3
- package/lib/util/chainedImports.js +3 -1
- package/lib/util/cleverMerge.js +171 -107
- package/lib/util/comparators.js +265 -162
- package/lib/util/compileBooleanMatcher.js +120 -41
- package/lib/util/concatenate.js +20 -16
- package/lib/util/conventions.js +73 -74
- package/lib/util/create-schema-validation.js +8 -8
- package/lib/util/createHash.js +32 -135
- package/lib/util/dataURL.js +39 -0
- package/lib/util/deprecation.js +119 -116
- package/lib/util/deterministicGrouping.js +56 -47
- package/lib/util/extractSourceMap.js +319 -0
- package/lib/util/extractUrlAndGlobal.js +1 -1
- package/lib/util/findGraphRoots.js +19 -9
- package/lib/util/fs.js +169 -141
- package/lib/util/hash/BatchedHash.js +50 -10
- package/lib/util/hash/BulkUpdateHash.js +138 -0
- package/lib/util/hash/DebugHash.js +75 -0
- package/lib/util/hash/hash-digest.js +216 -0
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +59 -17
- package/lib/util/identifier.js +124 -61
- package/lib/util/internalSerializables.js +4 -6
- package/lib/util/magicComment.js +9 -5
- package/lib/util/makeSerializable.js +2 -2
- package/lib/util/memoize.js +5 -2
- package/lib/util/objectToMap.js +3 -2
- package/lib/util/processAsyncTree.js +5 -5
- package/lib/util/propertyAccess.js +1 -1
- package/lib/util/propertyName.js +2 -3
- package/lib/util/registerExternalSerializer.js +16 -20
- package/lib/util/removeBOM.js +25 -0
- package/lib/util/runtime.js +72 -56
- package/lib/util/semver.js +44 -33
- package/lib/util/serialization.js +56 -56
- package/lib/util/smartGrouping.js +42 -27
- package/lib/util/source.js +5 -4
- package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
- package/lib/validateSchema.js +7 -9
- package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
- package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
- package/lib/wasm-sync/WebAssemblyParser.js +10 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
- package/lib/web/FetchCompileWasmPlugin.js +6 -8
- package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
- package/lib/web/JsonpTemplatePlugin.js +0 -1
- package/lib/webpack.js +107 -87
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
- package/module.d.ts +5 -0
- package/package.json +149 -129
- package/schemas/WebpackOptions.check.d.ts +1 -1
- package/schemas/WebpackOptions.check.js +2 -2
- package/schemas/WebpackOptions.json +543 -190
- package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
- package/schemas/plugins/BannerPlugin.check.js +2 -2
- package/schemas/plugins/BannerPlugin.json +4 -0
- package/schemas/plugins/DllPlugin.check.d.ts +1 -1
- package/schemas/plugins/DllPlugin.check.js +1 -1
- package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -1
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
- package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
- package/schemas/plugins/ManifestPlugin.check.js +6 -0
- package/schemas/plugins/ManifestPlugin.json +98 -0
- package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
- package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
- package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
- package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
- package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
- package/schemas/plugins/container/ExternalsType.check.js +2 -2
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
- package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
- package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +2 -2
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
- package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
- package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
- package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5115 -1863
- package/SECURITY.md +0 -9
- package/lib/ModuleSourceTypesConstants.js +0 -112
- package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
- package/lib/library/ModernModuleLibraryPlugin.js +0 -144
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
- package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
- package/schemas/plugins/JsonModulesPluginParser.json +0 -12
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
- package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
|
@@ -15,13 +15,14 @@ const util = require("util");
|
|
|
15
15
|
/** @typedef {import("../../declarations/WebpackOptions").LibraryName} LibraryName */
|
|
16
16
|
/** @typedef {import("../../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
|
17
17
|
/** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptionsNormalized */
|
|
18
|
+
/** @typedef {import("../../declarations/WebpackOptions").OptimizationNormalized} OptimizationNormalized */
|
|
18
19
|
/** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunk} OptimizationRuntimeChunk */
|
|
19
20
|
/** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunkNormalized} OptimizationRuntimeChunkNormalized */
|
|
20
21
|
/** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputNormalized */
|
|
21
|
-
/** @typedef {import("../../declarations/WebpackOptions").
|
|
22
|
+
/** @typedef {import("../../declarations/WebpackOptions").PluginsNormalized} PluginsNormalized */
|
|
22
23
|
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
|
|
23
24
|
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
|
|
24
|
-
/** @typedef {import("../
|
|
25
|
+
/** @typedef {import("../WebpackError")} WebpackError */
|
|
25
26
|
|
|
26
27
|
const handledDeprecatedNoEmitOnErrors = util.deprecate(
|
|
27
28
|
/**
|
|
@@ -44,8 +45,8 @@ const handledDeprecatedNoEmitOnErrors = util.deprecate(
|
|
|
44
45
|
/**
|
|
45
46
|
* @template T
|
|
46
47
|
* @template R
|
|
47
|
-
* @param {T|undefined} value value or not
|
|
48
|
-
* @param {
|
|
48
|
+
* @param {T | undefined} value value or not
|
|
49
|
+
* @param {(value: T) => R} fn nested handler
|
|
49
50
|
* @returns {R} result value
|
|
50
51
|
*/
|
|
51
52
|
const nestedConfig = (value, fn) =>
|
|
@@ -53,16 +54,16 @@ const nestedConfig = (value, fn) =>
|
|
|
53
54
|
|
|
54
55
|
/**
|
|
55
56
|
* @template T
|
|
56
|
-
* @param {T|undefined} value value or not
|
|
57
|
+
* @param {T | undefined} value value or not
|
|
57
58
|
* @returns {T} result value
|
|
58
59
|
*/
|
|
59
|
-
const cloneObject = value => /** @type {T} */ ({ ...value });
|
|
60
|
+
const cloneObject = (value) => /** @type {T} */ ({ ...value });
|
|
60
61
|
/**
|
|
61
62
|
* @template T
|
|
62
63
|
* @template R
|
|
63
|
-
* @param {T|undefined} value value or not
|
|
64
|
-
* @param {
|
|
65
|
-
* @returns {R|undefined} result value
|
|
64
|
+
* @param {T | undefined} value value or not
|
|
65
|
+
* @param {(value: T) => R} fn nested handler
|
|
66
|
+
* @returns {R | undefined} result value
|
|
66
67
|
*/
|
|
67
68
|
const optionalNestedConfig = (value, fn) =>
|
|
68
69
|
value === undefined ? undefined : fn(value);
|
|
@@ -70,18 +71,18 @@ const optionalNestedConfig = (value, fn) =>
|
|
|
70
71
|
/**
|
|
71
72
|
* @template T
|
|
72
73
|
* @template R
|
|
73
|
-
* @param {T[]|undefined} value array or not
|
|
74
|
-
* @param {
|
|
75
|
-
* @returns {R[]|undefined} cloned value
|
|
74
|
+
* @param {T[] | undefined} value array or not
|
|
75
|
+
* @param {(value: T[]) => R[]} fn nested handler
|
|
76
|
+
* @returns {R[] | undefined} cloned value
|
|
76
77
|
*/
|
|
77
78
|
const nestedArray = (value, fn) => (Array.isArray(value) ? fn(value) : fn([]));
|
|
78
79
|
|
|
79
80
|
/**
|
|
80
81
|
* @template T
|
|
81
82
|
* @template R
|
|
82
|
-
* @param {T[]|undefined} value array or not
|
|
83
|
-
* @param {
|
|
84
|
-
* @returns {R[]|undefined} cloned value
|
|
83
|
+
* @param {T[] | undefined} value array or not
|
|
84
|
+
* @param {(value: T[]) => R[]} fn nested handler
|
|
85
|
+
* @returns {R[] | undefined} cloned value
|
|
85
86
|
*/
|
|
86
87
|
const optionalNestedArray = (value, fn) =>
|
|
87
88
|
Array.isArray(value) ? fn(value) : undefined;
|
|
@@ -89,9 +90,9 @@ const optionalNestedArray = (value, fn) =>
|
|
|
89
90
|
/**
|
|
90
91
|
* @template T
|
|
91
92
|
* @template R
|
|
92
|
-
* @param {Record<string, T
|
|
93
|
-
* @param {
|
|
94
|
-
* @param {Record<string,
|
|
93
|
+
* @param {Record<string, T> | undefined} value value or not
|
|
94
|
+
* @param {(value: T) => R} fn nested handler
|
|
95
|
+
* @param {Record<string, (value: T) => R>=} customKeys custom nested handler for some keys
|
|
95
96
|
* @returns {Record<string, R>} result value
|
|
96
97
|
*/
|
|
97
98
|
const keyedNestedConfig = (value, fn, customKeys) => {
|
|
@@ -123,13 +124,13 @@ const keyedNestedConfig = (value, fn, customKeys) => {
|
|
|
123
124
|
* @param {WebpackOptions} config input config
|
|
124
125
|
* @returns {WebpackOptionsNormalized} normalized options
|
|
125
126
|
*/
|
|
126
|
-
const getNormalizedWebpackOptions = config => ({
|
|
127
|
+
const getNormalizedWebpackOptions = (config) => ({
|
|
127
128
|
amd: config.amd,
|
|
128
129
|
bail: config.bail,
|
|
129
130
|
cache:
|
|
130
131
|
/** @type {NonNullable<CacheOptions>} */
|
|
131
132
|
(
|
|
132
|
-
optionalNestedConfig(config.cache, cache => {
|
|
133
|
+
optionalNestedConfig(config.cache, (cache) => {
|
|
133
134
|
if (cache === false) return false;
|
|
134
135
|
if (cache === true) {
|
|
135
136
|
return {
|
|
@@ -172,35 +173,36 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
172
173
|
),
|
|
173
174
|
context: config.context,
|
|
174
175
|
dependencies: config.dependencies,
|
|
175
|
-
devServer: optionalNestedConfig(config.devServer, devServer => {
|
|
176
|
+
devServer: optionalNestedConfig(config.devServer, (devServer) => {
|
|
176
177
|
if (devServer === false) return false;
|
|
177
178
|
return { ...devServer };
|
|
178
179
|
}),
|
|
179
180
|
devtool: config.devtool,
|
|
181
|
+
dotenv: config.dotenv,
|
|
180
182
|
entry:
|
|
181
183
|
config.entry === undefined
|
|
182
184
|
? { main: {} }
|
|
183
185
|
: typeof config.entry === "function"
|
|
184
186
|
? (
|
|
185
|
-
fn => () =>
|
|
187
|
+
(fn) => () =>
|
|
186
188
|
Promise.resolve().then(fn).then(getNormalizedEntryStatic)
|
|
187
189
|
)(config.entry)
|
|
188
190
|
: getNormalizedEntryStatic(config.entry),
|
|
189
|
-
experiments: nestedConfig(config.experiments, experiments => ({
|
|
191
|
+
experiments: nestedConfig(config.experiments, (experiments) => ({
|
|
190
192
|
...experiments,
|
|
191
|
-
buildHttp: optionalNestedConfig(experiments.buildHttp, options =>
|
|
193
|
+
buildHttp: optionalNestedConfig(experiments.buildHttp, (options) =>
|
|
192
194
|
Array.isArray(options) ? { allowedUris: options } : options
|
|
193
195
|
),
|
|
194
196
|
lazyCompilation: optionalNestedConfig(
|
|
195
197
|
experiments.lazyCompilation,
|
|
196
|
-
options => (options === true ? {} : options)
|
|
198
|
+
(options) => (options === true ? {} : options)
|
|
197
199
|
)
|
|
198
200
|
})),
|
|
199
201
|
externals: /** @type {NonNullable<Externals>} */ (config.externals),
|
|
200
202
|
externalsPresets: cloneObject(config.externalsPresets),
|
|
201
203
|
externalsType: config.externalsType,
|
|
202
204
|
ignoreWarnings: config.ignoreWarnings
|
|
203
|
-
? config.ignoreWarnings.map(ignore => {
|
|
205
|
+
? config.ignoreWarnings.map((ignore) => {
|
|
204
206
|
if (typeof ignore === "function") return ignore;
|
|
205
207
|
const i = ignore instanceof RegExp ? { message: ignore } : ignore;
|
|
206
208
|
return (warning, { requestShortener }) => {
|
|
@@ -210,14 +212,19 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
210
212
|
}
|
|
211
213
|
if (
|
|
212
214
|
i.module &&
|
|
213
|
-
(!warning.module ||
|
|
215
|
+
(!(/** @type {WebpackError} */ (warning).module) ||
|
|
214
216
|
!i.module.test(
|
|
215
|
-
|
|
217
|
+
/** @type {WebpackError} */
|
|
218
|
+
(warning).module.readableIdentifier(requestShortener)
|
|
216
219
|
))
|
|
217
220
|
) {
|
|
218
221
|
return false;
|
|
219
222
|
}
|
|
220
|
-
if (
|
|
223
|
+
if (
|
|
224
|
+
i.file &&
|
|
225
|
+
(!(/** @type {WebpackError} */ (warning).file) ||
|
|
226
|
+
!i.file.test(/** @type {WebpackError} */ (warning).file))
|
|
227
|
+
) {
|
|
221
228
|
return false;
|
|
222
229
|
}
|
|
223
230
|
return true;
|
|
@@ -230,11 +237,12 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
230
237
|
module:
|
|
231
238
|
/** @type {ModuleOptionsNormalized} */
|
|
232
239
|
(
|
|
233
|
-
nestedConfig(config.module, module => ({
|
|
240
|
+
nestedConfig(config.module, (module) => ({
|
|
234
241
|
noParse: module.noParse,
|
|
235
242
|
unsafeCache: module.unsafeCache,
|
|
236
243
|
parser: keyedNestedConfig(module.parser, cloneObject, {
|
|
237
|
-
javascript: parserOptions => ({
|
|
244
|
+
javascript: (parserOptions) => ({
|
|
245
|
+
// TODO webpack 6 remove from `ModuleOptions`, keep only `*ByModuleType`
|
|
238
246
|
unknownContextRequest: module.unknownContextRequest,
|
|
239
247
|
unknownContextRegExp: module.unknownContextRegExp,
|
|
240
248
|
unknownContextRecursive: module.unknownContextRecursive,
|
|
@@ -246,33 +254,32 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
246
254
|
wrappedContextRegExp: module.wrappedContextRegExp,
|
|
247
255
|
wrappedContextRecursive: module.wrappedContextRecursive,
|
|
248
256
|
wrappedContextCritical: module.wrappedContextCritical,
|
|
249
|
-
// TODO webpack 6 remove
|
|
250
257
|
strictExportPresence: module.strictExportPresence,
|
|
251
258
|
strictThisContextOnImports: module.strictThisContextOnImports,
|
|
252
259
|
...parserOptions
|
|
253
260
|
})
|
|
254
261
|
}),
|
|
255
262
|
generator: cloneObject(module.generator),
|
|
256
|
-
defaultRules: optionalNestedArray(module.defaultRules, r => [...r]),
|
|
257
|
-
rules: nestedArray(module.rules, r => [...r])
|
|
263
|
+
defaultRules: optionalNestedArray(module.defaultRules, (r) => [...r]),
|
|
264
|
+
rules: nestedArray(module.rules, (r) => [...r])
|
|
258
265
|
}))
|
|
259
266
|
),
|
|
260
267
|
name: config.name,
|
|
261
268
|
node: nestedConfig(
|
|
262
269
|
config.node,
|
|
263
|
-
node =>
|
|
270
|
+
(node) =>
|
|
264
271
|
node && {
|
|
265
272
|
...node
|
|
266
273
|
}
|
|
267
274
|
),
|
|
268
|
-
optimization: nestedConfig(config.optimization, optimization => ({
|
|
275
|
+
optimization: nestedConfig(config.optimization, (optimization) => ({
|
|
269
276
|
...optimization,
|
|
270
277
|
runtimeChunk: getNormalizedOptimizationRuntimeChunk(
|
|
271
278
|
optimization.runtimeChunk
|
|
272
279
|
),
|
|
273
280
|
splitChunks: nestedConfig(
|
|
274
281
|
optimization.splitChunks,
|
|
275
|
-
splitChunks =>
|
|
282
|
+
(splitChunks) =>
|
|
276
283
|
splitChunks && {
|
|
277
284
|
...splitChunks,
|
|
278
285
|
defaultSizeTypes: splitChunks.defaultSizeTypes
|
|
@@ -281,6 +288,12 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
281
288
|
cacheGroups: cloneObject(splitChunks.cacheGroups)
|
|
282
289
|
}
|
|
283
290
|
),
|
|
291
|
+
minimizer:
|
|
292
|
+
optimization.minimizer !== undefined
|
|
293
|
+
? /** @type {OptimizationNormalized["minimizer"]} */ (
|
|
294
|
+
nestedArray(optimization.minimizer, (p) => p.filter(Boolean))
|
|
295
|
+
)
|
|
296
|
+
: optimization.minimizer,
|
|
284
297
|
emitOnErrors:
|
|
285
298
|
optimization.noEmitOnErrors !== undefined
|
|
286
299
|
? handledDeprecatedNoEmitOnErrors(
|
|
@@ -289,7 +302,7 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
289
302
|
)
|
|
290
303
|
: optimization.emitOnErrors
|
|
291
304
|
})),
|
|
292
|
-
output: nestedConfig(config.output, output => {
|
|
305
|
+
output: nestedConfig(config.output, (output) => {
|
|
293
306
|
const { library } = output;
|
|
294
307
|
const libraryAsName = /** @type {LibraryName} */ (library);
|
|
295
308
|
const libraryBase =
|
|
@@ -346,6 +359,7 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
346
359
|
importFunctionName: output.importFunctionName,
|
|
347
360
|
importMetaName: output.importMetaName,
|
|
348
361
|
scriptType: output.scriptType,
|
|
362
|
+
// TODO webpack6 remove `libraryTarget`/`auxiliaryComment`/`amdContainer`/etc in favor of the `library` option
|
|
349
363
|
library: libraryBase && {
|
|
350
364
|
type:
|
|
351
365
|
output.libraryTarget !== undefined
|
|
@@ -377,12 +391,16 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
377
391
|
sourcePrefix: output.sourcePrefix,
|
|
378
392
|
strictModuleErrorHandling: output.strictModuleErrorHandling,
|
|
379
393
|
strictModuleExceptionHandling: output.strictModuleExceptionHandling,
|
|
380
|
-
trustedTypes: optionalNestedConfig(
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
394
|
+
trustedTypes: optionalNestedConfig(
|
|
395
|
+
output.trustedTypes,
|
|
396
|
+
(trustedTypes) => {
|
|
397
|
+
if (trustedTypes === true) return {};
|
|
398
|
+
if (typeof trustedTypes === "string") {
|
|
399
|
+
return { policyName: trustedTypes };
|
|
400
|
+
}
|
|
401
|
+
return { ...trustedTypes };
|
|
402
|
+
}
|
|
403
|
+
),
|
|
386
404
|
uniqueName: output.uniqueName,
|
|
387
405
|
wasmLoading: output.wasmLoading,
|
|
388
406
|
webassemblyModuleFilename: output.webassemblyModuleFilename,
|
|
@@ -393,13 +411,15 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
393
411
|
return result;
|
|
394
412
|
}),
|
|
395
413
|
parallelism: config.parallelism,
|
|
396
|
-
performance: optionalNestedConfig(config.performance, performance => {
|
|
414
|
+
performance: optionalNestedConfig(config.performance, (performance) => {
|
|
397
415
|
if (performance === false) return false;
|
|
398
416
|
return {
|
|
399
417
|
...performance
|
|
400
418
|
};
|
|
401
419
|
}),
|
|
402
|
-
plugins: /** @type {
|
|
420
|
+
plugins: /** @type {PluginsNormalized} */ (
|
|
421
|
+
nestedArray(config.plugins, (p) => p.filter(Boolean))
|
|
422
|
+
),
|
|
403
423
|
profile: config.profile,
|
|
404
424
|
recordsInputPath:
|
|
405
425
|
config.recordsInputPath !== undefined
|
|
@@ -409,39 +429,46 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
409
429
|
config.recordsOutputPath !== undefined
|
|
410
430
|
? config.recordsOutputPath
|
|
411
431
|
: config.recordsPath,
|
|
412
|
-
resolve: nestedConfig(config.resolve, resolve => ({
|
|
432
|
+
resolve: nestedConfig(config.resolve, (resolve) => ({
|
|
413
433
|
...resolve,
|
|
414
434
|
byDependency: keyedNestedConfig(resolve.byDependency, cloneObject)
|
|
415
435
|
})),
|
|
416
436
|
resolveLoader: cloneObject(config.resolveLoader),
|
|
417
|
-
snapshot: nestedConfig(config.snapshot, snapshot => ({
|
|
437
|
+
snapshot: nestedConfig(config.snapshot, (snapshot) => ({
|
|
418
438
|
resolveBuildDependencies: optionalNestedConfig(
|
|
419
439
|
snapshot.resolveBuildDependencies,
|
|
420
|
-
resolveBuildDependencies => ({
|
|
440
|
+
(resolveBuildDependencies) => ({
|
|
421
441
|
timestamp: resolveBuildDependencies.timestamp,
|
|
422
442
|
hash: resolveBuildDependencies.hash
|
|
423
443
|
})
|
|
424
444
|
),
|
|
425
445
|
buildDependencies: optionalNestedConfig(
|
|
426
446
|
snapshot.buildDependencies,
|
|
427
|
-
buildDependencies => ({
|
|
447
|
+
(buildDependencies) => ({
|
|
428
448
|
timestamp: buildDependencies.timestamp,
|
|
429
449
|
hash: buildDependencies.hash
|
|
430
450
|
})
|
|
431
451
|
),
|
|
432
|
-
resolve: optionalNestedConfig(snapshot.resolve, resolve => ({
|
|
452
|
+
resolve: optionalNestedConfig(snapshot.resolve, (resolve) => ({
|
|
433
453
|
timestamp: resolve.timestamp,
|
|
434
454
|
hash: resolve.hash
|
|
435
455
|
})),
|
|
436
|
-
module: optionalNestedConfig(snapshot.module, module => ({
|
|
456
|
+
module: optionalNestedConfig(snapshot.module, (module) => ({
|
|
437
457
|
timestamp: module.timestamp,
|
|
438
458
|
hash: module.hash
|
|
439
459
|
})),
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
460
|
+
contextModule: optionalNestedConfig(
|
|
461
|
+
snapshot.contextModule,
|
|
462
|
+
(contextModule) => ({
|
|
463
|
+
timestamp: contextModule.timestamp,
|
|
464
|
+
hash: contextModule.hash
|
|
465
|
+
})
|
|
466
|
+
),
|
|
467
|
+
immutablePaths: optionalNestedArray(snapshot.immutablePaths, (p) => [...p]),
|
|
468
|
+
managedPaths: optionalNestedArray(snapshot.managedPaths, (p) => [...p]),
|
|
469
|
+
unmanagedPaths: optionalNestedArray(snapshot.unmanagedPaths, (p) => [...p])
|
|
443
470
|
})),
|
|
444
|
-
stats: nestedConfig(config.stats, stats => {
|
|
471
|
+
stats: nestedConfig(config.stats, (stats) => {
|
|
445
472
|
if (stats === false) {
|
|
446
473
|
return {
|
|
447
474
|
preset: "none"
|
|
@@ -470,7 +497,7 @@ const getNormalizedWebpackOptions = config => ({
|
|
|
470
497
|
* @param {EntryStatic} entry static entry options
|
|
471
498
|
* @returns {EntryStaticNormalized} normalized static entry options
|
|
472
499
|
*/
|
|
473
|
-
const getNormalizedEntryStatic = entry => {
|
|
500
|
+
const getNormalizedEntryStatic = (entry) => {
|
|
474
501
|
if (typeof entry === "string") {
|
|
475
502
|
return {
|
|
476
503
|
main: {
|
|
@@ -532,7 +559,7 @@ const getNormalizedEntryStatic = entry => {
|
|
|
532
559
|
* @param {OptimizationRuntimeChunk=} runtimeChunk runtimeChunk option
|
|
533
560
|
* @returns {OptimizationRuntimeChunkNormalized=} normalized runtimeChunk option
|
|
534
561
|
*/
|
|
535
|
-
const getNormalizedOptimizationRuntimeChunk = runtimeChunk => {
|
|
562
|
+
const getNormalizedOptimizationRuntimeChunk = (runtimeChunk) => {
|
|
536
563
|
if (runtimeChunk === undefined) return;
|
|
537
564
|
if (runtimeChunk === false) return false;
|
|
538
565
|
if (runtimeChunk === "single") {
|
|
@@ -542,16 +569,16 @@ const getNormalizedOptimizationRuntimeChunk = runtimeChunk => {
|
|
|
542
569
|
}
|
|
543
570
|
if (runtimeChunk === true || runtimeChunk === "multiple") {
|
|
544
571
|
return {
|
|
545
|
-
|
|
546
|
-
* @param {Entrypoint} entrypoint entrypoint
|
|
547
|
-
* @returns {string} runtime chunk name
|
|
548
|
-
*/
|
|
549
|
-
name: entrypoint => `runtime~${entrypoint.name}`
|
|
572
|
+
name: (entrypoint) => `runtime~${entrypoint.name}`
|
|
550
573
|
};
|
|
551
574
|
}
|
|
552
575
|
const { name } = runtimeChunk;
|
|
553
576
|
return {
|
|
554
|
-
name:
|
|
577
|
+
name:
|
|
578
|
+
typeof name === "function"
|
|
579
|
+
? /** @type {Exclude<OptimizationRuntimeChunkNormalized, false>["name"]} */
|
|
580
|
+
(name)
|
|
581
|
+
: () => /** @type {string} */ (name)
|
|
555
582
|
};
|
|
556
583
|
};
|
|
557
584
|
|
package/lib/config/target.js
CHANGED
|
@@ -15,19 +15,19 @@ const getBrowserslistTargetHandler = memoize(() =>
|
|
|
15
15
|
* @param {string} context the context directory
|
|
16
16
|
* @returns {string} default target
|
|
17
17
|
*/
|
|
18
|
-
const getDefaultTarget = context => {
|
|
19
|
-
const browsers = getBrowserslistTargetHandler().load(
|
|
18
|
+
const getDefaultTarget = (context) => {
|
|
19
|
+
const browsers = getBrowserslistTargetHandler().load(undefined, context);
|
|
20
20
|
return browsers ? "browserslist" : "web";
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* @typedef {object} PlatformTargetProperties
|
|
25
|
-
* @property {boolean | null} web web platform, importing of http(s) and std: is available
|
|
26
|
-
* @property {boolean | null} browser browser platform, running in a normal web browser
|
|
27
|
-
* @property {boolean | null} webworker (Web)Worker platform, running in a web/shared/service worker
|
|
28
|
-
* @property {boolean | null} node node platform, require of node built-in modules is available
|
|
29
|
-
* @property {boolean | null} nwjs nwjs platform, require of legacy nw.gui is available
|
|
30
|
-
* @property {boolean | null} electron electron platform, require of some electron built-in modules is available
|
|
25
|
+
* @property {boolean | null=} web web platform, importing of http(s) and std: is available
|
|
26
|
+
* @property {boolean | null=} browser browser platform, running in a normal web browser
|
|
27
|
+
* @property {boolean | null=} webworker (Web)Worker platform, running in a web/shared/service worker
|
|
28
|
+
* @property {boolean | null=} node node platform, require of node built-in modules is available
|
|
29
|
+
* @property {boolean | null=} nwjs nwjs platform, require of legacy nw.gui is available
|
|
30
|
+
* @property {boolean | null=} electron electron platform, require of some electron built-in modules is available
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
33
|
/**
|
|
@@ -42,6 +42,7 @@ const getDefaultTarget = context => {
|
|
|
42
42
|
* @property {boolean | null} require has require function available
|
|
43
43
|
* @property {boolean | null} nodeBuiltins has node.js built-in modules available
|
|
44
44
|
* @property {boolean | null} nodePrefixForCoreModules node.js allows to use `node:` prefix for core modules
|
|
45
|
+
* @property {boolean | null} importMetaDirnameAndFilename node.js allows to use `import.meta.dirname` and `import.meta.filename`
|
|
45
46
|
* @property {boolean | null} document has document available (allows script tags)
|
|
46
47
|
* @property {boolean | null} importScripts has importScripts available
|
|
47
48
|
* @property {boolean | null} importScriptsInWorker has importScripts available when creating a worker
|
|
@@ -54,6 +55,7 @@ const getDefaultTarget = context => {
|
|
|
54
55
|
* @property {boolean | null} globalThis has globalThis variable available
|
|
55
56
|
* @property {boolean | null} bigIntLiteral big int literal syntax is available
|
|
56
57
|
* @property {boolean | null} const const and let variable declarations are available
|
|
58
|
+
* @property {boolean | null} methodShorthand object method shorthand is available
|
|
57
59
|
* @property {boolean | null} arrowFunction arrow functions are available
|
|
58
60
|
* @property {boolean | null} forOf for of iteration is available
|
|
59
61
|
* @property {boolean | null} destructuring destructuring is available
|
|
@@ -178,6 +180,9 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
178
180
|
nodeBuiltins: true,
|
|
179
181
|
// v16.0.0, v14.18.0
|
|
180
182
|
nodePrefixForCoreModules: Number(major) < 15 ? v(14, 18) : v(16),
|
|
183
|
+
// Added in: v21.2.0, v20.11.0, but Node.js will output experimental warning, we don't want it
|
|
184
|
+
// v24.0.0, v22.16.0 - This property is no longer experimental.
|
|
185
|
+
importMetaDirnameAndFilename: v(22, 16),
|
|
181
186
|
global: true,
|
|
182
187
|
document: false,
|
|
183
188
|
fetchWasm: false,
|
|
@@ -188,13 +193,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
188
193
|
const: v(6),
|
|
189
194
|
templateLiteral: v(4),
|
|
190
195
|
optionalChaining: v(14),
|
|
196
|
+
methodShorthand: v(4),
|
|
191
197
|
arrowFunction: v(6),
|
|
192
198
|
asyncFunction: v(7, 6),
|
|
193
199
|
forOf: v(5),
|
|
194
200
|
destructuring: v(6),
|
|
195
201
|
bigIntLiteral: v(10, 4),
|
|
196
202
|
dynamicImport: v(12, 17),
|
|
197
|
-
dynamicImportInWorker:
|
|
203
|
+
dynamicImportInWorker: v(12, 17),
|
|
198
204
|
module: v(12, 17)
|
|
199
205
|
};
|
|
200
206
|
}
|
|
@@ -223,6 +229,8 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
223
229
|
// 15.0.0 - Node.js v16.5
|
|
224
230
|
// 14.0.0 - Mode.js v14.17, but prefixes only since v14.18
|
|
225
231
|
nodePrefixForCoreModules: v(15),
|
|
232
|
+
// 37.0.0 - Node.js v22.16
|
|
233
|
+
importMetaDirnameAndFilename: v(37),
|
|
226
234
|
|
|
227
235
|
require: true,
|
|
228
236
|
document: context === "renderer",
|
|
@@ -234,13 +242,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
234
242
|
const: v(1, 1),
|
|
235
243
|
templateLiteral: v(1, 1),
|
|
236
244
|
optionalChaining: v(8),
|
|
245
|
+
methodShorthand: v(1, 1),
|
|
237
246
|
arrowFunction: v(1, 1),
|
|
238
247
|
asyncFunction: v(1, 7),
|
|
239
248
|
forOf: v(0, 36),
|
|
240
249
|
destructuring: v(1, 1),
|
|
241
250
|
bigIntLiteral: v(4),
|
|
242
251
|
dynamicImport: v(11),
|
|
243
|
-
dynamicImportInWorker:
|
|
252
|
+
dynamicImportInWorker: v(11),
|
|
244
253
|
module: v(11)
|
|
245
254
|
};
|
|
246
255
|
}
|
|
@@ -272,13 +281,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
272
281
|
const: v(0, 15),
|
|
273
282
|
templateLiteral: v(0, 13),
|
|
274
283
|
optionalChaining: v(0, 44),
|
|
284
|
+
methodShorthand: v(0, 15),
|
|
275
285
|
arrowFunction: v(0, 15),
|
|
276
286
|
asyncFunction: v(0, 21),
|
|
277
287
|
forOf: v(0, 13),
|
|
278
288
|
destructuring: v(0, 15),
|
|
279
289
|
bigIntLiteral: v(0, 32),
|
|
280
290
|
dynamicImport: v(0, 43),
|
|
281
|
-
dynamicImportInWorker:
|
|
291
|
+
dynamicImportInWorker: v(0, 44),
|
|
282
292
|
module: v(0, 43)
|
|
283
293
|
};
|
|
284
294
|
}
|
|
@@ -287,13 +297,14 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis
|
|
|
287
297
|
"esX",
|
|
288
298
|
"EcmaScript in this version. Examples: es2020, es5.",
|
|
289
299
|
/^es(\d+)$/,
|
|
290
|
-
version => {
|
|
300
|
+
(version) => {
|
|
291
301
|
let v = Number(version);
|
|
292
|
-
if (v < 1000) v
|
|
302
|
+
if (v < 1000) v += 2009;
|
|
293
303
|
return {
|
|
294
304
|
const: v >= 2015,
|
|
295
305
|
templateLiteral: v >= 2015,
|
|
296
306
|
optionalChaining: v >= 2020,
|
|
307
|
+
methodShorthand: v >= 2015,
|
|
297
308
|
arrowFunction: v >= 2015,
|
|
298
309
|
forOf: v >= 2015,
|
|
299
310
|
destructuring: v >= 2015,
|
|
@@ -333,7 +344,7 @@ const getTargetProperties = (target, context) => {
|
|
|
333
344
|
* @param {TargetProperties[]} targetProperties array of target properties
|
|
334
345
|
* @returns {TargetProperties} merged target properties
|
|
335
346
|
*/
|
|
336
|
-
const mergeTargetProperties = targetProperties => {
|
|
347
|
+
const mergeTargetProperties = (targetProperties) => {
|
|
337
348
|
/** @type {Set<keyof TargetProperties>} */
|
|
338
349
|
const keys = new Set();
|
|
339
350
|
for (const tp of targetProperties) {
|
|
@@ -341,7 +352,7 @@ const mergeTargetProperties = targetProperties => {
|
|
|
341
352
|
keys.add(/** @type {keyof TargetProperties} */ (key));
|
|
342
353
|
}
|
|
343
354
|
}
|
|
344
|
-
/** @type {
|
|
355
|
+
/** @type {TargetProperties} */
|
|
345
356
|
const result = {};
|
|
346
357
|
for (const key of keys) {
|
|
347
358
|
let hasTrue = false;
|
|
@@ -357,11 +368,12 @@ const mergeTargetProperties = targetProperties => {
|
|
|
357
368
|
break;
|
|
358
369
|
}
|
|
359
370
|
}
|
|
360
|
-
if (hasTrue || hasFalse)
|
|
371
|
+
if (hasTrue || hasFalse) {
|
|
361
372
|
/** @type {TargetProperties} */
|
|
362
373
|
(result)[key] = hasFalse && hasTrue ? null : Boolean(hasTrue);
|
|
374
|
+
}
|
|
363
375
|
}
|
|
364
|
-
return
|
|
376
|
+
return result;
|
|
365
377
|
};
|
|
366
378
|
|
|
367
379
|
/**
|
|
@@ -370,7 +382,7 @@ const mergeTargetProperties = targetProperties => {
|
|
|
370
382
|
* @returns {TargetProperties} target properties
|
|
371
383
|
*/
|
|
372
384
|
const getTargetsProperties = (targets, context) =>
|
|
373
|
-
mergeTargetProperties(targets.map(t => getTargetProperties(t, context)));
|
|
385
|
+
mergeTargetProperties(targets.map((t) => getTargetProperties(t, context)));
|
|
374
386
|
|
|
375
387
|
module.exports.getDefaultTarget = getDefaultTarget;
|
|
376
388
|
module.exports.getTargetProperties = getTargetProperties;
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @typedef {import("./ContainerEntryModule").ExposeOptions} ExposeOptions */
|
|
12
11
|
/** @typedef {import("./ContainerEntryModule").ExposesList} ExposesList */
|
|
13
12
|
|
|
14
13
|
class ContainerEntryDependency extends Dependency {
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
|
9
9
|
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
|
10
10
|
const Module = require("../Module");
|
|
11
|
-
const {
|
|
11
|
+
const {
|
|
12
|
+
JAVASCRIPT_TYPE,
|
|
13
|
+
JAVASCRIPT_TYPES
|
|
14
|
+
} = require("../ModuleSourceTypeConstants");
|
|
12
15
|
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
|
|
13
16
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
14
17
|
const Template = require("../Template");
|
|
@@ -16,23 +19,21 @@ const StaticExportsDependency = require("../dependencies/StaticExportsDependency
|
|
|
16
19
|
const makeSerializable = require("../util/makeSerializable");
|
|
17
20
|
const ContainerExposedDependency = require("./ContainerExposedDependency");
|
|
18
21
|
|
|
19
|
-
/** @typedef {import("
|
|
20
|
-
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
21
|
-
/** @typedef {import("../ChunkGroup")} ChunkGroup */
|
|
22
|
+
/** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
|
|
22
23
|
/** @typedef {import("../Compilation")} Compilation */
|
|
24
|
+
/** @typedef {import("../Module").BuildCallback} BuildCallback */
|
|
23
25
|
/** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
|
|
24
26
|
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
|
25
27
|
/** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */
|
|
28
|
+
/** @typedef {import("../Module").LibIdent} LibIdent */
|
|
29
|
+
/** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
|
|
26
30
|
/** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
|
|
27
31
|
/** @typedef {import("../Module").SourceTypes} SourceTypes */
|
|
28
32
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
|
29
33
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
30
|
-
/** @typedef {import("../WebpackError")} WebpackError */
|
|
31
34
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
32
35
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
33
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
34
36
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
35
|
-
/** @typedef {import("./ContainerEntryDependency")} ContainerEntryDependency */
|
|
36
37
|
|
|
37
38
|
/**
|
|
38
39
|
* @typedef {object} ExposeOptions
|
|
@@ -59,7 +60,7 @@ class ContainerEntryModule extends Module {
|
|
|
59
60
|
* @returns {SourceTypes} types available (do not mutate)
|
|
60
61
|
*/
|
|
61
62
|
getSourceTypes() {
|
|
62
|
-
return
|
|
63
|
+
return JAVASCRIPT_TYPES;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
/**
|
|
@@ -81,7 +82,7 @@ class ContainerEntryModule extends Module {
|
|
|
81
82
|
|
|
82
83
|
/**
|
|
83
84
|
* @param {LibIdentOptions} options options
|
|
84
|
-
* @returns {
|
|
85
|
+
* @returns {LibIdent | null} an identifier for library inclusion
|
|
85
86
|
*/
|
|
86
87
|
libIdent(options) {
|
|
87
88
|
return `${this.layer ? `(${this.layer})/` : ""}webpack/container/entry/${
|
|
@@ -91,7 +92,7 @@ class ContainerEntryModule extends Module {
|
|
|
91
92
|
|
|
92
93
|
/**
|
|
93
94
|
* @param {NeedBuildContext} context context info
|
|
94
|
-
* @param {
|
|
95
|
+
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
95
96
|
* @returns {void}
|
|
96
97
|
*/
|
|
97
98
|
needBuild(context, callback) {
|
|
@@ -103,7 +104,7 @@ class ContainerEntryModule extends Module {
|
|
|
103
104
|
* @param {Compilation} compilation the compilation
|
|
104
105
|
* @param {ResolverWithOptions} resolver the resolver
|
|
105
106
|
* @param {InputFileSystem} fs the file system
|
|
106
|
-
* @param {
|
|
107
|
+
* @param {BuildCallback} callback callback function
|
|
107
108
|
* @returns {void}
|
|
108
109
|
*/
|
|
109
110
|
build(options, compilation, resolver, fs, callback) {
|
|
@@ -157,7 +158,7 @@ class ContainerEntryModule extends Module {
|
|
|
157
158
|
for (const block of this.blocks) {
|
|
158
159
|
const { dependencies } = block;
|
|
159
160
|
|
|
160
|
-
const modules = dependencies.map(dependency => {
|
|
161
|
+
const modules = dependencies.map((dependency) => {
|
|
161
162
|
const dep = /** @type {ContainerExposedDependency} */ (dependency);
|
|
162
163
|
return {
|
|
163
164
|
name: dep.exposedName,
|
|
@@ -168,9 +169,9 @@ class ContainerEntryModule extends Module {
|
|
|
168
169
|
|
|
169
170
|
let str;
|
|
170
171
|
|
|
171
|
-
if (modules.some(m => !m.module)) {
|
|
172
|
+
if (modules.some((m) => !m.module)) {
|
|
172
173
|
str = runtimeTemplate.throwMissingModuleErrorBlock({
|
|
173
|
-
request: modules.map(m => m.request).join(", ")
|
|
174
|
+
request: modules.map((m) => m.request).join(", ")
|
|
174
175
|
});
|
|
175
176
|
} else {
|
|
176
177
|
str = `return ${runtimeTemplate.blockPromise({
|
|
@@ -244,7 +245,7 @@ class ContainerEntryModule extends Module {
|
|
|
244
245
|
]);
|
|
245
246
|
|
|
246
247
|
sources.set(
|
|
247
|
-
|
|
248
|
+
JAVASCRIPT_TYPE,
|
|
248
249
|
this.useSourceMap || this.useSimpleSourceMap
|
|
249
250
|
? new OriginalSource(source, "webpack/container-entry")
|
|
250
251
|
: new RawSource(source)
|