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
package/lib/DllEntryPlugin.js
CHANGED
@@ -9,13 +9,25 @@ const DllModuleFactory = require("./DllModuleFactory");
|
|
9
9
|
const DllEntryDependency = require("./dependencies/DllEntryDependency");
|
10
10
|
const EntryDependency = require("./dependencies/EntryDependency");
|
11
11
|
|
12
|
+
/** @typedef {import("./Compiler")} Compiler */
|
13
|
+
|
12
14
|
class DllEntryPlugin {
|
15
|
+
/**
|
16
|
+
* @param {string} context context
|
17
|
+
* @param {string[]} entries entry names
|
18
|
+
* @param {TODO} options options
|
19
|
+
*/
|
13
20
|
constructor(context, entries, options) {
|
14
21
|
this.context = context;
|
15
22
|
this.entries = entries;
|
16
23
|
this.options = options;
|
17
24
|
}
|
18
25
|
|
26
|
+
/**
|
27
|
+
* Apply the plugin
|
28
|
+
* @param {Compiler} compiler the compiler instance
|
29
|
+
* @returns {void}
|
30
|
+
*/
|
19
31
|
apply(compiler) {
|
20
32
|
compiler.hooks.compilation.tap(
|
21
33
|
"DllEntryPlugin",
|
@@ -46,7 +58,10 @@ class DllEntryPlugin {
|
|
46
58
|
this.options.name
|
47
59
|
),
|
48
60
|
this.options,
|
49
|
-
|
61
|
+
error => {
|
62
|
+
if (error) return callback(error);
|
63
|
+
callback();
|
64
|
+
}
|
50
65
|
);
|
51
66
|
});
|
52
67
|
}
|
package/lib/DllModule.js
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
const { RawSource } = require("webpack-sources");
|
9
9
|
const Module = require("./Module");
|
10
|
+
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
10
11
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
11
12
|
const makeSerializable = require("./util/makeSerializable");
|
12
13
|
|
@@ -14,6 +15,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
14
15
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
|
15
16
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
16
17
|
/** @typedef {import("./Compilation")} Compilation */
|
18
|
+
/** @typedef {import("./Dependency")} Dependency */
|
17
19
|
/** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
|
18
20
|
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
|
19
21
|
/** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */
|
@@ -24,6 +26,8 @@ const makeSerializable = require("./util/makeSerializable");
|
|
24
26
|
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
25
27
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
26
28
|
/** @typedef {import("./WebpackError")} WebpackError */
|
29
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
30
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
27
31
|
/** @typedef {import("./util/Hash")} Hash */
|
28
32
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
29
33
|
|
@@ -34,8 +38,13 @@ const RUNTIME_REQUIREMENTS = new Set([
|
|
34
38
|
]);
|
35
39
|
|
36
40
|
class DllModule extends Module {
|
41
|
+
/**
|
42
|
+
* @param {string} context context path
|
43
|
+
* @param {Dependency[]} dependencies dependencies
|
44
|
+
* @param {string} name name
|
45
|
+
*/
|
37
46
|
constructor(context, dependencies, name) {
|
38
|
-
super(
|
47
|
+
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, context);
|
39
48
|
|
40
49
|
// Info from Factory
|
41
50
|
this.dependencies = dependencies;
|
@@ -86,7 +95,7 @@ class DllModule extends Module {
|
|
86
95
|
const sources = new Map();
|
87
96
|
sources.set(
|
88
97
|
"javascript",
|
89
|
-
new RawSource(
|
98
|
+
new RawSource(`module.exports = ${RuntimeGlobals.require};`)
|
90
99
|
);
|
91
100
|
return {
|
92
101
|
sources,
|
@@ -121,11 +130,17 @@ class DllModule extends Module {
|
|
121
130
|
super.updateHash(hash, context);
|
122
131
|
}
|
123
132
|
|
133
|
+
/**
|
134
|
+
* @param {ObjectSerializerContext} context context
|
135
|
+
*/
|
124
136
|
serialize(context) {
|
125
137
|
context.write(this.name);
|
126
138
|
super.serialize(context);
|
127
139
|
}
|
128
140
|
|
141
|
+
/**
|
142
|
+
* @param {ObjectDeserializerContext} context context
|
143
|
+
*/
|
129
144
|
deserialize(context) {
|
130
145
|
this.name = context.read();
|
131
146
|
super.deserialize(context);
|
package/lib/DllModuleFactory.js
CHANGED
@@ -19,7 +19,7 @@ class DllModuleFactory extends ModuleFactory {
|
|
19
19
|
}
|
20
20
|
/**
|
21
21
|
* @param {ModuleFactoryCreateData} data data object
|
22
|
-
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
|
22
|
+
* @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
|
23
23
|
* @returns {void}
|
24
24
|
*/
|
25
25
|
create(data, callback) {
|
@@ -16,6 +16,7 @@ const makePathsRelative = require("./util/identifier").makePathsRelative;
|
|
16
16
|
/** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
|
17
17
|
/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
|
18
18
|
/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsManifest} DllReferencePluginOptionsManifest */
|
19
|
+
/** @typedef {import("./Compiler")} Compiler */
|
19
20
|
|
20
21
|
const validate = createSchemaValidation(
|
21
22
|
require("../schemas/plugins/DllReferencePlugin.check.js"),
|
@@ -37,6 +38,11 @@ class DllReferencePlugin {
|
|
37
38
|
this._compilationData = new WeakMap();
|
38
39
|
}
|
39
40
|
|
41
|
+
/**
|
42
|
+
* Apply the plugin
|
43
|
+
* @param {Compiler} compiler the compiler instance
|
44
|
+
* @returns {void}
|
45
|
+
*/
|
40
46
|
apply(compiler) {
|
41
47
|
compiler.hooks.compilation.tap(
|
42
48
|
"DllReferencePlugin",
|
@@ -140,7 +146,9 @@ class DllReferencePlugin {
|
|
140
146
|
// If there was an error parsing the manifest file, add the
|
141
147
|
// error as a compilation error to make the compilation fail.
|
142
148
|
if (data.error) {
|
143
|
-
compilation.errors.push(
|
149
|
+
compilation.errors.push(
|
150
|
+
/** @type {DllManifestError} */ (data.error)
|
151
|
+
);
|
144
152
|
}
|
145
153
|
compilation.fileDependencies.add(manifest);
|
146
154
|
}
|
@@ -151,6 +159,10 @@ class DllReferencePlugin {
|
|
151
159
|
}
|
152
160
|
|
153
161
|
class DllManifestError extends WebpackError {
|
162
|
+
/**
|
163
|
+
* @param {string} filename filename of the manifest
|
164
|
+
* @param {string} message error message
|
165
|
+
*/
|
154
166
|
constructor(filename, message) {
|
155
167
|
super();
|
156
168
|
|
package/lib/Entrypoint.js
CHANGED
package/lib/ErrorHelpers.js
CHANGED
@@ -9,36 +9,58 @@ const loaderFlag = "LOADER_EXECUTION";
|
|
9
9
|
|
10
10
|
const webpackOptionsFlag = "WEBPACK_OPTIONS";
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
/**
|
13
|
+
* @param {string} stack stack trace
|
14
|
+
* @param {string} flag flag to cut off
|
15
|
+
* @returns {string} stack trace without the specified flag included
|
16
|
+
*/
|
17
|
+
const cutOffByFlag = (stack, flag) => {
|
18
|
+
const errorStack = stack.split("\n");
|
19
|
+
for (let i = 0; i < errorStack.length; i++) {
|
20
|
+
if (errorStack[i].includes(flag)) {
|
21
|
+
errorStack.length = i;
|
17
22
|
}
|
18
23
|
}
|
19
|
-
return
|
24
|
+
return errorStack.join("\n");
|
20
25
|
};
|
21
26
|
|
22
|
-
|
23
|
-
|
27
|
+
/**
|
28
|
+
* @param {string} stack stack trace
|
29
|
+
* @returns {string} stack trace without the loader execution flag included
|
30
|
+
*/
|
31
|
+
const cutOffLoaderExecution = stack => cutOffByFlag(stack, loaderFlag);
|
24
32
|
|
25
|
-
|
26
|
-
|
33
|
+
/**
|
34
|
+
* @param {string} stack stack trace
|
35
|
+
* @returns {string} stack trace without the webpack options flag included
|
36
|
+
*/
|
37
|
+
const cutOffWebpackOptions = stack => cutOffByFlag(stack, webpackOptionsFlag);
|
27
38
|
|
28
|
-
|
29
|
-
|
30
|
-
|
39
|
+
/**
|
40
|
+
* @param {string} stack stack trace
|
41
|
+
* @param {string} message error message
|
42
|
+
* @returns {string} stack trace without the message included
|
43
|
+
*/
|
44
|
+
const cutOffMultilineMessage = (stack, message) => {
|
45
|
+
const stackSplitByLines = stack.split("\n");
|
46
|
+
const messageSplitByLines = message.split("\n");
|
31
47
|
|
48
|
+
/** @type {string[]} */
|
32
49
|
const result = [];
|
33
50
|
|
34
|
-
|
35
|
-
if (!line.includes(
|
51
|
+
stackSplitByLines.forEach((line, idx) => {
|
52
|
+
if (!line.includes(messageSplitByLines[idx])) result.push(line);
|
36
53
|
});
|
37
54
|
|
38
55
|
return result.join("\n");
|
39
56
|
};
|
40
57
|
|
41
|
-
|
58
|
+
/**
|
59
|
+
* @param {string} stack stack trace
|
60
|
+
* @param {string} message error message
|
61
|
+
* @returns {string} stack trace without the message included
|
62
|
+
*/
|
63
|
+
const cutOffMessage = (stack, message) => {
|
42
64
|
const nextLine = stack.indexOf("\n");
|
43
65
|
if (nextLine === -1) {
|
44
66
|
return stack === message ? "" : stack;
|
@@ -48,14 +70,32 @@ exports.cutOffMessage = (stack, message) => {
|
|
48
70
|
}
|
49
71
|
};
|
50
72
|
|
51
|
-
|
52
|
-
|
53
|
-
|
73
|
+
/**
|
74
|
+
* @param {string} stack stack trace
|
75
|
+
* @param {string} message error message
|
76
|
+
* @returns {string} stack trace without the loader execution flag and message included
|
77
|
+
*/
|
78
|
+
const cleanUp = (stack, message) => {
|
79
|
+
stack = cutOffLoaderExecution(stack);
|
80
|
+
stack = cutOffMessage(stack, message);
|
54
81
|
return stack;
|
55
82
|
};
|
56
83
|
|
57
|
-
|
58
|
-
|
59
|
-
|
84
|
+
/**
|
85
|
+
* @param {string} stack stack trace
|
86
|
+
* @param {string} message error message
|
87
|
+
* @returns {string} stack trace without the webpack options flag and message included
|
88
|
+
*/
|
89
|
+
const cleanUpWebpackOptions = (stack, message) => {
|
90
|
+
stack = cutOffWebpackOptions(stack);
|
91
|
+
stack = cutOffMultilineMessage(stack, message);
|
60
92
|
return stack;
|
61
93
|
};
|
94
|
+
|
95
|
+
exports.cutOffByFlag = cutOffByFlag;
|
96
|
+
exports.cutOffLoaderExecution = cutOffLoaderExecution;
|
97
|
+
exports.cutOffWebpackOptions = cutOffWebpackOptions;
|
98
|
+
exports.cutOffMultilineMessage = cutOffMultilineMessage;
|
99
|
+
exports.cutOffMessage = cutOffMessage;
|
100
|
+
exports.cleanUp = cleanUp;
|
101
|
+
exports.cleanUpWebpackOptions = cleanUpWebpackOptions;
|
@@ -48,7 +48,9 @@ class EvalSourceMapDevToolPlugin {
|
|
48
48
|
options = inputOptions;
|
49
49
|
}
|
50
50
|
this.sourceMapComment =
|
51
|
-
options.append
|
51
|
+
options.append && typeof options.append !== "function"
|
52
|
+
? options.append
|
53
|
+
: "//# sourceURL=[module]\n//# sourceMappingURL=[url]";
|
52
54
|
this.moduleFilenameTemplate =
|
53
55
|
options.moduleFilenameTemplate ||
|
54
56
|
"webpack://[namespace]/[resource-path]?[hash]";
|
@@ -80,6 +82,10 @@ class EvalSourceMapDevToolPlugin {
|
|
80
82
|
return cachedSource;
|
81
83
|
}
|
82
84
|
|
85
|
+
/**
|
86
|
+
* @param {Source} r result
|
87
|
+
* @returns {Source} result
|
88
|
+
*/
|
83
89
|
const result = r => {
|
84
90
|
cache.set(source, r);
|
85
91
|
return r;
|
@@ -158,7 +164,8 @@ class EvalSourceMapDevToolPlugin {
|
|
158
164
|
}
|
159
165
|
sourceMap.sourceRoot = options.sourceRoot || "";
|
160
166
|
const moduleId = chunkGraph.getModuleId(m);
|
161
|
-
sourceMap.file =
|
167
|
+
sourceMap.file =
|
168
|
+
typeof moduleId === "number" ? `${moduleId}.js` : moduleId;
|
162
169
|
|
163
170
|
const footer =
|
164
171
|
this.sourceMapComment.replace(
|
package/lib/ExportsInfo.js
CHANGED
@@ -14,6 +14,8 @@ const { forEachRuntime } = require("./util/runtime");
|
|
14
14
|
/** @typedef {import("./Module")} Module */
|
15
15
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
16
16
|
/** @typedef {import("./ModuleGraphConnection")} ModuleGraphConnection */
|
17
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
18
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
17
19
|
/** @typedef {import("./util/Hash")} Hash */
|
18
20
|
|
19
21
|
/** @typedef {typeof UsageState.OnlyPropertiesUsed | typeof UsageState.NoInfo | typeof UsageState.Unknown | typeof UsageState.Used} RuntimeUsageStateType */
|
@@ -44,6 +46,9 @@ class RestoreProvidedData {
|
|
44
46
|
this.otherTerminalBinding = otherTerminalBinding;
|
45
47
|
}
|
46
48
|
|
49
|
+
/**
|
50
|
+
* @param {ObjectSerializerContext} context context
|
51
|
+
*/
|
47
52
|
serialize({ write }) {
|
48
53
|
write(this.exports);
|
49
54
|
write(this.otherProvided);
|
@@ -51,6 +56,10 @@ class RestoreProvidedData {
|
|
51
56
|
write(this.otherTerminalBinding);
|
52
57
|
}
|
53
58
|
|
59
|
+
/**
|
60
|
+
* @param {ObjectDeserializerContext} context context
|
61
|
+
* @returns {RestoreProvidedData} RestoreProvidedData
|
62
|
+
*/
|
54
63
|
static deserialize({ read }) {
|
55
64
|
return new RestoreProvidedData(read(), read(), read(), read());
|
56
65
|
}
|
@@ -301,7 +310,12 @@ class ExportsInfo {
|
|
301
310
|
changed = true;
|
302
311
|
}
|
303
312
|
if (targetKey) {
|
304
|
-
exportInfo.setTarget(
|
313
|
+
exportInfo.setTarget(
|
314
|
+
targetKey,
|
315
|
+
/** @type {ModuleGraphConnection} */ (targetModule),
|
316
|
+
[exportInfo.name],
|
317
|
+
-1
|
318
|
+
);
|
305
319
|
}
|
306
320
|
}
|
307
321
|
if (this._redirectTo !== undefined) {
|
@@ -331,7 +345,7 @@ class ExportsInfo {
|
|
331
345
|
if (targetKey) {
|
332
346
|
this._otherExportsInfo.setTarget(
|
333
347
|
targetKey,
|
334
|
-
targetModule,
|
348
|
+
/** @type {ModuleGraphConnection} */ (targetModule),
|
335
349
|
undefined,
|
336
350
|
priority
|
337
351
|
);
|
@@ -752,6 +766,9 @@ class ExportsInfo {
|
|
752
766
|
);
|
753
767
|
}
|
754
768
|
|
769
|
+
/**
|
770
|
+
* @param {{ otherProvided: any, otherCanMangleProvide: any, otherTerminalBinding: any, exports: any }} data data
|
771
|
+
*/
|
755
772
|
restoreProvided({
|
756
773
|
otherProvided,
|
757
774
|
otherCanMangleProvide,
|
@@ -1223,7 +1240,7 @@ class ExportInfo {
|
|
1223
1240
|
/**
|
1224
1241
|
* @param {ModuleGraph} moduleGraph the module graph
|
1225
1242
|
* @param {function(Module): boolean} validTargetModuleFilter a valid target module
|
1226
|
-
* @param {Set<ExportInfo>
|
1243
|
+
* @param {Set<ExportInfo>} alreadyVisited set of already visited export info to avoid circular references
|
1227
1244
|
* @returns {{ module: Module, export: string[] | undefined } | undefined | false} the target, undefined when there is no target, false when no target is valid
|
1228
1245
|
*/
|
1229
1246
|
_findTarget(moduleGraph, validTargetModuleFilter, alreadyVisited) {
|
@@ -5,11 +5,20 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
+
const {
|
9
|
+
JAVASCRIPT_MODULE_TYPE_AUTO,
|
10
|
+
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
11
|
+
JAVASCRIPT_MODULE_TYPE_ESM
|
12
|
+
} = require("./ModuleTypeConstants");
|
8
13
|
const ConstDependency = require("./dependencies/ConstDependency");
|
9
14
|
const ExportsInfoDependency = require("./dependencies/ExportsInfoDependency");
|
10
15
|
|
11
16
|
/** @typedef {import("./Compiler")} Compiler */
|
17
|
+
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
|
12
18
|
/** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
|
19
|
+
/** @typedef {import("./javascript/JavascriptParser").Range} Range */
|
20
|
+
|
21
|
+
const PLUGIN_NAME = "ExportsInfoApiPlugin";
|
13
22
|
|
14
23
|
class ExportsInfoApiPlugin {
|
15
24
|
/**
|
@@ -19,7 +28,7 @@ class ExportsInfoApiPlugin {
|
|
19
28
|
*/
|
20
29
|
apply(compiler) {
|
21
30
|
compiler.hooks.compilation.tap(
|
22
|
-
|
31
|
+
PLUGIN_NAME,
|
23
32
|
(compilation, { normalModuleFactory }) => {
|
24
33
|
compilation.dependencyTemplates.set(
|
25
34
|
ExportsInfoDependency,
|
@@ -32,37 +41,44 @@ class ExportsInfoApiPlugin {
|
|
32
41
|
const handler = parser => {
|
33
42
|
parser.hooks.expressionMemberChain
|
34
43
|
.for("__webpack_exports_info__")
|
35
|
-
.tap(
|
44
|
+
.tap(PLUGIN_NAME, (expr, members) => {
|
36
45
|
const dep =
|
37
46
|
members.length >= 2
|
38
47
|
? new ExportsInfoDependency(
|
39
|
-
expr.range,
|
48
|
+
/** @type {Range} */ (expr.range),
|
40
49
|
members.slice(0, -1),
|
41
50
|
members[members.length - 1]
|
42
51
|
)
|
43
|
-
: new ExportsInfoDependency(
|
44
|
-
|
52
|
+
: new ExportsInfoDependency(
|
53
|
+
/** @type {Range} */ (expr.range),
|
54
|
+
null,
|
55
|
+
members[0]
|
56
|
+
);
|
57
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
45
58
|
parser.state.module.addDependency(dep);
|
46
59
|
return true;
|
47
60
|
});
|
48
61
|
parser.hooks.expression
|
49
62
|
.for("__webpack_exports_info__")
|
50
|
-
.tap(
|
51
|
-
const dep = new ConstDependency(
|
52
|
-
|
63
|
+
.tap(PLUGIN_NAME, expr => {
|
64
|
+
const dep = new ConstDependency(
|
65
|
+
"true",
|
66
|
+
/** @type {Range} */ (expr.range)
|
67
|
+
);
|
68
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
53
69
|
parser.state.module.addPresentationalDependency(dep);
|
54
70
|
return true;
|
55
71
|
});
|
56
72
|
};
|
57
73
|
normalModuleFactory.hooks.parser
|
58
|
-
.for(
|
59
|
-
.tap(
|
74
|
+
.for(JAVASCRIPT_MODULE_TYPE_AUTO)
|
75
|
+
.tap(PLUGIN_NAME, handler);
|
60
76
|
normalModuleFactory.hooks.parser
|
61
|
-
.for(
|
62
|
-
.tap(
|
77
|
+
.for(JAVASCRIPT_MODULE_TYPE_DYNAMIC)
|
78
|
+
.tap(PLUGIN_NAME, handler);
|
63
79
|
normalModuleFactory.hooks.parser
|
64
|
-
.for(
|
65
|
-
.tap(
|
80
|
+
.for(JAVASCRIPT_MODULE_TYPE_ESM)
|
81
|
+
.tap(PLUGIN_NAME, handler);
|
66
82
|
}
|
67
83
|
);
|
68
84
|
}
|
package/lib/ExternalModule.js
CHANGED
@@ -10,6 +10,7 @@ const ConcatenationScope = require("./ConcatenationScope");
|
|
10
10
|
const { UsageState } = require("./ExportsInfo");
|
11
11
|
const InitFragment = require("./InitFragment");
|
12
12
|
const Module = require("./Module");
|
13
|
+
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
13
14
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
14
15
|
const Template = require("./Template");
|
15
16
|
const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
|
@@ -38,6 +39,8 @@ const { register } = require("./util/serialization");
|
|
38
39
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
39
40
|
/** @typedef {import("./WebpackError")} WebpackError */
|
40
41
|
/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
42
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
43
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
41
44
|
/** @typedef {import("./util/Hash")} Hash */
|
42
45
|
/** @typedef {typeof import("./util/Hash")} HashConstructor */
|
43
46
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
@@ -101,9 +104,13 @@ const getSourceForCommonJsExternal = moduleAndSpecifiers => {
|
|
101
104
|
|
102
105
|
/**
|
103
106
|
* @param {string|string[]} moduleAndSpecifiers the module request
|
107
|
+
* @param {string} importMetaName import.meta name
|
104
108
|
* @returns {SourceData} the generated source
|
105
109
|
*/
|
106
|
-
const getSourceForCommonJsExternalInNodeModule =
|
110
|
+
const getSourceForCommonJsExternalInNodeModule = (
|
111
|
+
moduleAndSpecifiers,
|
112
|
+
importMetaName
|
113
|
+
) => {
|
107
114
|
const chunkInitFragments = [
|
108
115
|
new InitFragment(
|
109
116
|
'import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "module";\n',
|
@@ -114,18 +121,18 @@ const getSourceForCommonJsExternalInNodeModule = moduleAndSpecifiers => {
|
|
114
121
|
];
|
115
122
|
if (!Array.isArray(moduleAndSpecifiers)) {
|
116
123
|
return {
|
117
|
-
|
124
|
+
chunkInitFragments,
|
125
|
+
expression: `__WEBPACK_EXTERNAL_createRequire(${importMetaName}.url)(${JSON.stringify(
|
118
126
|
moduleAndSpecifiers
|
119
|
-
)})
|
120
|
-
chunkInitFragments
|
127
|
+
)})`
|
121
128
|
};
|
122
129
|
}
|
123
130
|
const moduleName = moduleAndSpecifiers[0];
|
124
131
|
return {
|
125
|
-
|
132
|
+
chunkInitFragments,
|
133
|
+
expression: `__WEBPACK_EXTERNAL_createRequire(${importMetaName}.url)(${JSON.stringify(
|
126
134
|
moduleName
|
127
|
-
)})${propertyAccess(moduleAndSpecifiers, 1)}
|
128
|
-
chunkInitFragments
|
135
|
+
)})${propertyAccess(moduleAndSpecifiers, 1)}`
|
129
136
|
};
|
130
137
|
};
|
131
138
|
|
@@ -377,8 +384,13 @@ const getSourceForDefaultCase = (optional, request, runtimeTemplate) => {
|
|
377
384
|
};
|
378
385
|
|
379
386
|
class ExternalModule extends Module {
|
387
|
+
/**
|
388
|
+
* @param {string | string[] | Record<string, string | string[]>} request request
|
389
|
+
* @param {TODO} type type
|
390
|
+
* @param {string} userRequest user request
|
391
|
+
*/
|
380
392
|
constructor(request, type, userRequest) {
|
381
|
-
super(
|
393
|
+
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
382
394
|
|
383
395
|
// Info from Factory
|
384
396
|
/** @type {string | string[] | Record<string, string | string[]>} */
|
@@ -554,7 +566,10 @@ class ExternalModule extends Module {
|
|
554
566
|
return getSourceForCommonJsExternal(request);
|
555
567
|
case "node-commonjs":
|
556
568
|
return this.buildInfo.module
|
557
|
-
? getSourceForCommonJsExternalInNodeModule(
|
569
|
+
? getSourceForCommonJsExternalInNodeModule(
|
570
|
+
request,
|
571
|
+
runtimeTemplate.outputOptions.importMetaName
|
572
|
+
)
|
558
573
|
: getSourceForCommonJsExternal(request);
|
559
574
|
case "amd":
|
560
575
|
case "amd-require":
|
@@ -732,6 +747,9 @@ class ExternalModule extends Module {
|
|
732
747
|
super.updateHash(hash, context);
|
733
748
|
}
|
734
749
|
|
750
|
+
/**
|
751
|
+
* @param {ObjectSerializerContext} context context
|
752
|
+
*/
|
735
753
|
serialize(context) {
|
736
754
|
const { write } = context;
|
737
755
|
|
@@ -742,6 +760,9 @@ class ExternalModule extends Module {
|
|
742
760
|
super.serialize(context);
|
743
761
|
}
|
744
762
|
|
763
|
+
/**
|
764
|
+
* @param {ObjectDeserializerContext} context context
|
765
|
+
*/
|
745
766
|
deserialize(context) {
|
746
767
|
const { read } = context;
|
747
768
|
|
package/lib/FileSystemInfo.js
CHANGED
@@ -18,6 +18,8 @@ const processAsyncTree = require("./util/processAsyncTree");
|
|
18
18
|
|
19
19
|
/** @typedef {import("./WebpackError")} WebpackError */
|
20
20
|
/** @typedef {import("./logging/Logger").Logger} Logger */
|
21
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
22
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
21
23
|
/** @typedef {typeof import("./util/Hash")} Hash */
|
22
24
|
/** @typedef {import("./util/fs").IStats} IStats */
|
23
25
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
@@ -378,6 +380,9 @@ class Snapshot {
|
|
378
380
|
this.children.add(child);
|
379
381
|
}
|
380
382
|
|
383
|
+
/**
|
384
|
+
* @param {ObjectSerializerContext} context context
|
385
|
+
*/
|
381
386
|
serialize({ write }) {
|
382
387
|
write(this._flags);
|
383
388
|
if (this.hasStartTime()) write(this.startTime);
|
@@ -395,6 +400,9 @@ class Snapshot {
|
|
395
400
|
if (this.hasChildren()) write(this.children);
|
396
401
|
}
|
397
402
|
|
403
|
+
/**
|
404
|
+
* @param {ObjectDeserializerContext} context context
|
405
|
+
*/
|
398
406
|
deserialize({ read }) {
|
399
407
|
this._flags = read();
|
400
408
|
if (this.hasStartTime()) this.startTime = read();
|
@@ -1456,7 +1464,7 @@ class FileSystemInfo {
|
|
1456
1464
|
push({
|
1457
1465
|
type: RBDT_DIRECTORY,
|
1458
1466
|
context: undefined,
|
1459
|
-
path: resultPath,
|
1467
|
+
path: /** @type {string} */ (resultPath),
|
1460
1468
|
expected: undefined,
|
1461
1469
|
issuer: job
|
1462
1470
|
});
|