webpack 5.59.0 → 5.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- 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 +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- 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 +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- 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 +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- 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 +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- 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 +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- 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 +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- 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/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
package/README.md
CHANGED
@@ -8,17 +8,15 @@
|
|
8
8
|
[![npm][npm]][npm-url]
|
9
9
|
|
10
10
|
[![node][node]][node-url]
|
11
|
-
[![
|
12
|
-
[![tests][tests]][tests-url]
|
13
|
-
[![builds][builds]][builds-url]
|
11
|
+
[![builds1][builds1]][builds1-url]
|
14
12
|
[![builds2][builds2]][builds2-url]
|
13
|
+
[![dependency-review][dependency-review]][dependency-review-url]
|
15
14
|
[![coverage][cover]][cover-url]
|
16
|
-
[![licenses][licenses]][licenses-url]
|
17
15
|
[![PR's welcome][prs]][prs-url]
|
18
16
|
|
19
17
|
<br>
|
20
|
-
<a href="https://
|
21
|
-
<img src="https://api.dependabot.com/badges/compatibility_score?dependency-name=webpack&package-manager=npm_and_yarn&version
|
18
|
+
<a href="https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-compatibility-scores">
|
19
|
+
<img src="https://api.dependabot.com/badges/compatibility_score?dependency-name=webpack&package-manager=npm_and_yarn&previous-version=5.72.1&new-version=5.73.0">
|
22
20
|
</a>
|
23
21
|
<a href="https://npmcharts.com/compare/webpack?minimal=true">
|
24
22
|
<img src="https://img.shields.io/npm/dm/webpack.svg">
|
@@ -35,8 +33,14 @@
|
|
35
33
|
<a href="https://github.com/webpack/webpack/graphs/contributors">
|
36
34
|
<img src="https://img.shields.io/github/contributors/webpack/webpack.svg">
|
37
35
|
</a>
|
38
|
-
<a href="https://
|
39
|
-
<img src="https://
|
36
|
+
<a href="https://github.com/webpack/webpack/discussions">
|
37
|
+
<img src="https://img.shields.io/github/discussions/webpack/webpack">
|
38
|
+
</a>
|
39
|
+
<a href="https://twitter.com/Webpack">
|
40
|
+
<img src="https://img.shields.io/twitter/follow/Webpack?style=social">
|
41
|
+
</a>
|
42
|
+
<a href="https://discord.gg/Tt5cKVwx">
|
43
|
+
<img src="https://img.shields.io/discord/1180618526436888586?label=discord&logo=discord&logoColor=white&style=flat">
|
40
44
|
</a>
|
41
45
|
<h1>webpack</h1>
|
42
46
|
<p>
|
@@ -112,6 +116,7 @@ within webpack itself use this plugin interface. This makes webpack very
|
|
112
116
|
| [mini-css-extract-plugin][mini-css] | ![mini-css-npm] | ![mini-css-size] | Extracts CSS into separate files. It creates a CSS file per JS file which contains CSS. |
|
113
117
|
| [compression-webpack-plugin][compression] | ![compression-npm] | ![compression-size] | Prepares compressed versions of assets to serve them with Content-Encoding |
|
114
118
|
| [html-webpack-plugin][html-plugin] | ![html-plugin-npm] | ![html-plugin-size] | Simplifies creation of HTML files (`index.html`) to serve your bundles |
|
119
|
+
| [pug-plugin][pug-plugin] | ![pug-plugin-npm] | ![pug-plugin-size] | Renders Pug files to HTML, extracts JS and CSS from sources specified directly in Pug. |
|
115
120
|
|
116
121
|
[common-npm]: https://img.shields.io/npm/v/webpack.svg
|
117
122
|
[mini-css]: https://github.com/webpack-contrib/mini-css-extract-plugin
|
@@ -126,6 +131,9 @@ within webpack itself use this plugin interface. This makes webpack very
|
|
126
131
|
[html-plugin]: https://github.com/jantimon/html-webpack-plugin
|
127
132
|
[html-plugin-npm]: https://img.shields.io/npm/v/html-webpack-plugin.svg
|
128
133
|
[html-plugin-size]: https://packagephobia.com/badge?p=html-webpack-plugin
|
134
|
+
[pug-plugin]: https://github.com/webdiscus/pug-plugin
|
135
|
+
[pug-plugin-npm]: https://img.shields.io/npm/v/pug-plugin.svg
|
136
|
+
[pug-plugin-size]: https://packagephobia.com/badge?p=pug-plugin
|
129
137
|
|
130
138
|
### [Loaders](https://webpack.js.org/loaders/)
|
131
139
|
|
@@ -157,11 +165,11 @@ or are automatically applied via regex from your webpack configuration.
|
|
157
165
|
|
158
166
|
#### Transpiling
|
159
167
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
168
|
+
| Name | Status | Install Size | Description |
|
169
|
+
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------: | :------------: | :------------------------------------------------------------------------------------------------ |
|
170
|
+
| <a href="https://github.com/babel/babel-loader"><img width="48" height="48" title="babel-loader" src="https://worldvectorlogo.com/logos/babel-10.svg"></a> | ![babel-npm] | ![babel-size] | Loads ES2015+ code and transpiles to ES5 using <a href="https://github.com/babel/babel">Babel</a> |
|
171
|
+
| <a href="https://github.com/TypeStrong/ts-loader"><img width="48" height="48" src="https://raw.githubusercontent.com/microsoft/TypeScript-Website/f407e1ae19e5e990d9901ac8064a32a8cc60edf0/packages/typescriptlang-org/static/branding/ts-logo-128.svg"></a> | ![type-npm] | ![type-size] | Loads TypeScript like JavaScript |
|
172
|
+
| <a href="https://github.com/webpack-contrib/coffee-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/coffeescript.svg"></a> | ![coffee-npm] | ![coffee-size] | Loads CoffeeScript like JavaScript |
|
165
173
|
|
166
174
|
[babel-npm]: https://img.shields.io/npm/v/babel-loader.svg
|
167
175
|
[babel-size]: https://packagephobia.com/badge?p=babel-loader
|
@@ -172,18 +180,21 @@ or are automatically applied via regex from your webpack configuration.
|
|
172
180
|
|
173
181
|
#### Templating
|
174
182
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
183
|
+
| Name | Status | Install Size | Description |
|
184
|
+
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------: | :--------------: | :-------------------------------------------------------------------------------------- |
|
185
|
+
| <a href="https://github.com/webpack-contrib/html-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/html5-2.svg"></a> | ![html-npm] | ![html-size] | Exports HTML as string, requires references to static resources |
|
186
|
+
| <a href="https://github.com/pugjs/pug-loader"><img width="48" height="48" src="https://cdn.rawgit.com/pugjs/pug-logo/master/SVG/pug-final-logo-_-colour-128.svg"></a> | ![pug-npm] | ![pug-size] | Loads Pug templates and returns a function |
|
187
|
+
| <a href="https://github.com/webdiscus/pug-loader"><img width="48" height="48" src="https://cdn.rawgit.com/pugjs/pug-logo/master/SVG/pug-final-logo-_-colour-128.svg"></a> | ![pug3-npm] | ![pug3-size] | Compiles Pug to a function or HTML string, useful for use with Vue, React, Angular |
|
188
|
+
| <a href="https://github.com/peerigon/markdown-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/markdown.svg"></a> | ![md-npm] | ![md-size] | Compiles Markdown to HTML |
|
189
|
+
| <a href="https://github.com/posthtml/posthtml-loader"><img width="48" height="48" src="https://posthtml.github.io/posthtml/logo.svg"></a> | ![posthtml-npm] | ![posthtml-size] | Loads and transforms a HTML file using [PostHTML](https://github.com/posthtml/posthtml) |
|
190
|
+
| <a href="https://github.com/pcardune/handlebars-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/handlebars-1.svg"></a> | ![hbs-npm] | ![hbs-size] | Compiles Handlebars to HTML |
|
182
191
|
|
183
192
|
[html-npm]: https://img.shields.io/npm/v/html-loader.svg
|
184
193
|
[html-size]: https://packagephobia.com/badge?p=html-loader
|
185
194
|
[pug-npm]: https://img.shields.io/npm/v/pug-loader.svg
|
186
195
|
[pug-size]: https://packagephobia.com/badge?p=pug-loader
|
196
|
+
[pug3-npm]: https://img.shields.io/npm/v/@webdiscus/pug-loader.svg
|
197
|
+
[pug3-size]: https://packagephobia.com/badge?p=@webdiscus/pug-loader
|
187
198
|
[jade-npm]: https://img.shields.io/npm/v/jade-loader.svg
|
188
199
|
[jade-size]: https://packagephobia.com/badge?p=jade-loader
|
189
200
|
[md-npm]: https://img.shields.io/npm/v/markdown-loader.svg
|
@@ -225,6 +236,7 @@ or are automatically applied via regex from your webpack configuration.
|
|
225
236
|
| <a href="https://github.com/webpack-contrib/polymer-webpack-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/polymer.svg"></a> | ![polymer-npm] | ![polymer-size] | Process HTML & CSS with preprocessor of choice and `require()` Web Components like first-class modules |
|
226
237
|
| <a href="https://github.com/TheLarkInn/angular2-template-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/angular-icon-1.svg"></a> | ![angular-npm] | ![angular-size] | Loads and compiles Angular 2 Components |
|
227
238
|
| <a href="https://github.com/riot/webpack-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/riot.svg"></a> | ![riot-npm] | ![riot-size] | Riot official webpack loader |
|
239
|
+
| <a href="https://github.com/sveltejs/svelte-loader"><img width="48" height="48" src="https://worldvectorlogo.com/logos/svelte-1.svg"></a> | ![svelte-npm] | ![svelte-size] | Official Svelte loader |
|
228
240
|
|
229
241
|
[vue-npm]: https://img.shields.io/npm/v/vue-loader.svg
|
230
242
|
[vue-size]: https://packagephobia.com/badge?p=vue-loader
|
@@ -234,6 +246,8 @@ or are automatically applied via regex from your webpack configuration.
|
|
234
246
|
[angular-size]: https://packagephobia.com/badge?p=angular2-template-loader
|
235
247
|
[riot-npm]: https://img.shields.io/npm/v/riot-tag-loader.svg
|
236
248
|
[riot-size]: https://packagephobia.com/badge?p=riot-tag-loader
|
249
|
+
[svelte-npm]: https://img.shields.io/npm/v/svelte-loader.svg
|
250
|
+
[svelte-size]: https://packagephobia.com/badge?p=svelte-loader
|
237
251
|
|
238
252
|
### Performance
|
239
253
|
|
@@ -302,7 +316,7 @@ a question to [StackOverflow with the webpack tag](https://stackoverflow.com/tag
|
|
302
316
|
|
303
317
|
If you are twitter savvy you can tweet #webpack with your question and someone should be able to reach out and help also.
|
304
318
|
|
305
|
-
If you have discovered a 🐜 or have a feature suggestion, feel free to create an issue on
|
319
|
+
If you have discovered a 🐜 or have a feature suggestion, feel free to create an issue on GitHub.
|
306
320
|
|
307
321
|
### License
|
308
322
|
|
@@ -392,7 +406,7 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
392
406
|
|
393
407
|
<h2 align="center">Gold Sponsors</h2>
|
394
408
|
|
395
|
-
[Become a gold sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on
|
409
|
+
[Become a gold sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on GitHub with a link to your site.
|
396
410
|
|
397
411
|
<div align="center">
|
398
412
|
|
@@ -431,7 +445,7 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
431
445
|
|
432
446
|
<h2 align="center">Silver Sponsors</h2>
|
433
447
|
|
434
|
-
[Become a silver sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on
|
448
|
+
[Become a silver sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on GitHub with a link to your site.
|
435
449
|
|
436
450
|
<div align="center">
|
437
451
|
|
@@ -470,7 +484,7 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
470
484
|
|
471
485
|
<h2 align="center">Bronze Sponsors</h2>
|
472
486
|
|
473
|
-
[Become a bronze sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on
|
487
|
+
[Become a bronze sponsor](https://opencollective.com/webpack#sponsor) and get your logo on our README on GitHub with a link to your site.
|
474
488
|
|
475
489
|
<div align="center">
|
476
490
|
|
@@ -580,7 +594,7 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
580
594
|
|
581
595
|
<h2 align="center">Backers</h2>
|
582
596
|
|
583
|
-
[Become a backer](https://opencollective.com/webpack#backer) and get your image on our README on
|
597
|
+
[Become a backer](https://opencollective.com/webpack#backer) and get your image on our README on GitHub with a link to your site.
|
584
598
|
|
585
599
|
<a href="https://opencollective.com/webpack/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/webpack/backer/0/avatar.svg?requireActive=false"></a>
|
586
600
|
<a href="https://opencollective.com/webpack/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/webpack/backer/1/avatar.svg?requireActive=false"></a>
|
@@ -689,7 +703,7 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
689
703
|
|
690
704
|
- [@google](https://github.com/google) for [Google Web Toolkit (GWT)](http://www.gwtproject.org/), which aims to compile Java to JavaScript. It features a similar [Code Splitting](http://www.gwtproject.org/doc/latest/DevGuideCodeSplitting.html) as webpack.
|
691
705
|
- [@medikoo](https://github.com/medikoo) for [modules-webmake](https://github.com/medikoo/modules-webmake), which is a similar project. webpack was born because I wanted Code Splitting for modules-webmake. Interestingly the [Code Splitting issue is still open](https://github.com/medikoo/modules-webmake/issues/7) (thanks also to @Phoscur for the discussion).
|
692
|
-
- [@substack](https://github.com/substack) for [browserify](
|
706
|
+
- [@substack](https://github.com/substack) for [browserify](https://browserify.org/), which is a similar project and source for many ideas.
|
693
707
|
- [@jrburke](https://github.com/jrburke) for [require.js](https://requirejs.org/), which is a similar project and source for many ideas.
|
694
708
|
- [@defunctzombie](https://github.com/defunctzombie) for the [browser-field spec](https://github.com/defunctzombie/package-browser-field-spec), which makes modules available for node.js, browserify and webpack.
|
695
709
|
- Every early webpack user, which contributed to webpack by writing issues or PRs. You influenced the direction...
|
@@ -701,17 +715,13 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"></a>
|
|
701
715
|
[npm-url]: https://npmjs.com/package/webpack
|
702
716
|
[node]: https://img.shields.io/node/v/webpack.svg
|
703
717
|
[node-url]: https://nodejs.org
|
704
|
-
[deps]: https://img.shields.io/david/webpack/webpack.svg
|
705
|
-
[deps-url]: https://david-dm.org/webpack/webpack
|
706
|
-
[tests]: https://img.shields.io/travis/webpack/webpack/main.svg
|
707
|
-
[tests-url]: https://travis-ci.org/webpack/webpack
|
708
718
|
[prs]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
|
709
719
|
[prs-url]: https://webpack.js.org/contribute/
|
710
|
-
[
|
711
|
-
[
|
712
|
-
[builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status
|
713
|
-
[builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3
|
714
|
-
[
|
715
|
-
[
|
716
|
-
[cover]: https://
|
717
|
-
[cover-url]: https://
|
720
|
+
[builds1]: https://github.com/webpack/webpack/actions/workflows/test.yml/badge.svg
|
721
|
+
[builds1-url]: https://github.com/webpack/webpack/actions/workflows/test.yml
|
722
|
+
[builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status%2Fwebpack.webpack?branchName=main
|
723
|
+
[builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3&branchName=main
|
724
|
+
[dependency-review-url]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml
|
725
|
+
[dependency-review]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml/badge.svg
|
726
|
+
[cover]: https://codecov.io/gh/webpack/webpack/branch/master/graph/badge.svg?token=mDP3mQJNnn
|
727
|
+
[cover-url]: https://codecov.io/gh/webpack/webpack
|
package/bin/webpack.js
CHANGED
@@ -53,6 +53,19 @@ const isInstalled = packageName => {
|
|
53
53
|
}
|
54
54
|
} while (dir !== (dir = path.dirname(dir)));
|
55
55
|
|
56
|
+
// https://github.com/nodejs/node/blob/v18.9.1/lib/internal/modules/cjs/loader.js#L1274
|
57
|
+
// eslint-disable-next-line no-warning-comments
|
58
|
+
// @ts-ignore
|
59
|
+
for (const internalPath of require("module").globalPaths) {
|
60
|
+
try {
|
61
|
+
if (fs.statSync(path.join(internalPath, packageName)).isDirectory()) {
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
} catch (_error) {
|
65
|
+
// Nothing
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
56
69
|
return false;
|
57
70
|
};
|
58
71
|
|
@@ -63,14 +76,22 @@ const isInstalled = packageName => {
|
|
63
76
|
const runCli = cli => {
|
64
77
|
const path = require("path");
|
65
78
|
const pkgPath = require.resolve(`${cli.package}/package.json`);
|
66
|
-
// eslint-disable-next-line node/no-missing-require
|
67
79
|
const pkg = require(pkgPath);
|
68
|
-
|
69
|
-
|
80
|
+
|
81
|
+
if (pkg.type === "module" || /\.mjs/i.test(pkg.bin[cli.binName])) {
|
82
|
+
import(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])).catch(
|
83
|
+
err => {
|
84
|
+
console.error(err);
|
85
|
+
process.exitCode = 1;
|
86
|
+
}
|
87
|
+
);
|
88
|
+
} else {
|
89
|
+
require(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName]));
|
90
|
+
}
|
70
91
|
};
|
71
92
|
|
72
93
|
/**
|
73
|
-
* @typedef {
|
94
|
+
* @typedef {object} CliOption
|
74
95
|
* @property {string} name display name
|
75
96
|
* @property {string} package npm package name
|
76
97
|
* @property {string} binName name of the executable file
|
@@ -92,11 +113,11 @@ if (!cli.installed) {
|
|
92
113
|
const fs = require("graceful-fs");
|
93
114
|
const readLine = require("readline");
|
94
115
|
|
95
|
-
const notify =
|
96
|
-
"CLI for webpack must be installed.\n" + ` ${cli.name} (${cli.url})\n`;
|
116
|
+
const notify = `CLI for webpack must be installed.\n ${cli.name} (${cli.url})\n`;
|
97
117
|
|
98
118
|
console.error(notify);
|
99
119
|
|
120
|
+
/** @type {string | undefined} */
|
100
121
|
let packageManager;
|
101
122
|
|
102
123
|
if (fs.existsSync(path.resolve(process.cwd(), "yarn.lock"))) {
|
@@ -115,7 +136,7 @@ if (!cli.installed) {
|
|
115
136
|
)} ${cli.package}".`
|
116
137
|
);
|
117
138
|
|
118
|
-
const question =
|
139
|
+
const question = "Do you want to install 'webpack-cli' (yes/no): ";
|
119
140
|
|
120
141
|
const questionInterface = readLine.createInterface({
|
121
142
|
input: process.stdin,
|
@@ -149,12 +170,15 @@ if (!cli.installed) {
|
|
149
170
|
}')...`
|
150
171
|
);
|
151
172
|
|
152
|
-
runCommand(
|
173
|
+
runCommand(
|
174
|
+
/** @type {string} */ (packageManager),
|
175
|
+
installOptions.concat(cli.package)
|
176
|
+
)
|
153
177
|
.then(() => {
|
154
178
|
runCli(cli);
|
155
179
|
})
|
156
|
-
.catch(
|
157
|
-
console.error(
|
180
|
+
.catch(err => {
|
181
|
+
console.error(err);
|
158
182
|
process.exitCode = 1;
|
159
183
|
});
|
160
184
|
});
|
package/hot/dev-server.js
CHANGED
@@ -4,9 +4,10 @@
|
|
4
4
|
*/
|
5
5
|
/* globals __webpack_hash__ */
|
6
6
|
if (module.hot) {
|
7
|
+
/** @type {undefined|string} */
|
7
8
|
var lastHash;
|
8
9
|
var upToDate = function upToDate() {
|
9
|
-
return lastHash.indexOf(__webpack_hash__) >= 0;
|
10
|
+
return /** @type {string} */ (lastHash).indexOf(__webpack_hash__) >= 0;
|
10
11
|
};
|
11
12
|
var log = require("./log");
|
12
13
|
var check = function check() {
|
@@ -14,12 +15,20 @@ if (module.hot) {
|
|
14
15
|
.check(true)
|
15
16
|
.then(function (updatedModules) {
|
16
17
|
if (!updatedModules) {
|
17
|
-
log(
|
18
|
+
log(
|
19
|
+
"warning",
|
20
|
+
"[HMR] Cannot find update. " +
|
21
|
+
(typeof window !== "undefined"
|
22
|
+
? "Need to do a full reload!"
|
23
|
+
: "Please reload manually!")
|
24
|
+
);
|
18
25
|
log(
|
19
26
|
"warning",
|
20
27
|
"[HMR] (Probably because of restarting the webpack-dev-server)"
|
21
28
|
);
|
22
|
-
window
|
29
|
+
if (typeof window !== "undefined") {
|
30
|
+
window.location.reload();
|
31
|
+
}
|
23
32
|
return;
|
24
33
|
}
|
25
34
|
|
@@ -38,10 +47,15 @@ if (module.hot) {
|
|
38
47
|
if (["abort", "fail"].indexOf(status) >= 0) {
|
39
48
|
log(
|
40
49
|
"warning",
|
41
|
-
"[HMR] Cannot apply update.
|
50
|
+
"[HMR] Cannot apply update. " +
|
51
|
+
(typeof window !== "undefined"
|
52
|
+
? "Need to do a full reload!"
|
53
|
+
: "Please reload manually!")
|
42
54
|
);
|
43
55
|
log("warning", "[HMR] " + log.formatError(err));
|
44
|
-
window
|
56
|
+
if (typeof window !== "undefined") {
|
57
|
+
window.location.reload();
|
58
|
+
}
|
45
59
|
} else {
|
46
60
|
log("warning", "[HMR] Update failed: " + log.formatError(err));
|
47
61
|
}
|
@@ -3,13 +3,21 @@
|
|
3
3
|
"use strict";
|
4
4
|
|
5
5
|
var urlBase = decodeURIComponent(__resourceQuery.slice(1));
|
6
|
+
|
7
|
+
/**
|
8
|
+
* @param {{ data: string, onError: (err: Error) => void, active: boolean, module: module }} options options
|
9
|
+
* @returns {() => void} function to destroy response
|
10
|
+
*/
|
6
11
|
exports.keepAlive = function (options) {
|
7
12
|
var data = options.data;
|
8
13
|
var onError = options.onError;
|
9
14
|
var active = options.active;
|
10
15
|
var module = options.module;
|
16
|
+
/** @type {import("http").IncomingMessage} */
|
11
17
|
var response;
|
12
|
-
var request =
|
18
|
+
var request = (
|
19
|
+
urlBase.startsWith("https") ? require("https") : require("http")
|
20
|
+
).request(
|
13
21
|
urlBase + data,
|
14
22
|
{
|
15
23
|
agent: false,
|
@@ -25,6 +33,10 @@ exports.keepAlive = function (options) {
|
|
25
33
|
}
|
26
34
|
}
|
27
35
|
);
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @param {Error} err error
|
39
|
+
*/
|
28
40
|
function errorHandler(err) {
|
29
41
|
err.message =
|
30
42
|
"Problem communicating active modules to the server: " + err.message;
|
@@ -9,6 +9,7 @@ if (typeof EventSource !== "function") {
|
|
9
9
|
}
|
10
10
|
|
11
11
|
var urlBase = decodeURIComponent(__resourceQuery.slice(1));
|
12
|
+
/** @type {EventSource | undefined} */
|
12
13
|
var activeEventSource;
|
13
14
|
var activeKeys = new Map();
|
14
15
|
var errorHandlers = new Set();
|
@@ -19,6 +20,10 @@ var updateEventSource = function updateEventSource() {
|
|
19
20
|
activeEventSource = new EventSource(
|
20
21
|
urlBase + Array.from(activeKeys.keys()).join("@")
|
21
22
|
);
|
23
|
+
/**
|
24
|
+
* @this {EventSource}
|
25
|
+
* @param {Event & { message?: string, filename?: string, lineno?: number, colno?: number, error?: Error }} event event
|
26
|
+
*/
|
22
27
|
activeEventSource.onerror = function (event) {
|
23
28
|
errorHandlers.forEach(function (onError) {
|
24
29
|
onError(
|
@@ -42,6 +47,10 @@ var updateEventSource = function updateEventSource() {
|
|
42
47
|
}
|
43
48
|
};
|
44
49
|
|
50
|
+
/**
|
51
|
+
* @param {{ data: string, onError: (err: Error) => void, active: boolean, module: module }} options options
|
52
|
+
* @returns {() => void} function to destroy response
|
53
|
+
*/
|
45
54
|
exports.keepAlive = function (options) {
|
46
55
|
var data = options.data;
|
47
56
|
var onError = options.onError;
|
package/hot/log-apply-result.js
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
3
|
Author Tobias Koppers @sokra
|
4
4
|
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @param {(string | number)[]} updatedModules updated modules
|
8
|
+
* @param {(string | number)[] | null} renewedModules renewed modules
|
9
|
+
*/
|
5
10
|
module.exports = function (updatedModules, renewedModules) {
|
6
11
|
var unacceptedModules = updatedModules.filter(function (moduleId) {
|
7
12
|
return renewedModules && renewedModules.indexOf(moduleId) < 0;
|
package/hot/log.js
CHANGED
@@ -1,7 +1,14 @@
|
|
1
|
+
/** @typedef {"info" | "warning" | "error"} LogLevel */
|
2
|
+
|
3
|
+
/** @type {LogLevel} */
|
1
4
|
var logLevel = "info";
|
2
5
|
|
3
6
|
function dummy() {}
|
4
7
|
|
8
|
+
/**
|
9
|
+
* @param {LogLevel} level log level
|
10
|
+
* @returns {boolean} true, if should log
|
11
|
+
*/
|
5
12
|
function shouldLog(level) {
|
6
13
|
var shouldLog =
|
7
14
|
(logLevel === "info" && level === "info") ||
|
@@ -10,6 +17,10 @@ function shouldLog(level) {
|
|
10
17
|
return shouldLog;
|
11
18
|
}
|
12
19
|
|
20
|
+
/**
|
21
|
+
* @param {(msg?: string) => void} logFn log function
|
22
|
+
* @returns {(level: LogLevel, msg?: string) => void} function that logs when log level is sufficient
|
23
|
+
*/
|
13
24
|
function logGroup(logFn) {
|
14
25
|
return function (level, msg) {
|
15
26
|
if (shouldLog(level)) {
|
@@ -18,6 +29,10 @@ function logGroup(logFn) {
|
|
18
29
|
};
|
19
30
|
}
|
20
31
|
|
32
|
+
/**
|
33
|
+
* @param {LogLevel} level log level
|
34
|
+
* @param {string|Error} msg message
|
35
|
+
*/
|
21
36
|
module.exports = function (level, msg) {
|
22
37
|
if (shouldLog(level)) {
|
23
38
|
if (level === "info") {
|
@@ -30,11 +45,9 @@ module.exports = function (level, msg) {
|
|
30
45
|
}
|
31
46
|
};
|
32
47
|
|
33
|
-
/* eslint-disable node/no-unsupported-features/node-builtins */
|
34
48
|
var group = console.group || dummy;
|
35
49
|
var groupCollapsed = console.groupCollapsed || dummy;
|
36
50
|
var groupEnd = console.groupEnd || dummy;
|
37
|
-
/* eslint-enable node/no-unsupported-features/node-builtins */
|
38
51
|
|
39
52
|
module.exports.group = logGroup(group);
|
40
53
|
|
@@ -42,10 +55,17 @@ module.exports.groupCollapsed = logGroup(groupCollapsed);
|
|
42
55
|
|
43
56
|
module.exports.groupEnd = logGroup(groupEnd);
|
44
57
|
|
58
|
+
/**
|
59
|
+
* @param {LogLevel} level log level
|
60
|
+
*/
|
45
61
|
module.exports.setLogLevel = function (level) {
|
46
62
|
logLevel = level;
|
47
63
|
};
|
48
64
|
|
65
|
+
/**
|
66
|
+
* @param {Error} err error
|
67
|
+
* @returns {string} formatted error
|
68
|
+
*/
|
49
69
|
module.exports.formatError = function (err) {
|
50
70
|
var message = err.message;
|
51
71
|
var stack = err.stack;
|
@@ -53,7 +73,6 @@ module.exports.formatError = function (err) {
|
|
53
73
|
return message;
|
54
74
|
} else if (stack.indexOf(message) < 0) {
|
55
75
|
return message + "\n" + stack;
|
56
|
-
} else {
|
57
|
-
return stack;
|
58
76
|
}
|
77
|
+
return stack;
|
59
78
|
};
|
package/hot/only-dev-server.js
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
3
|
Author Tobias Koppers @sokra
|
4
4
|
*/
|
5
|
-
/*globals __webpack_hash__ */
|
5
|
+
/* globals __webpack_hash__ */
|
6
6
|
if (module.hot) {
|
7
|
+
/** @type {undefined|string} */
|
7
8
|
var lastHash;
|
8
9
|
var upToDate = function upToDate() {
|
9
|
-
return lastHash.indexOf(__webpack_hash__) >= 0;
|
10
|
+
return /** @type {string} */ (lastHash).indexOf(__webpack_hash__) >= 0;
|
10
11
|
};
|
11
12
|
var log = require("./log");
|
12
13
|
var check = function check() {
|
package/hot/poll.js
CHANGED
@@ -2,11 +2,14 @@
|
|
2
2
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
3
|
Author Tobias Koppers @sokra
|
4
4
|
*/
|
5
|
-
/*globals __resourceQuery */
|
5
|
+
/* globals __resourceQuery */
|
6
6
|
if (module.hot) {
|
7
|
-
var hotPollInterval = +__resourceQuery.
|
7
|
+
var hotPollInterval = +__resourceQuery.slice(1) || 10 * 60 * 1000;
|
8
8
|
var log = require("./log");
|
9
9
|
|
10
|
+
/**
|
11
|
+
* @param {boolean=} fromUpdate true when called from update
|
12
|
+
*/
|
10
13
|
var checkForUpdate = function checkForUpdate(fromUpdate) {
|
11
14
|
if (module.hot.status() === "idle") {
|
12
15
|
module.hot
|
package/hot/signal.js
CHANGED
@@ -2,9 +2,13 @@
|
|
2
2
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
3
|
Author Tobias Koppers @sokra
|
4
4
|
*/
|
5
|
-
/*globals __resourceQuery */
|
5
|
+
/* globals __resourceQuery */
|
6
6
|
if (module.hot) {
|
7
7
|
var log = require("./log");
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @param {boolean=} fromUpdate true when called from update
|
11
|
+
*/
|
8
12
|
var checkForUpdate = function checkForUpdate(fromUpdate) {
|
9
13
|
module.hot
|
10
14
|
.check()
|
@@ -45,7 +49,7 @@ if (module.hot) {
|
|
45
49
|
});
|
46
50
|
};
|
47
51
|
|
48
|
-
process.on(__resourceQuery.
|
52
|
+
process.on(__resourceQuery.slice(1) || "SIGUSR2", function () {
|
49
53
|
if (module.hot.status() !== "idle") {
|
50
54
|
log(
|
51
55
|
"warning",
|