webpack 5.76.1 → 5.88.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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/README.md +10 -4
- package/bin/webpack.js +26 -2
- package/hot/dev-server.js +2 -1
- package/hot/lazy-compilation-node.js +10 -0
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +22 -0
- package/hot/only-dev-server.js +2 -1
- package/hot/poll.js +3 -0
- package/hot/signal.js +4 -0
- package/lib/APIPlugin.js +174 -116
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +4 -0
- package/lib/CacheFacade.js +4 -0
- package/lib/CaseSensitiveModulesWarning.js +3 -1
- package/lib/Chunk.js +36 -18
- package/lib/ChunkGraph.js +4 -4
- package/lib/ChunkGroup.js +25 -10
- package/lib/CleanPlugin.js +30 -7
- package/lib/CodeGenerationResults.js +2 -2
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +17 -8
- package/lib/Compiler.js +12 -8
- package/lib/ConcatenationScope.js +2 -2
- package/lib/ConditionalInitFragment.js +11 -1
- package/lib/ConstPlugin.js +79 -44
- package/lib/ContextModule.js +20 -6
- package/lib/ContextModuleFactory.js +2 -1
- package/lib/ContextReplacementPlugin.js +13 -0
- package/lib/CssModule.js +169 -0
- package/lib/DefinePlugin.js +152 -86
- package/lib/DelegatedModule.js +22 -4
- package/lib/DelegatedModuleFactoryPlugin.js +6 -0
- package/lib/DependenciesBlock.js +17 -1
- package/lib/Dependency.js +19 -5
- package/lib/DllEntryPlugin.js +16 -1
- package/lib/DllModule.js +17 -2
- package/lib/DllModuleFactory.js +1 -1
- package/lib/DllReferencePlugin.js +13 -1
- package/lib/Entrypoint.js +1 -1
- package/lib/ErrorHelpers.js +62 -22
- package/lib/EvalSourceMapDevToolPlugin.js +9 -2
- package/lib/ExportsInfo.js +20 -3
- package/lib/ExportsInfoApiPlugin.js +30 -14
- package/lib/ExternalModule.js +30 -9
- package/lib/FileSystemInfo.js +9 -1
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +336 -348
- package/lib/FlagDependencyUsagePlugin.js +9 -9
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/HookWebpackError.js +1 -1
- package/lib/HotModuleReplacementPlugin.js +60 -46
- package/lib/IgnoreErrorModuleFactory.js +1 -1
- package/lib/InitFragment.js +28 -5
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +22 -5
- package/lib/LoaderOptionsPlugin.js +12 -2
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +44 -12
- package/lib/ModuleBuildError.js +9 -0
- package/lib/ModuleDependencyError.js +4 -2
- package/lib/ModuleDependencyWarning.js +4 -2
- package/lib/ModuleError.js +9 -0
- package/lib/ModuleFactory.js +1 -1
- package/lib/ModuleFilenameHelpers.js +114 -4
- package/lib/ModuleGraph.js +33 -23
- package/lib/ModuleGraphConnection.js +19 -6
- package/lib/ModuleInfoHeaderPlugin.js +9 -2
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +9 -0
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +2 -0
- package/lib/ModuleStoreError.js +2 -1
- package/lib/ModuleTypeConstants.js +169 -0
- package/lib/ModuleWarning.js +9 -0
- package/lib/MultiWatching.js +4 -0
- package/lib/NodeStuffPlugin.js +65 -35
- package/lib/NormalModule.js +12 -2
- package/lib/NormalModuleFactory.js +56 -8
- package/lib/NormalModuleReplacementPlugin.js +5 -3
- package/lib/NullFactory.js +1 -1
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +71 -15
- package/lib/ProvidePlugin.js +30 -14
- package/lib/RawModule.js +13 -2
- package/lib/RecordIdsPlugin.js +4 -4
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimeModule.js +12 -11
- package/lib/RuntimePlugin.js +10 -3
- package/lib/RuntimeTemplate.js +29 -11
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +47 -11
- package/lib/Template.js +5 -3
- package/lib/UseStrictPlugin.js +29 -11
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +7 -0
- package/lib/WatchIgnorePlugin.js +4 -0
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +41 -44
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +24 -9
- package/lib/asset/AssetModulesPlugin.js +28 -12
- package/lib/asset/AssetParser.js +15 -7
- package/lib/asset/AssetSourceParser.js +8 -3
- package/lib/asset/RawDataUrlModule.js +15 -4
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -0
- package/lib/cache/PackFileCacheStrategy.js +42 -15
- package/lib/cache/ResolverCachePlugin.js +3 -0
- package/lib/config/browserslistTargetHandler.js +10 -10
- package/lib/config/defaults.js +306 -105
- package/lib/config/normalization.js +110 -71
- package/lib/config/target.js +37 -10
- package/lib/container/ContainerEntryModule.js +11 -1
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +3 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +12 -2
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/RemoteModule.js +11 -1
- package/lib/container/RemoteRuntimeModule.js +3 -2
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/css/CssExportsGenerator.js +9 -0
- package/lib/css/CssGenerator.js +5 -1
- package/lib/css/CssLoadingRuntimeModule.js +53 -22
- package/lib/css/CssModulesPlugin.js +253 -74
- package/lib/css/CssParser.js +697 -282
- package/lib/css/walkCssTokens.js +269 -138
- package/lib/debug/ProfilingPlugin.js +33 -12
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +13 -2
- package/lib/dependencies/AMDPlugin.js +33 -20
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -0
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +8 -2
- package/lib/dependencies/AMDRequireDependency.js +16 -1
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CachedConstDependency.js +14 -0
- package/lib/dependencies/CommonJsDependencyHelpers.js +9 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +19 -0
- package/lib/dependencies/CommonJsExportsDependency.js +16 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +77 -5
- package/lib/dependencies/CommonJsFullRequireDependency.js +10 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +174 -63
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +17 -0
- package/lib/dependencies/CommonJsRequireDependency.js +7 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +16 -0
- package/lib/dependencies/ConstDependency.js +11 -2
- package/lib/dependencies/ContextDependency.js +15 -2
- package/lib/dependencies/ContextDependencyHelpers.js +3 -3
- package/lib/dependencies/ContextElementDependency.js +8 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +10 -1
- package/lib/dependencies/CriticalDependencyWarning.js +3 -0
- package/lib/dependencies/CssExportDependency.js +8 -0
- package/lib/dependencies/CssImportDependency.js +55 -3
- package/lib/dependencies/CssLocalIdentifierDependency.js +15 -1
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +10 -1
- package/lib/dependencies/CssUrlDependency.js +46 -16
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +10 -6
- package/lib/dependencies/ExportsInfoDependency.js +25 -4
- package/lib/dependencies/HarmonyAcceptDependency.js +10 -1
- package/lib/dependencies/HarmonyAcceptImportDependency.js +3 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +2 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +22 -2
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -6
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +5 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +20 -3
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +22 -6
- package/lib/dependencies/HarmonyExportInitFragment.js +2 -1
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +11 -5
- package/lib/dependencies/HarmonyImportDependency.js +10 -1
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +53 -22
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +7 -2
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +139 -16
- package/lib/dependencies/HarmonyModulesPlugin.js +23 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -0
- package/lib/dependencies/ImportDependency.js +15 -4
- package/lib/dependencies/ImportEagerDependency.js +7 -4
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +51 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +18 -5
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +103 -51
- package/lib/dependencies/ImportParserPlugin.js +83 -25
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +7 -4
- package/lib/dependencies/JsonExportsDependency.js +9 -1
- package/lib/dependencies/LocalModule.js +16 -0
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +18 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +8 -0
- package/lib/dependencies/ModuleDependency.js +9 -1
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +14 -2
- package/lib/dependencies/PureExpressionDependency.js +10 -1
- package/lib/dependencies/RequireContextDependency.js +6 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +13 -5
- package/lib/dependencies/RequireContextPlugin.js +19 -6
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +6 -1
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +5 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +17 -0
- package/lib/dependencies/RequireResolveDependency.js +6 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +8 -0
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +48 -21
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +13 -4
- package/lib/dependencies/URLPlugin.js +31 -18
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +5 -0
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +105 -32
- package/lib/dependencies/getFunctionExpression.js +7 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +21 -8
- package/lib/esm/ModuleChunkLoadingPlugin.js +9 -0
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +19 -12
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +14 -5
- package/lib/ids/ChunkModuleIdRangePlugin.js +11 -0
- package/lib/ids/DeterministicChunkIdsPlugin.js +11 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +11 -7
- package/lib/ids/HashedModuleIdsPlugin.js +9 -2
- package/lib/ids/IdHelpers.js +6 -0
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +14 -3
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -2
- package/lib/index.js +8 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +137 -11
- package/lib/javascript/ChunkHelpers.js +2 -2
- package/lib/javascript/CommonJsChunkFormatPlugin.js +7 -3
- package/lib/javascript/EnableChunkLoadingPlugin.js +4 -0
- package/lib/javascript/JavascriptModulesPlugin.js +194 -194
- package/lib/javascript/JavascriptParser.js +941 -256
- package/lib/javascript/JavascriptParserHelpers.js +37 -15
- package/lib/javascript/StartupHelpers.js +2 -2
- package/lib/json/JsonData.js +26 -1
- package/lib/json/JsonGenerator.js +21 -7
- package/lib/json/JsonModulesPlugin.js +14 -5
- package/lib/json/JsonParser.js +27 -13
- package/lib/library/AbstractLibraryPlugin.js +4 -0
- package/lib/library/AmdLibraryPlugin.js +22 -6
- package/lib/library/AssignLibraryPlugin.js +6 -4
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
- package/lib/library/ModuleLibraryPlugin.js +8 -4
- package/lib/library/SystemLibraryPlugin.js +1 -0
- package/lib/library/UmdLibraryPlugin.js +4 -0
- package/lib/logging/runtime.js +1 -1
- package/lib/logging/truncateArgs.js +4 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +17 -2
- package/lib/node/NodeTargetPlugin.js +3 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +1 -1
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +18 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +12 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +15 -8
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +8 -0
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -2
- package/lib/optimize/ConcatenatedModule.js +8 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -0
- package/lib/optimize/FlagIncludedChunksPlugin.js +11 -5
- package/lib/optimize/InnerGraph.js +5 -5
- package/lib/optimize/InnerGraphPlugin.js +57 -48
- package/lib/optimize/LimitChunkCountPlugin.js +29 -4
- package/lib/optimize/MangleExportsPlugin.js +1 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -0
- package/lib/optimize/ModuleConcatenationPlugin.js +59 -2
- package/lib/optimize/RealContentHashPlugin.js +86 -30
- package/lib/optimize/RemoveParentModulesPlugin.js +6 -0
- package/lib/optimize/RuntimeChunkPlugin.js +9 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +53 -44
- package/lib/optimize/SplitChunksPlugin.js +71 -31
- package/lib/performance/SizeLimitsPlugin.js +7 -4
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +3 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +6 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -2
- package/lib/rules/BasicEffectRulePlugin.js +4 -0
- package/lib/rules/BasicMatcherRulePlugin.js +5 -0
- package/lib/rules/RuleSetCompiler.js +3 -3
- package/lib/rules/UseEffectRulePlugin.js +6 -4
- package/lib/runtime/AsyncModuleRuntimeModule.js +9 -6
- package/lib/runtime/AutoPublicPathRuntimeModule.js +16 -5
- package/lib/runtime/BaseUriRuntimeModule.js +8 -4
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +4 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +4 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +5 -2
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +45 -26
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +27 -6
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +65 -50
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +1 -1
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +13 -4
- package/lib/runtime/StartupEntrypointRuntimeModule.js +11 -7
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +38 -0
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +164 -1
- package/lib/serialization/DateObjectSerializer.js +15 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -8
- package/lib/serialization/FileMiddleware.js +17 -0
- package/lib/serialization/MapObjectSerializer.js +24 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +25 -8
- package/lib/serialization/ObjectMiddleware.js +33 -2
- package/lib/serialization/PlainObjectSerializer.js +23 -12
- package/lib/serialization/RegExpObjectSerializer.js +16 -5
- package/lib/serialization/SetObjectSerializer.js +21 -6
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +13 -2
- package/lib/sharing/ConsumeSharedPlugin.js +4 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +22 -7
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +11 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +22 -21
- package/lib/sharing/ShareRuntimeModule.js +19 -9
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/sharing/utils.js +320 -7
- package/lib/stats/DefaultStatsFactoryPlugin.js +105 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +9 -0
- package/lib/stats/DefaultStatsPrinterPlugin.js +43 -0
- package/lib/util/AsyncQueue.js +4 -2
- package/lib/util/LazySet.js +10 -2
- package/lib/util/MapHelpers.js +19 -5
- package/lib/util/ParallelismFactorCalculator.js +10 -0
- package/lib/util/Semaphore.js +1 -1
- package/lib/util/StackedCacheMap.js +6 -0
- package/lib/util/StringXor.js +51 -0
- package/lib/util/binarySearchBounds.js +49 -0
- package/lib/util/compileBooleanMatcher.js +31 -0
- package/lib/util/createHash.js +35 -13
- package/lib/util/deprecation.js +18 -3
- package/lib/util/deterministicGrouping.js +50 -11
- package/lib/util/findGraphRoots.js +4 -2
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +4 -0
- package/lib/util/internalSerializables.js +1 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +3 -3
- package/lib/util/numberHash.js +75 -21
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +9 -54
- package/lib/util/propertyName.js +79 -0
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +14 -1
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +10 -0
- package/lib/util/smartGrouping.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +4 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +15 -2
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +14 -3
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +28 -8
- package/lib/wasm-async/AsyncWebAssemblyParser.js +11 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +39 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +19 -5
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +15 -4
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +26 -9
- package/lib/webpack.js +12 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +9 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +20 -17
- package/module.d.ts +55 -37
- package/package.json +59 -56
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +132 -5
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +8 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +1 -1
- package/schemas/plugins/css/CssParserOptions.json +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +1608 -667
@@ -7,17 +7,28 @@
|
|
7
7
|
|
8
8
|
const util = require("util");
|
9
9
|
|
10
|
+
/** @typedef {import("../../declarations/WebpackOptions").CacheOptionsNormalized} CacheOptions */
|
11
|
+
/** @typedef {import("../../declarations/WebpackOptions").EntryDescriptionNormalized} EntryDescriptionNormalized */
|
10
12
|
/** @typedef {import("../../declarations/WebpackOptions").EntryStatic} EntryStatic */
|
11
13
|
/** @typedef {import("../../declarations/WebpackOptions").EntryStaticNormalized} EntryStaticNormalized */
|
14
|
+
/** @typedef {import("../../declarations/WebpackOptions").Externals} Externals */
|
12
15
|
/** @typedef {import("../../declarations/WebpackOptions").LibraryName} LibraryName */
|
13
16
|
/** @typedef {import("../../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
17
|
+
/** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptionsNormalized */
|
14
18
|
/** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunk} OptimizationRuntimeChunk */
|
15
19
|
/** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunkNormalized} OptimizationRuntimeChunkNormalized */
|
16
20
|
/** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputNormalized */
|
21
|
+
/** @typedef {import("../../declarations/WebpackOptions").Plugins} Plugins */
|
17
22
|
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
|
18
23
|
/** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
|
24
|
+
/** @typedef {import("../Entrypoint")} Entrypoint */
|
19
25
|
|
20
26
|
const handledDeprecatedNoEmitOnErrors = util.deprecate(
|
27
|
+
/**
|
28
|
+
* @param {boolean} noEmitOnErrors no emit on errors
|
29
|
+
* @param {boolean | undefined} emitOnErrors emit on errors
|
30
|
+
* @returns {boolean} emit on errors
|
31
|
+
*/
|
21
32
|
(noEmitOnErrors, emitOnErrors) => {
|
22
33
|
if (emitOnErrors !== undefined && !noEmitOnErrors === !emitOnErrors) {
|
23
34
|
throw new Error(
|
@@ -117,45 +128,51 @@ const getNormalizedWebpackOptions = config => {
|
|
117
128
|
return {
|
118
129
|
amd: config.amd,
|
119
130
|
bail: config.bail,
|
120
|
-
cache:
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
131
|
+
cache:
|
132
|
+
/** @type {NonNullable<CacheOptions>} */
|
133
|
+
(
|
134
|
+
optionalNestedConfig(config.cache, cache => {
|
135
|
+
if (cache === false) return false;
|
136
|
+
if (cache === true) {
|
137
|
+
return {
|
138
|
+
type: "memory",
|
139
|
+
maxGenerations: undefined
|
140
|
+
};
|
141
|
+
}
|
142
|
+
switch (cache.type) {
|
143
|
+
case "filesystem":
|
144
|
+
return {
|
145
|
+
type: "filesystem",
|
146
|
+
allowCollectingMemory: cache.allowCollectingMemory,
|
147
|
+
maxMemoryGenerations: cache.maxMemoryGenerations,
|
148
|
+
maxAge: cache.maxAge,
|
149
|
+
profile: cache.profile,
|
150
|
+
buildDependencies: cloneObject(cache.buildDependencies),
|
151
|
+
cacheDirectory: cache.cacheDirectory,
|
152
|
+
cacheLocation: cache.cacheLocation,
|
153
|
+
hashAlgorithm: cache.hashAlgorithm,
|
154
|
+
compression: cache.compression,
|
155
|
+
idleTimeout: cache.idleTimeout,
|
156
|
+
idleTimeoutForInitialStore: cache.idleTimeoutForInitialStore,
|
157
|
+
idleTimeoutAfterLargeChanges:
|
158
|
+
cache.idleTimeoutAfterLargeChanges,
|
159
|
+
name: cache.name,
|
160
|
+
store: cache.store,
|
161
|
+
version: cache.version,
|
162
|
+
readonly: cache.readonly
|
163
|
+
};
|
164
|
+
case undefined:
|
165
|
+
case "memory":
|
166
|
+
return {
|
167
|
+
type: "memory",
|
168
|
+
maxGenerations: cache.maxGenerations
|
169
|
+
};
|
170
|
+
default:
|
171
|
+
// @ts-expect-error Property 'type' does not exist on type 'never'. ts(2339)
|
172
|
+
throw new Error(`Not implemented cache.type ${cache.type}`);
|
173
|
+
}
|
174
|
+
})
|
175
|
+
),
|
159
176
|
context: config.context,
|
160
177
|
dependencies: config.dependencies,
|
161
178
|
devServer: optionalNestedConfig(config.devServer, devServer => ({
|
@@ -184,7 +201,7 @@ const getNormalizedWebpackOptions = config => {
|
|
184
201
|
options === true ? {} : options
|
185
202
|
)
|
186
203
|
})),
|
187
|
-
externals: config.externals,
|
204
|
+
externals: /** @type {NonNullable<Externals>} */ (config.externals),
|
188
205
|
externalsPresets: cloneObject(config.externalsPresets),
|
189
206
|
externalsType: config.externalsType,
|
190
207
|
ignoreWarnings: config.ignoreWarnings
|
@@ -215,32 +232,36 @@ const getNormalizedWebpackOptions = config => {
|
|
215
232
|
infrastructureLogging: cloneObject(config.infrastructureLogging),
|
216
233
|
loader: cloneObject(config.loader),
|
217
234
|
mode: config.mode,
|
218
|
-
module:
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
235
|
+
module:
|
236
|
+
/** @type {ModuleOptionsNormalized} */
|
237
|
+
(
|
238
|
+
nestedConfig(config.module, module => ({
|
239
|
+
noParse: module.noParse,
|
240
|
+
unsafeCache: module.unsafeCache,
|
241
|
+
parser: keyedNestedConfig(module.parser, cloneObject, {
|
242
|
+
javascript: parserOptions => ({
|
243
|
+
unknownContextRequest: module.unknownContextRequest,
|
244
|
+
unknownContextRegExp: module.unknownContextRegExp,
|
245
|
+
unknownContextRecursive: module.unknownContextRecursive,
|
246
|
+
unknownContextCritical: module.unknownContextCritical,
|
247
|
+
exprContextRequest: module.exprContextRequest,
|
248
|
+
exprContextRegExp: module.exprContextRegExp,
|
249
|
+
exprContextRecursive: module.exprContextRecursive,
|
250
|
+
exprContextCritical: module.exprContextCritical,
|
251
|
+
wrappedContextRegExp: module.wrappedContextRegExp,
|
252
|
+
wrappedContextRecursive: module.wrappedContextRecursive,
|
253
|
+
wrappedContextCritical: module.wrappedContextCritical,
|
254
|
+
// TODO webpack 6 remove
|
255
|
+
strictExportPresence: module.strictExportPresence,
|
256
|
+
strictThisContextOnImports: module.strictThisContextOnImports,
|
257
|
+
...parserOptions
|
258
|
+
})
|
259
|
+
}),
|
260
|
+
generator: cloneObject(module.generator),
|
261
|
+
defaultRules: optionalNestedArray(module.defaultRules, r => [...r]),
|
262
|
+
rules: nestedArray(module.rules, r => [...r])
|
263
|
+
}))
|
264
|
+
),
|
244
265
|
name: config.name,
|
245
266
|
node: nestedConfig(
|
246
267
|
config.node,
|
@@ -327,6 +348,7 @@ const getNormalizedWebpackOptions = config => {
|
|
327
348
|
hotUpdateChunkFilename: output.hotUpdateChunkFilename,
|
328
349
|
hotUpdateGlobal: output.hotUpdateGlobal,
|
329
350
|
hotUpdateMainFilename: output.hotUpdateMainFilename,
|
351
|
+
ignoreBrowserWarnings: output.ignoreBrowserWarnings,
|
330
352
|
iife: output.iife,
|
331
353
|
importFunctionName: output.importFunctionName,
|
332
354
|
importMetaName: output.importMetaName,
|
@@ -340,6 +362,10 @@ const getNormalizedWebpackOptions = config => {
|
|
340
362
|
output.auxiliaryComment !== undefined
|
341
363
|
? output.auxiliaryComment
|
342
364
|
: libraryBase.auxiliaryComment,
|
365
|
+
amdContainer:
|
366
|
+
output.amdContainer !== undefined
|
367
|
+
? output.amdContainer
|
368
|
+
: libraryBase.amdContainer,
|
343
369
|
export:
|
344
370
|
output.libraryExport !== undefined
|
345
371
|
? output.libraryExport
|
@@ -369,6 +395,7 @@ const getNormalizedWebpackOptions = config => {
|
|
369
395
|
uniqueName: output.uniqueName,
|
370
396
|
wasmLoading: output.wasmLoading,
|
371
397
|
webassemblyModuleFilename: output.webassemblyModuleFilename,
|
398
|
+
workerPublicPath: output.workerPublicPath,
|
372
399
|
workerChunkLoading: output.workerChunkLoading,
|
373
400
|
workerWasmLoading: output.workerWasmLoading
|
374
401
|
};
|
@@ -381,7 +408,7 @@ const getNormalizedWebpackOptions = config => {
|
|
381
408
|
...performance
|
382
409
|
};
|
383
410
|
}),
|
384
|
-
plugins: nestedArray(config.plugins, p => [...p]),
|
411
|
+
plugins: /** @type {Plugins} */ (nestedArray(config.plugins, p => [...p])),
|
385
412
|
profile: config.profile,
|
386
413
|
recordsInputPath:
|
387
414
|
config.recordsInputPath !== undefined
|
@@ -482,8 +509,11 @@ const getNormalizedEntryStatic = entry => {
|
|
482
509
|
} else {
|
483
510
|
result[key] = {
|
484
511
|
import:
|
485
|
-
|
486
|
-
(
|
512
|
+
/** @type {EntryDescriptionNormalized["import"]} */
|
513
|
+
(
|
514
|
+
value.import &&
|
515
|
+
(Array.isArray(value.import) ? value.import : [value.import])
|
516
|
+
),
|
487
517
|
filename: value.filename,
|
488
518
|
layer: value.layer,
|
489
519
|
runtime: value.runtime,
|
@@ -493,8 +523,13 @@ const getNormalizedEntryStatic = entry => {
|
|
493
523
|
asyncChunks: value.asyncChunks,
|
494
524
|
wasmLoading: value.wasmLoading,
|
495
525
|
dependOn:
|
496
|
-
|
497
|
-
(
|
526
|
+
/** @type {EntryDescriptionNormalized["dependOn"]} */
|
527
|
+
(
|
528
|
+
value.dependOn &&
|
529
|
+
(Array.isArray(value.dependOn)
|
530
|
+
? value.dependOn
|
531
|
+
: [value.dependOn])
|
532
|
+
),
|
498
533
|
library: value.library
|
499
534
|
};
|
500
535
|
}
|
@@ -516,6 +551,10 @@ const getNormalizedOptimizationRuntimeChunk = runtimeChunk => {
|
|
516
551
|
}
|
517
552
|
if (runtimeChunk === true || runtimeChunk === "multiple") {
|
518
553
|
return {
|
554
|
+
/**
|
555
|
+
* @param {Entrypoint} entrypoint entrypoint
|
556
|
+
* @returns {string} runtime chunk name
|
557
|
+
*/
|
519
558
|
name: entrypoint => `runtime~${entrypoint.name}`
|
520
559
|
};
|
521
560
|
}
|
package/lib/config/target.js
CHANGED
@@ -64,20 +64,39 @@ const getDefaultTarget = context => {
|
|
64
64
|
*/
|
65
65
|
|
66
66
|
///** @typedef {PlatformTargetProperties | ApiTargetProperties | EcmaTargetProperties | PlatformTargetProperties & ApiTargetProperties | PlatformTargetProperties & EcmaTargetProperties | ApiTargetProperties & EcmaTargetProperties} TargetProperties */
|
67
|
-
|
68
|
-
/**
|
67
|
+
|
68
|
+
/**
|
69
|
+
* @template T
|
70
|
+
* @typedef {{ [P in keyof T]?: never }} Never<T>
|
71
|
+
*/
|
72
|
+
|
73
|
+
/**
|
74
|
+
* @template A
|
75
|
+
* @template B
|
76
|
+
* @typedef {(A & Never<B>) | (Never<A> & B) | (A & B)} Mix<A, B>
|
77
|
+
*/
|
78
|
+
|
69
79
|
/** @typedef {Mix<Mix<PlatformTargetProperties, ElectronContextTargetProperties>, Mix<ApiTargetProperties, EcmaTargetProperties>>} TargetProperties */
|
70
80
|
|
81
|
+
/**
|
82
|
+
* @param {string} major major version
|
83
|
+
* @param {string | undefined} minor minor version
|
84
|
+
* @returns {(vMajor: number, vMinor?: number) => boolean | undefined} check if version is greater or equal
|
85
|
+
*/
|
71
86
|
const versionDependent = (major, minor) => {
|
72
|
-
if (!major)
|
73
|
-
|
74
|
-
|
87
|
+
if (!major) {
|
88
|
+
return () => /** @type {undefined} */ (undefined);
|
89
|
+
}
|
90
|
+
/** @type {number} */
|
91
|
+
const nMajor = +major;
|
92
|
+
/** @type {number} */
|
93
|
+
const nMinor = minor ? +minor : 0;
|
75
94
|
return (vMajor, vMinor = 0) => {
|
76
|
-
return
|
95
|
+
return nMajor > vMajor || (nMajor === vMajor && nMinor >= vMinor);
|
77
96
|
};
|
78
97
|
};
|
79
98
|
|
80
|
-
/** @type {[string, string, RegExp, (...args: string[]) => TargetProperties
|
99
|
+
/** @type {[string, string, RegExp, (...args: string[]) => Partial<TargetProperties>][]} */
|
81
100
|
const TARGETS = [
|
82
101
|
[
|
83
102
|
"browserslist / browserslist:env / browserslist:query / browserslist:path-to-config / browserslist:path-to-config:env",
|
@@ -95,6 +114,7 @@ See https://github.com/browserslist/browserslist#queries for possible ways to pr
|
|
95
114
|
The recommended way is to add a 'browserslist' key to your package.json and list supported browsers (resp. node.js versions).
|
96
115
|
You can also more options via the 'target' option: 'browserslist' / 'browserslist:env' / 'browserslist:query' / 'browserslist:path-to-config' / 'browserslist:path-to-config:env'`);
|
97
116
|
}
|
117
|
+
|
98
118
|
return browserslistTargetHandler.resolve(browsers);
|
99
119
|
}
|
100
120
|
],
|
@@ -294,7 +314,7 @@ const getTargetProperties = (target, context) => {
|
|
294
314
|
if (match) {
|
295
315
|
const [, ...args] = match;
|
296
316
|
const result = handler(...args, context);
|
297
|
-
if (result) return result;
|
317
|
+
if (result) return /** @type {TargetProperties} */ (result);
|
298
318
|
}
|
299
319
|
}
|
300
320
|
throw new Error(
|
@@ -304,13 +324,19 @@ const getTargetProperties = (target, context) => {
|
|
304
324
|
);
|
305
325
|
};
|
306
326
|
|
327
|
+
/**
|
328
|
+
* @param {TargetProperties[]} targetProperties array of target properties
|
329
|
+
* @returns {TargetProperties} merged target properties
|
330
|
+
*/
|
307
331
|
const mergeTargetProperties = targetProperties => {
|
332
|
+
/** @type {Set<keyof TargetProperties>} */
|
308
333
|
const keys = new Set();
|
309
334
|
for (const tp of targetProperties) {
|
310
335
|
for (const key of Object.keys(tp)) {
|
311
|
-
keys.add(key);
|
336
|
+
keys.add(/** @type {keyof TargetProperties} */ (key));
|
312
337
|
}
|
313
338
|
}
|
339
|
+
/** @type {Object} */
|
314
340
|
const result = {};
|
315
341
|
for (const key of keys) {
|
316
342
|
let hasTrue = false;
|
@@ -327,7 +353,8 @@ const mergeTargetProperties = targetProperties => {
|
|
327
353
|
}
|
328
354
|
}
|
329
355
|
if (hasTrue || hasFalse)
|
330
|
-
|
356
|
+
/** @type {TargetProperties} */
|
357
|
+
(result)[key] = hasFalse && hasTrue ? null : hasTrue ? true : false;
|
331
358
|
}
|
332
359
|
return /** @type {TargetProperties} */ (result);
|
333
360
|
};
|
@@ -8,6 +8,7 @@
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
9
9
|
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
10
10
|
const Module = require("../Module");
|
11
|
+
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
|
11
12
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
12
13
|
const Template = require("../Template");
|
13
14
|
const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
|
@@ -25,6 +26,8 @@ const ContainerExposedDependency = require("./ContainerExposedDependency");
|
|
25
26
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
26
27
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
27
28
|
/** @typedef {import("../WebpackError")} WebpackError */
|
29
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
30
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
28
31
|
/** @typedef {import("../util/Hash")} Hash */
|
29
32
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
30
33
|
/** @typedef {import("./ContainerEntryDependency")} ContainerEntryDependency */
|
@@ -44,7 +47,7 @@ class ContainerEntryModule extends Module {
|
|
44
47
|
* @param {string} shareScope name of the share scope
|
45
48
|
*/
|
46
49
|
constructor(name, exposes, shareScope) {
|
47
|
-
super(
|
50
|
+
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
48
51
|
this._name = name;
|
49
52
|
this._exposes = exposes;
|
50
53
|
this._shareScope = shareScope;
|
@@ -259,6 +262,9 @@ class ContainerEntryModule extends Module {
|
|
259
262
|
return 42;
|
260
263
|
}
|
261
264
|
|
265
|
+
/**
|
266
|
+
* @param {ObjectSerializerContext} context context
|
267
|
+
*/
|
262
268
|
serialize(context) {
|
263
269
|
const { write } = context;
|
264
270
|
write(this._name);
|
@@ -267,6 +273,10 @@ class ContainerEntryModule extends Module {
|
|
267
273
|
super.serialize(context);
|
268
274
|
}
|
269
275
|
|
276
|
+
/**
|
277
|
+
* @param {ObjectDeserializerContext} context context
|
278
|
+
* @returns {ContainerEntryModule} deserialized container entry module
|
279
|
+
*/
|
270
280
|
static deserialize(context) {
|
271
281
|
const { read } = context;
|
272
282
|
const obj = new ContainerEntryModule(read(), read(), read());
|
@@ -15,7 +15,7 @@ const ContainerEntryModule = require("./ContainerEntryModule");
|
|
15
15
|
module.exports = class ContainerEntryModuleFactory extends ModuleFactory {
|
16
16
|
/**
|
17
17
|
* @param {ModuleFactoryCreateData} data data object
|
18
|
-
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
|
18
|
+
* @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
|
19
19
|
* @returns {void}
|
20
20
|
*/
|
21
21
|
create({ dependencies: [dependency] }, callback) {
|
@@ -8,6 +8,9 @@
|
|
8
8
|
const ModuleDependency = require("../dependencies/ModuleDependency");
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
13
|
+
|
11
14
|
class ContainerExposedDependency extends ModuleDependency {
|
12
15
|
/**
|
13
16
|
* @param {string} exposedName public name
|
@@ -33,11 +36,17 @@ class ContainerExposedDependency extends ModuleDependency {
|
|
33
36
|
return `exposed dependency ${this.exposedName}=${this.request}`;
|
34
37
|
}
|
35
38
|
|
39
|
+
/**
|
40
|
+
* @param {ObjectSerializerContext} context context
|
41
|
+
*/
|
36
42
|
serialize(context) {
|
37
43
|
context.write(this.exposedName);
|
38
44
|
super.serialize(context);
|
39
45
|
}
|
40
46
|
|
47
|
+
/**
|
48
|
+
* @param {ObjectDeserializerContext} context context
|
49
|
+
*/
|
41
50
|
deserialize(context) {
|
42
51
|
this.exposedName = context.read();
|
43
52
|
super.deserialize(context);
|
@@ -64,7 +64,9 @@ class ContainerPlugin {
|
|
64
64
|
const { name, exposes, shareScope, filename, library, runtime } =
|
65
65
|
this._options;
|
66
66
|
|
67
|
-
compiler.options.output.enabledLibraryTypes.
|
67
|
+
if (!compiler.options.output.enabledLibraryTypes.includes(library.type)) {
|
68
|
+
compiler.options.output.enabledLibraryTypes.push(library.type);
|
69
|
+
}
|
68
70
|
|
69
71
|
compiler.hooks.make.tapAsync(PLUGIN_NAME, (compilation, callback) => {
|
70
72
|
const dep = new ContainerEntryDependency(name, exposes, shareScope);
|
@@ -8,7 +8,13 @@
|
|
8
8
|
const Dependency = require("../Dependency");
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
13
|
+
|
11
14
|
class FallbackDependency extends Dependency {
|
15
|
+
/**
|
16
|
+
* @param {string[]} requests requests
|
17
|
+
*/
|
12
18
|
constructor(requests) {
|
13
19
|
super();
|
14
20
|
this.requests = requests;
|
@@ -29,12 +35,19 @@ class FallbackDependency extends Dependency {
|
|
29
35
|
return "esm";
|
30
36
|
}
|
31
37
|
|
38
|
+
/**
|
39
|
+
* @param {ObjectSerializerContext} context context
|
40
|
+
*/
|
32
41
|
serialize(context) {
|
33
42
|
const { write } = context;
|
34
43
|
write(this.requests);
|
35
44
|
super.serialize(context);
|
36
45
|
}
|
37
46
|
|
47
|
+
/**
|
48
|
+
* @param {ObjectDeserializerContext} context context
|
49
|
+
* @returns {FallbackDependency} deserialize fallback dependency
|
50
|
+
*/
|
38
51
|
static deserialize(context) {
|
39
52
|
const { read } = context;
|
40
53
|
const obj = new FallbackDependency(read());
|
@@ -9,6 +9,9 @@ const ModuleDependency = require("../dependencies/ModuleDependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
11
|
class FallbackItemDependency extends ModuleDependency {
|
12
|
+
/**
|
13
|
+
* @param {string} request request
|
14
|
+
*/
|
12
15
|
constructor(request) {
|
13
16
|
super(request);
|
14
17
|
}
|
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
const { RawSource } = require("webpack-sources");
|
9
9
|
const Module = require("../Module");
|
10
|
+
const { WEBPACK_MODULE_TYPE_FALLBACK } = require("../ModuleTypeConstants");
|
10
11
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
11
12
|
const Template = require("../Template");
|
12
13
|
const makeSerializable = require("../util/makeSerializable");
|
@@ -24,6 +25,8 @@ const FallbackItemDependency = require("./FallbackItemDependency");
|
|
24
25
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
25
26
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
26
27
|
/** @typedef {import("../WebpackError")} WebpackError */
|
28
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
29
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
27
30
|
/** @typedef {import("../util/Hash")} Hash */
|
28
31
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
29
32
|
|
@@ -35,7 +38,7 @@ class FallbackModule extends Module {
|
|
35
38
|
* @param {string[]} requests list of requests to choose one
|
36
39
|
*/
|
37
40
|
constructor(requests) {
|
38
|
-
super(
|
41
|
+
super(WEBPACK_MODULE_TYPE_FALLBACK);
|
39
42
|
this.requests = requests;
|
40
43
|
this._identifier = `fallback ${this.requests.join(" ")}`;
|
41
44
|
}
|
@@ -133,7 +136,7 @@ class FallbackModule extends Module {
|
|
133
136
|
`var loop = ${runtimeTemplate.basicFunction("next", [
|
134
137
|
"while(i < ids.length) {",
|
135
138
|
Template.indent([
|
136
|
-
|
139
|
+
`try { next = ${RuntimeGlobals.require}(ids[i++]); } catch(e) { return handleError(e); }`,
|
137
140
|
"if(next) return next.then ? next.then(handleResult, handleError) : handleResult(next);"
|
138
141
|
]),
|
139
142
|
"}",
|
@@ -154,12 +157,19 @@ class FallbackModule extends Module {
|
|
154
157
|
return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS };
|
155
158
|
}
|
156
159
|
|
160
|
+
/**
|
161
|
+
* @param {ObjectSerializerContext} context context
|
162
|
+
*/
|
157
163
|
serialize(context) {
|
158
164
|
const { write } = context;
|
159
165
|
write(this.requests);
|
160
166
|
super.serialize(context);
|
161
167
|
}
|
162
168
|
|
169
|
+
/**
|
170
|
+
* @param {ObjectDeserializerContext} context context
|
171
|
+
* @returns {FallbackModule} deserialized fallback module
|
172
|
+
*/
|
163
173
|
static deserialize(context) {
|
164
174
|
const { read } = context;
|
165
175
|
const obj = new FallbackModule(read());
|
@@ -15,7 +15,7 @@ const FallbackModule = require("./FallbackModule");
|
|
15
15
|
module.exports = class FallbackModuleFactory extends ModuleFactory {
|
16
16
|
/**
|
17
17
|
* @param {ModuleFactoryCreateData} data data object
|
18
|
-
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
|
18
|
+
* @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
|
19
19
|
* @returns {void}
|
20
20
|
*/
|
21
21
|
create({ dependencies: [dependency] }, callback) {
|
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
const { RawSource } = require("webpack-sources");
|
9
9
|
const Module = require("../Module");
|
10
|
+
const { WEBPACK_MODULE_TYPE_REMOTE } = require("../ModuleTypeConstants");
|
10
11
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
11
12
|
const makeSerializable = require("../util/makeSerializable");
|
12
13
|
const FallbackDependency = require("./FallbackDependency");
|
@@ -23,6 +24,8 @@ const RemoteToExternalDependency = require("./RemoteToExternalDependency");
|
|
23
24
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
24
25
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
25
26
|
/** @typedef {import("../WebpackError")} WebpackError */
|
27
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
28
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
26
29
|
/** @typedef {import("../util/Hash")} Hash */
|
27
30
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
28
31
|
|
@@ -37,7 +40,7 @@ class RemoteModule extends Module {
|
|
37
40
|
* @param {string} shareScope the used share scope name
|
38
41
|
*/
|
39
42
|
constructor(request, externalRequests, internalRequest, shareScope) {
|
40
|
-
super(
|
43
|
+
super(WEBPACK_MODULE_TYPE_REMOTE);
|
41
44
|
this.request = request;
|
42
45
|
this.externalRequests = externalRequests;
|
43
46
|
this.internalRequest = internalRequest;
|
@@ -149,6 +152,9 @@ class RemoteModule extends Module {
|
|
149
152
|
return { sources, data, runtimeRequirements: RUNTIME_REQUIREMENTS };
|
150
153
|
}
|
151
154
|
|
155
|
+
/**
|
156
|
+
* @param {ObjectSerializerContext} context context
|
157
|
+
*/
|
152
158
|
serialize(context) {
|
153
159
|
const { write } = context;
|
154
160
|
write(this.request);
|
@@ -158,6 +164,10 @@ class RemoteModule extends Module {
|
|
158
164
|
super.serialize(context);
|
159
165
|
}
|
160
166
|
|
167
|
+
/**
|
168
|
+
* @param {ObjectDeserializerContext} context context
|
169
|
+
* @returns {RemoteModule} deserialized module
|
170
|
+
*/
|
161
171
|
static deserialize(context) {
|
162
172
|
const { read } = context;
|
163
173
|
const obj = new RemoteModule(read(), read(), read(), read());
|
@@ -9,6 +9,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
10
10
|
const Template = require("../Template");
|
11
11
|
|
12
|
+
/** @typedef {import("../Chunk")} Chunk */
|
12
13
|
/** @typedef {import("./RemoteModule")} RemoteModule */
|
13
14
|
|
14
15
|
class RemoteRuntimeModule extends RuntimeModule {
|
@@ -17,7 +18,7 @@ class RemoteRuntimeModule extends RuntimeModule {
|
|
17
18
|
}
|
18
19
|
|
19
20
|
/**
|
20
|
-
* @returns {string} runtime code
|
21
|
+
* @returns {string | null} runtime code
|
21
22
|
*/
|
22
23
|
generate() {
|
23
24
|
const { compilation, chunkGraph } = this;
|
@@ -117,7 +118,7 @@ class RemoteRuntimeModule extends RuntimeModule {
|
|
117
118
|
"module.exports = factory();"
|
118
119
|
])}`
|
119
120
|
])};`,
|
120
|
-
|
121
|
+
`handleFunction(${RuntimeGlobals.require}, data[2], 0, 0, onExternal, 1);`
|
121
122
|
])});`
|
122
123
|
]),
|
123
124
|
"}"
|
@@ -9,6 +9,9 @@ const ModuleDependency = require("../dependencies/ModuleDependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
11
|
class RemoteToExternalDependency extends ModuleDependency {
|
12
|
+
/**
|
13
|
+
* @param {string} request request
|
14
|
+
*/
|
12
15
|
constructor(request) {
|
13
16
|
super(request);
|
14
17
|
}
|