webpack 5.100.1 → 5.101.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.
Files changed (304) hide show
  1. package/README.md +12 -10
  2. package/bin/webpack.js +7 -7
  3. package/lib/APIPlugin.js +12 -14
  4. package/lib/AutomaticPrefetchPlugin.js +2 -2
  5. package/lib/BannerPlugin.js +4 -4
  6. package/lib/Cache.js +1 -1
  7. package/lib/CacheFacade.js +7 -7
  8. package/lib/CaseSensitiveModulesWarning.js +2 -2
  9. package/lib/Chunk.js +3 -3
  10. package/lib/ChunkGraph.js +21 -18
  11. package/lib/ChunkGroup.js +4 -4
  12. package/lib/CleanPlugin.js +19 -53
  13. package/lib/CodeGenerationResults.js +3 -3
  14. package/lib/CompatibilityPlugin.js +6 -6
  15. package/lib/Compilation.js +127 -114
  16. package/lib/Compiler.js +37 -37
  17. package/lib/ConcatenationScope.js +39 -1
  18. package/lib/ConstPlugin.js +11 -11
  19. package/lib/ContextExclusionPlugin.js +3 -3
  20. package/lib/ContextModule.js +12 -11
  21. package/lib/ContextModuleFactory.js +11 -11
  22. package/lib/ContextReplacementPlugin.js +5 -5
  23. package/lib/DefinePlugin.js +24 -22
  24. package/lib/DelegatedModuleFactoryPlugin.js +1 -1
  25. package/lib/DllEntryPlugin.js +1 -1
  26. package/lib/DllReferencePlugin.js +1 -1
  27. package/lib/DynamicEntryPlugin.js +3 -3
  28. package/lib/EntryPlugin.js +1 -1
  29. package/lib/EnvironmentPlugin.js +1 -1
  30. package/lib/ErrorHelpers.js +2 -2
  31. package/lib/EvalDevToolModulePlugin.js +2 -2
  32. package/lib/EvalSourceMapDevToolPlugin.js +5 -5
  33. package/lib/ExportsInfo.js +9 -9
  34. package/lib/ExportsInfoApiPlugin.js +2 -2
  35. package/lib/ExternalModule.js +163 -48
  36. package/lib/ExternalModuleFactoryPlugin.js +2 -2
  37. package/lib/ExternalsPlugin.js +45 -0
  38. package/lib/FileSystemInfo.js +64 -61
  39. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  40. package/lib/FlagDependencyExportsPlugin.js +7 -7
  41. package/lib/FlagDependencyUsagePlugin.js +4 -4
  42. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  43. package/lib/HotModuleReplacementPlugin.js +27 -27
  44. package/lib/IgnorePlugin.js +3 -3
  45. package/lib/IgnoreWarningsPlugin.js +4 -4
  46. package/lib/InitFragment.js +6 -0
  47. package/lib/InvalidDependenciesModuleWarning.js +1 -1
  48. package/lib/JavascriptMetaInfoPlugin.js +1 -1
  49. package/lib/LibManifestPlugin.js +2 -2
  50. package/lib/LoaderOptionsPlugin.js +1 -1
  51. package/lib/LoaderTargetPlugin.js +2 -2
  52. package/lib/MainTemplate.js +1 -1
  53. package/lib/Module.js +1 -1
  54. package/lib/ModuleFilenameHelpers.js +3 -3
  55. package/lib/ModuleGraph.js +86 -5
  56. package/lib/ModuleInfoHeaderPlugin.js +3 -3
  57. package/lib/ModuleParseError.js +5 -3
  58. package/lib/MultiCompiler.js +29 -24
  59. package/lib/MultiStats.js +18 -13
  60. package/lib/MultiWatching.js +1 -1
  61. package/lib/NoEmitOnErrorsPlugin.js +2 -2
  62. package/lib/NodeStuffPlugin.js +27 -15
  63. package/lib/NormalModule.js +28 -24
  64. package/lib/NormalModuleFactory.js +23 -21
  65. package/lib/NormalModuleReplacementPlugin.js +3 -3
  66. package/lib/PrefetchPlugin.js +1 -1
  67. package/lib/ProgressPlugin.js +11 -11
  68. package/lib/ProvidePlugin.js +2 -2
  69. package/lib/RecordIdsPlugin.js +3 -3
  70. package/lib/ResolverFactory.js +3 -3
  71. package/lib/RuntimeGlobals.js +20 -0
  72. package/lib/RuntimePlugin.js +16 -16
  73. package/lib/RuntimeTemplate.js +42 -44
  74. package/lib/SizeFormatHelpers.js +1 -1
  75. package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -4
  76. package/lib/SourceMapDevToolPlugin.js +9 -9
  77. package/lib/Stats.js +2 -2
  78. package/lib/Template.js +1 -1
  79. package/lib/TemplatedPathPlugin.js +2 -2
  80. package/lib/UseStrictPlugin.js +1 -1
  81. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
  82. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  83. package/lib/WarnNoModeSetPlugin.js +1 -1
  84. package/lib/WatchIgnorePlugin.js +2 -2
  85. package/lib/Watching.js +12 -12
  86. package/lib/WebpackIsIncludedPlugin.js +2 -2
  87. package/lib/WebpackOptionsApply.js +10 -3
  88. package/lib/asset/AssetGenerator.js +3 -3
  89. package/lib/asset/AssetModulesPlugin.js +6 -6
  90. package/lib/async-modules/AsyncModuleHelpers.js +50 -0
  91. package/lib/async-modules/AwaitDependenciesInitFragment.js +36 -24
  92. package/lib/async-modules/InferAsyncModulesPlugin.js +3 -3
  93. package/lib/buildChunkGraph.js +5 -5
  94. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  95. package/lib/cache/IdleFileCachePlugin.js +5 -5
  96. package/lib/cache/PackFileCacheStrategy.js +20 -20
  97. package/lib/cache/ResolverCachePlugin.js +4 -4
  98. package/lib/cli.js +196 -14
  99. package/lib/config/browserslistTargetHandler.js +6 -6
  100. package/lib/config/defaults.js +23 -14
  101. package/lib/config/normalization.js +41 -38
  102. package/lib/config/target.js +4 -4
  103. package/lib/container/ContainerEntryModule.js +3 -3
  104. package/lib/container/ContainerPlugin.js +3 -3
  105. package/lib/container/ContainerReferencePlugin.js +3 -3
  106. package/lib/container/FallbackModule.js +1 -1
  107. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  108. package/lib/container/options.js +4 -4
  109. package/lib/css/CssGenerator.js +5 -3
  110. package/lib/css/CssLoadingRuntimeModule.js +1 -1
  111. package/lib/css/CssModulesPlugin.js +25 -22
  112. package/lib/css/CssParser.js +5 -5
  113. package/lib/css/walkCssTokens.js +9 -9
  114. package/lib/debug/ProfilingPlugin.js +5 -5
  115. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +4 -4
  116. package/lib/dependencies/AMDPlugin.js +3 -3
  117. package/lib/dependencies/AMDRequireArrayDependency.js +1 -1
  118. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +3 -3
  119. package/lib/dependencies/CommonJsExportRequireDependency.js +2 -2
  120. package/lib/dependencies/CommonJsExportsParserPlugin.js +12 -10
  121. package/lib/dependencies/CommonJsImportsParserPlugin.js +21 -19
  122. package/lib/dependencies/CommonJsPlugin.js +2 -2
  123. package/lib/dependencies/ContextDependency.js +1 -1
  124. package/lib/dependencies/ContextDependencyHelpers.js +3 -3
  125. package/lib/dependencies/CssIcssExportDependency.js +2 -2
  126. package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
  127. package/lib/dependencies/CssUrlDependency.js +4 -4
  128. package/lib/dependencies/DynamicExports.js +5 -5
  129. package/lib/dependencies/HarmonyAcceptDependency.js +39 -5
  130. package/lib/dependencies/HarmonyDetectionParserPlugin.js +2 -2
  131. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +17 -23
  132. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +7 -8
  133. package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
  134. package/lib/dependencies/HarmonyExports.js +1 -1
  135. package/lib/dependencies/HarmonyImportDependency.js +28 -9
  136. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +59 -75
  137. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -5
  138. package/lib/dependencies/HarmonyImportSpecifierDependency.js +3 -4
  139. package/lib/dependencies/HarmonyModulesPlugin.js +2 -8
  140. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -1
  141. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -4
  142. package/lib/dependencies/ImportMetaPlugin.js +7 -7
  143. package/lib/dependencies/ImportParserPlugin.js +4 -4
  144. package/lib/dependencies/JsonExportsDependency.js +1 -1
  145. package/lib/dependencies/LoaderPlugin.js +4 -4
  146. package/lib/dependencies/ProvidedDependency.js +2 -2
  147. package/lib/dependencies/PureExpressionDependency.js +1 -1
  148. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  149. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -1
  150. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -3
  151. package/lib/dependencies/SystemPlugin.js +3 -3
  152. package/lib/dependencies/WorkerPlugin.js +5 -5
  153. package/lib/dependencies/getFunctionExpression.js +1 -1
  154. package/lib/esm/ModuleChunkFormatPlugin.js +5 -5
  155. package/lib/esm/ModuleChunkLoadingPlugin.js +2 -2
  156. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +15 -11
  157. package/lib/formatLocation.js +2 -2
  158. package/lib/hmr/HotModuleReplacement.runtime.js +39 -27
  159. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -32
  160. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -1
  161. package/lib/hmr/LazyCompilationPlugin.js +6 -6
  162. package/lib/hmr/lazyCompilationBackend.js +6 -6
  163. package/lib/ids/ChunkModuleIdRangePlugin.js +4 -4
  164. package/lib/ids/DeterministicChunkIdsPlugin.js +5 -4
  165. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  166. package/lib/ids/HashedModuleIdsPlugin.js +1 -1
  167. package/lib/ids/IdHelpers.js +9 -9
  168. package/lib/ids/NamedChunkIdsPlugin.js +5 -5
  169. package/lib/ids/NamedModuleIdsPlugin.js +2 -2
  170. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  171. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  172. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -2
  173. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -4
  174. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  175. package/lib/index.js +10 -6
  176. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  177. package/lib/javascript/BasicEvaluatedExpression.js +3 -3
  178. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  179. package/lib/javascript/EnableChunkLoadingPlugin.js +1 -1
  180. package/lib/javascript/JavascriptGenerator.js +1 -1
  181. package/lib/javascript/JavascriptModulesPlugin.js +16 -16
  182. package/lib/javascript/JavascriptParser.js +90 -83
  183. package/lib/javascript/JavascriptParserHelpers.js +3 -3
  184. package/lib/javascript/StartupHelpers.js +2 -2
  185. package/lib/json/JsonGenerator.js +2 -2
  186. package/lib/json/JsonModulesPlugin.js +2 -2
  187. package/lib/library/AbstractLibraryPlugin.js +3 -3
  188. package/lib/library/AmdLibraryPlugin.js +3 -3
  189. package/lib/library/AssignLibraryPlugin.js +2 -2
  190. package/lib/library/EnableLibraryPlugin.js +2 -2
  191. package/lib/library/ModuleLibraryPlugin.js +7 -2
  192. package/lib/library/SystemLibraryPlugin.js +6 -4
  193. package/lib/library/UmdLibraryPlugin.js +14 -14
  194. package/lib/logging/createConsoleLogger.js +4 -4
  195. package/lib/logging/runtime.js +3 -3
  196. package/lib/logging/truncateArgs.js +4 -4
  197. package/lib/node/CommonJsChunkLoadingPlugin.js +2 -2
  198. package/lib/node/NodeEnvironmentPlugin.js +1 -1
  199. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +16 -14
  200. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +7 -7
  201. package/lib/node/ReadFileCompileWasmPlugin.js +7 -7
  202. package/lib/node/RequireChunkLoadingRuntimeModule.js +6 -4
  203. package/lib/node/nodeConsole.js +2 -2
  204. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  205. package/lib/optimize/AggressiveSplittingPlugin.js +10 -10
  206. package/lib/optimize/ConcatenatedModule.js +161 -52
  207. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -2
  208. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  209. package/lib/optimize/InnerGraph.js +5 -5
  210. package/lib/optimize/InnerGraphPlugin.js +14 -12
  211. package/lib/optimize/LimitChunkCountPlugin.js +5 -5
  212. package/lib/optimize/MangleExportsPlugin.js +5 -5
  213. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -2
  214. package/lib/optimize/MinChunkSizePlugin.js +3 -3
  215. package/lib/optimize/ModuleConcatenationPlugin.js +45 -38
  216. package/lib/optimize/RealContentHashPlugin.js +23 -23
  217. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  218. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  219. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  220. package/lib/optimize/SideEffectsFlagPlugin.js +22 -6
  221. package/lib/optimize/SplitChunksPlugin.js +20 -20
  222. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  223. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  224. package/lib/performance/SizeLimitsPlugin.js +4 -4
  225. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  226. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -3
  227. package/lib/rules/BasicMatcherRulePlugin.js +1 -1
  228. package/lib/rules/RuleSetCompiler.js +10 -10
  229. package/lib/rules/UseEffectRulePlugin.js +2 -2
  230. package/lib/runtime/GetChunkFilenameRuntimeModule.js +15 -15
  231. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  232. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  233. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +1 -1
  234. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  235. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  236. package/lib/schemes/DataUriPlugin.js +3 -3
  237. package/lib/schemes/FileUriPlugin.js +1 -1
  238. package/lib/schemes/HttpUriPlugin.js +40 -36
  239. package/lib/schemes/VirtualUrlPlugin.js +1 -1
  240. package/lib/serialization/BinaryMiddleware.js +11 -11
  241. package/lib/serialization/FileMiddleware.js +17 -17
  242. package/lib/serialization/ObjectMiddleware.js +8 -8
  243. package/lib/serialization/Serializer.js +2 -2
  244. package/lib/serialization/SerializerMiddleware.js +2 -2
  245. package/lib/sharing/ConsumeSharedPlugin.js +4 -4
  246. package/lib/sharing/ProvideSharedPlugin.js +4 -4
  247. package/lib/sharing/SharePlugin.js +1 -1
  248. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  249. package/lib/stats/DefaultStatsFactoryPlugin.js +86 -80
  250. package/lib/stats/DefaultStatsPresetPlugin.js +15 -15
  251. package/lib/stats/DefaultStatsPrinterPlugin.js +87 -87
  252. package/lib/stats/StatsFactory.js +7 -7
  253. package/lib/stats/StatsPrinter.js +9 -9
  254. package/lib/url/URLParserPlugin.js +5 -5
  255. package/lib/util/AsyncQueue.js +4 -4
  256. package/lib/util/IterableHelpers.js +2 -2
  257. package/lib/util/LazyBucketSortedSet.js +3 -3
  258. package/lib/util/SetHelpers.js +2 -2
  259. package/lib/util/StackedCacheMap.js +1 -1
  260. package/lib/util/StackedMap.js +1 -1
  261. package/lib/util/TupleSet.js +1 -1
  262. package/lib/util/WeakTupleMap.js +1 -1
  263. package/lib/util/cleverMerge.js +8 -8
  264. package/lib/util/comparators.js +107 -8
  265. package/lib/util/compileBooleanMatcher.js +20 -20
  266. package/lib/util/concatenate.js +3 -3
  267. package/lib/util/conventions.js +4 -4
  268. package/lib/util/create-schema-validation.js +1 -1
  269. package/lib/util/createHash.js +1 -1
  270. package/lib/util/deprecation.js +4 -4
  271. package/lib/util/deterministicGrouping.js +7 -7
  272. package/lib/util/findGraphRoots.js +1 -1
  273. package/lib/util/fs.js +3 -3
  274. package/lib/util/identifier.js +14 -14
  275. package/lib/util/magicComment.js +5 -1
  276. package/lib/util/memoize.js +1 -1
  277. package/lib/util/processAsyncTree.js +2 -2
  278. package/lib/util/propertyName.js +1 -1
  279. package/lib/util/removeBOM.js +1 -1
  280. package/lib/util/runtime.js +6 -6
  281. package/lib/util/semver.js +16 -16
  282. package/lib/util/serialization.js +5 -5
  283. package/lib/util/smartGrouping.js +1 -1
  284. package/lib/validateSchema.js +2 -2
  285. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  286. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -1
  287. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +1 -1
  288. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +4 -4
  289. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +13 -9
  290. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  291. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -14
  292. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -2
  293. package/lib/wasm-sync/WebAssemblyParser.js +2 -2
  294. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  295. package/lib/web/FetchCompileWasmPlugin.js +4 -4
  296. package/lib/web/JsonpChunkLoadingPlugin.js +2 -2
  297. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -1
  298. package/lib/webpack.js +17 -12
  299. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +2 -2
  300. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  301. package/package.json +13 -13
  302. package/schemas/WebpackOptions.check.js +1 -1
  303. package/schemas/WebpackOptions.json +4 -0
  304. package/types.d.ts +186 -54
@@ -382,7 +382,7 @@ class LazyCompilationPlugin {
382
382
  callback();
383
383
  });
384
384
  if (promise && promise.then) {
385
- promise.then(b => {
385
+ promise.then((b) => {
386
386
  backend = b;
387
387
  callback();
388
388
  }, callback);
@@ -395,7 +395,7 @@ class LazyCompilationPlugin {
395
395
  PLUGIN_NAME,
396
396
  (module, createData, resolveData) => {
397
397
  if (
398
- resolveData.dependencies.every(dep =>
398
+ resolveData.dependencies.every((dep) =>
399
399
  HMR_DEPENDENCY_TYPES.has(dep.type)
400
400
  )
401
401
  ) {
@@ -406,9 +406,9 @@ class LazyCompilationPlugin {
406
406
  /** @type {Module} */
407
407
  (compilation.moduleGraph.getParentModule(hmrDep));
408
408
  const isReferringToDynamicImport = originModule.blocks.some(
409
- block =>
409
+ (block) =>
410
410
  block.dependencies.some(
411
- dep =>
411
+ (dep) =>
412
412
  dep.type === "import()" &&
413
413
  /** @type {HarmonyImportDependency} */ (dep).request ===
414
414
  hmrDep.request
@@ -417,7 +417,7 @@ class LazyCompilationPlugin {
417
417
  if (!isReferringToDynamicImport) return module;
418
418
  } else if (
419
419
  !resolveData.dependencies.every(
420
- dep =>
420
+ (dep) =>
421
421
  HMR_DEPENDENCY_TYPES.has(dep.type) ||
422
422
  (this.imports &&
423
423
  (dep.type === "import()" ||
@@ -455,7 +455,7 @@ class LazyCompilationPlugin {
455
455
  );
456
456
  }
457
457
  );
458
- compiler.hooks.shutdown.tapAsync(PLUGIN_NAME, callback => {
458
+ compiler.hooks.shutdown.tapAsync(PLUGIN_NAME, (callback) => {
459
459
  backend.dispose(callback);
460
460
  });
461
461
  }
@@ -22,7 +22,7 @@
22
22
  * @param {Omit<LazyCompilationDefaultBackendOptions, "client"> & { client: NonNullable<LazyCompilationDefaultBackendOptions["client"]>}} options additional options for the backend
23
23
  * @returns {BackendHandler} backend
24
24
  */
25
- module.exports = options => (compiler, callback) => {
25
+ module.exports = (options) => (compiler, callback) => {
26
26
  const logger = compiler.getInfrastructureLogger("LazyCompilationBackend");
27
27
  const activeModules = new Map();
28
28
  const prefix = "/lazy-compilation-using-";
@@ -47,7 +47,7 @@ module.exports = options => (compiler, callback) => {
47
47
  const listen =
48
48
  typeof options.listen === "function"
49
49
  ? options.listen
50
- : server => {
50
+ : (server) => {
51
51
  let listen = options.listen;
52
52
  if (typeof listen === "object" && !("port" in listen)) {
53
53
  listen = { ...listen, port: undefined };
@@ -100,14 +100,14 @@ module.exports = options => (compiler, callback) => {
100
100
  let isClosing = false;
101
101
  /** @type {Set<import("net").Socket>} */
102
102
  const sockets = new Set();
103
- server.on("connection", socket => {
103
+ server.on("connection", (socket) => {
104
104
  sockets.add(socket);
105
105
  socket.on("close", () => {
106
106
  sockets.delete(socket);
107
107
  });
108
108
  if (isClosing) socket.destroy();
109
109
  });
110
- server.on("clientError", e => {
110
+ server.on("clientError", (e) => {
111
111
  if (e.message !== "Server is disposing") logger.warn(e);
112
112
  });
113
113
 
@@ -117,7 +117,7 @@ module.exports = options => (compiler, callback) => {
117
117
  * @param {Error} err error
118
118
  * @returns {void}
119
119
  */
120
- err => {
120
+ (err) => {
121
121
  if (err) return callback(err);
122
122
  const _addr = server.address();
123
123
  if (typeof _addr === "string") {
@@ -138,7 +138,7 @@ module.exports = options => (compiler, callback) => {
138
138
  isClosing = true;
139
139
  // Removing the listener is a workaround for a memory leak in node.js
140
140
  server.off("request", requestListener);
141
- server.close(err => {
141
+ server.close((err) => {
142
142
  callback(err);
143
143
  });
144
144
  for (const socket of sockets) {
@@ -39,13 +39,13 @@ class ChunkModuleIdRangePlugin {
39
39
  */
40
40
  apply(compiler) {
41
41
  const options = this.options;
42
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
42
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
43
43
  const moduleGraph = compilation.moduleGraph;
44
- compilation.hooks.moduleIds.tap(PLUGIN_NAME, modules => {
44
+ compilation.hooks.moduleIds.tap(PLUGIN_NAME, (modules) => {
45
45
  const chunkGraph = compilation.chunkGraph;
46
46
  const chunk = find(
47
47
  compilation.chunks,
48
- chunk => chunk.name === options.name
48
+ (chunk) => chunk.name === options.name
49
49
  );
50
50
  if (!chunk) {
51
51
  throw new Error(
@@ -72,7 +72,7 @@ class ChunkModuleIdRangePlugin {
72
72
  chunkModules = chunkGraph.getOrderedChunkModules(chunk, cmpFn);
73
73
  } else {
74
74
  chunkModules = [...modules]
75
- .filter(m => chunkGraph.isModuleInChunk(m, chunk))
75
+ .filter((m) => chunkGraph.isModuleInChunk(m, chunk))
76
76
  .sort(compareModulesByPreOrderIndexOrIdentifier(moduleGraph));
77
77
  }
78
78
 
@@ -37,8 +37,8 @@ class DeterministicChunkIdsPlugin {
37
37
  * @returns {void}
38
38
  */
39
39
  apply(compiler) {
40
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
41
- compilation.hooks.chunkIds.tap(PLUGIN_NAME, chunks => {
40
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
41
+ compilation.hooks.chunkIds.tap(PLUGIN_NAME, (chunks) => {
42
42
  const chunkGraph = compilation.chunkGraph;
43
43
  const context = this.options.context
44
44
  ? this.options.context
@@ -49,8 +49,9 @@ class DeterministicChunkIdsPlugin {
49
49
 
50
50
  const usedIds = getUsedChunkIds(compilation);
51
51
  assignDeterministicIds(
52
- [...chunks].filter(chunk => chunk.id === null),
53
- chunk => getFullChunkName(chunk, chunkGraph, context, compiler.root),
52
+ [...chunks].filter((chunk) => chunk.id === null),
53
+ (chunk) =>
54
+ getFullChunkName(chunk, chunkGraph, context, compiler.root),
54
55
  compareNatural,
55
56
  (chunk, id) => {
56
57
  const size = usedIds.size;
@@ -43,7 +43,7 @@ class DeterministicModuleIdsPlugin {
43
43
  * @returns {void}
44
44
  */
45
45
  apply(compiler) {
46
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
46
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
47
47
  compilation.hooks.moduleIds.tap(PLUGIN_NAME, () => {
48
48
  const chunkGraph = compilation.chunkGraph;
49
49
  const context = this.options.context
@@ -61,7 +61,7 @@ class DeterministicModuleIdsPlugin {
61
61
  );
62
62
  assignDeterministicIds(
63
63
  modules,
64
- module => getFullModuleName(module, context, compiler.root),
64
+ (module) => getFullModuleName(module, context, compiler.root),
65
65
  failOnConflict
66
66
  ? () => 0
67
67
  : compareModulesByPreOrderIndexOrIdentifier(
@@ -54,7 +54,7 @@ class HashedModuleIdsPlugin {
54
54
  */
55
55
  apply(compiler) {
56
56
  const options = this.options;
57
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
57
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
58
58
  compilation.hooks.moduleIds.tap(PLUGIN_NAME, () => {
59
59
  const chunkGraph = compilation.chunkGraph;
60
60
  const context = this.options.context
@@ -33,7 +33,7 @@ const getHash = (str, len, hashFunction) => {
33
33
  * @param {string} str the string
34
34
  * @returns {string} string prefixed by an underscore if it is a number
35
35
  */
36
- const avoidNumber = str => {
36
+ const avoidNumber = (str) => {
37
37
  // max length of a number is 21 chars, bigger numbers a written as "...e+xx"
38
38
  if (str.length > 21) return str;
39
39
  const firstChar = str.charCodeAt(0);
@@ -54,7 +54,7 @@ const avoidNumber = str => {
54
54
  * @param {string} request the request
55
55
  * @returns {string} id representation
56
56
  */
57
- const requestToId = request =>
57
+ const requestToId = (request) =>
58
58
  request.replace(/^(\.\.?\/)+/, "").replace(/(^[.-]|[^a-zA-Z0-9_-])+/g, "_");
59
59
 
60
60
  /**
@@ -136,7 +136,7 @@ const getShortChunkName = (
136
136
  associatedObjectForCache
137
137
  ) => {
138
138
  const modules = chunkGraph.getChunkRootModules(chunk);
139
- const shortModuleNames = modules.map(m =>
139
+ const shortModuleNames = modules.map((m) =>
140
140
  requestToId(getShortModuleName(m, context, associatedObjectForCache))
141
141
  );
142
142
  chunk.idNameHints.sort();
@@ -164,10 +164,10 @@ const getLongChunkName = (
164
164
  associatedObjectForCache
165
165
  ) => {
166
166
  const modules = chunkGraph.getChunkRootModules(chunk);
167
- const shortModuleNames = modules.map(m =>
167
+ const shortModuleNames = modules.map((m) =>
168
168
  requestToId(getShortModuleName(m, context, associatedObjectForCache))
169
169
  );
170
- const longModuleNames = modules.map(m =>
170
+ const longModuleNames = modules.map((m) =>
171
171
  requestToId(
172
172
  getLongModuleName("", m, context, hashFunction, associatedObjectForCache)
173
173
  )
@@ -198,7 +198,7 @@ const getFullChunkName = (
198
198
  ) => {
199
199
  if (chunk.name) return chunk.name;
200
200
  const modules = chunkGraph.getChunkRootModules(chunk);
201
- const fullModuleNames = modules.map(m =>
201
+ const fullModuleNames = modules.map((m) =>
202
202
  makePathsRelative(context, m.identifier(), associatedObjectForCache)
203
203
  );
204
204
  return fullModuleNames.join();
@@ -259,7 +259,7 @@ const getUsedModuleIdsAndModules = (compilation, filter) => {
259
259
  * @param {Compilation} compilation the compilation
260
260
  * @returns {Set<string>} used chunk ids as strings
261
261
  */
262
- const getUsedChunkIds = compilation => {
262
+ const getUsedChunkIds = (compilation) => {
263
263
  /** @type {Set<string>} */
264
264
  const usedIds = new Set();
265
265
  if (compilation.usedChunkIds) {
@@ -413,7 +413,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
413
413
  /**
414
414
  * @param {Module} module the module
415
415
  */
416
- assignId = module => {
416
+ assignId = (module) => {
417
417
  if (chunkGraph.getModuleId(module) === null) {
418
418
  while (usedIds.has(String(nextId))) nextId++;
419
419
  chunkGraph.setModuleId(module, nextId++);
@@ -423,7 +423,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
423
423
  /**
424
424
  * @param {Module} module the module
425
425
  */
426
- assignId = module => {
426
+ assignId = (module) => {
427
427
  if (chunkGraph.getModuleId(module) === null) {
428
428
  chunkGraph.setModuleId(module, nextId++);
429
429
  }
@@ -42,24 +42,24 @@ class NamedChunkIdsPlugin {
42
42
  * @returns {void}
43
43
  */
44
44
  apply(compiler) {
45
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
45
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
46
46
  const hashFunction =
47
47
  /** @type {NonNullable<Output["hashFunction"]>} */
48
48
  (compilation.outputOptions.hashFunction);
49
- compilation.hooks.chunkIds.tap(PLUGIN_NAME, chunks => {
49
+ compilation.hooks.chunkIds.tap(PLUGIN_NAME, (chunks) => {
50
50
  const chunkGraph = compilation.chunkGraph;
51
51
  const context = this.context ? this.context : compiler.context;
52
52
  const delimiter = this.delimiter;
53
53
 
54
54
  const unnamedChunks = assignNames(
55
- [...chunks].filter(chunk => {
55
+ [...chunks].filter((chunk) => {
56
56
  if (chunk.name) {
57
57
  chunk.id = chunk.name;
58
58
  chunk.ids = [chunk.name];
59
59
  }
60
60
  return chunk.id === null;
61
61
  }),
62
- chunk =>
62
+ (chunk) =>
63
63
  getShortChunkName(
64
64
  chunk,
65
65
  chunkGraph,
@@ -68,7 +68,7 @@ class NamedChunkIdsPlugin {
68
68
  hashFunction,
69
69
  compiler.root
70
70
  ),
71
- chunk =>
71
+ (chunk) =>
72
72
  getLongChunkName(
73
73
  chunk,
74
74
  chunkGraph,
@@ -40,7 +40,7 @@ class NamedModuleIdsPlugin {
40
40
  */
41
41
  apply(compiler) {
42
42
  const { root } = compiler;
43
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
43
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
44
44
  const hashFunction =
45
45
  /** @type {NonNullable<Output["hashFunction"]>} */
46
46
  (compilation.outputOptions.hashFunction);
@@ -53,7 +53,7 @@ class NamedModuleIdsPlugin {
53
53
  const [usedIds, modules] = getUsedModuleIdsAndModules(compilation);
54
54
  const unnamedModules = assignNames(
55
55
  modules,
56
- m => getShortModuleName(m, context, root),
56
+ (m) => getShortModuleName(m, context, root),
57
57
  (m, shortName) =>
58
58
  getLongModuleName(shortName, m, context, hashFunction, root),
59
59
  compareModulesByIdentifier,
@@ -21,8 +21,8 @@ class NaturalChunkIdsPlugin {
21
21
  * @returns {void}
22
22
  */
23
23
  apply(compiler) {
24
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
25
- compilation.hooks.chunkIds.tap(PLUGIN_NAME, chunks => {
24
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
25
+ compilation.hooks.chunkIds.tap(PLUGIN_NAME, (chunks) => {
26
26
  const chunkGraph = compilation.chunkGraph;
27
27
  const compareNatural = compareChunksNatural(chunkGraph);
28
28
  /** @type {Chunk[]} */
@@ -25,7 +25,7 @@ class NaturalModuleIdsPlugin {
25
25
  * @returns {void}
26
26
  */
27
27
  apply(compiler) {
28
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
28
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
29
29
  compilation.hooks.moduleIds.tap(PLUGIN_NAME, () => {
30
30
  const [usedIds, modulesInNaturalOrder] =
31
31
  getUsedModuleIdsAndModules(compilation);
@@ -41,8 +41,8 @@ class OccurrenceChunkIdsPlugin {
41
41
  */
42
42
  apply(compiler) {
43
43
  const prioritiseInitial = this.options.prioritiseInitial;
44
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
45
- compilation.hooks.chunkIds.tap(PLUGIN_NAME, chunks => {
44
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
45
+ compilation.hooks.chunkIds.tap(PLUGIN_NAME, (chunks) => {
46
46
  const chunkGraph = compilation.chunkGraph;
47
47
 
48
48
  /** @type {Map<Chunk, number>} */
@@ -46,7 +46,7 @@ class OccurrenceModuleIdsPlugin {
46
46
  */
47
47
  apply(compiler) {
48
48
  const prioritiseInitial = this.options.prioritiseInitial;
49
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
49
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
50
50
  const moduleGraph = compilation.moduleGraph;
51
51
 
52
52
  compilation.hooks.moduleIds.tap(PLUGIN_NAME, () => {
@@ -75,14 +75,14 @@ class OccurrenceModuleIdsPlugin {
75
75
  * @param {Module} module module
76
76
  * @returns {number} count of occurs
77
77
  */
78
- const countOccursInEntry = module => {
78
+ const countOccursInEntry = (module) => {
79
79
  let sum = 0;
80
80
  for (const [
81
81
  originModule,
82
82
  connections
83
83
  ] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
84
84
  if (!originModule) continue;
85
- if (!connections.some(c => c.isTargetActive(undefined))) continue;
85
+ if (!connections.some((c) => c.isTargetActive(undefined))) continue;
86
86
  sum += initialChunkChunkMap.get(originModule) || 0;
87
87
  }
88
88
  return sum;
@@ -92,7 +92,7 @@ class OccurrenceModuleIdsPlugin {
92
92
  * @param {Module} module module
93
93
  * @returns {number} count of occurs
94
94
  */
95
- const countOccurs = module => {
95
+ const countOccurs = (module) => {
96
96
  let sum = 0;
97
97
  for (const [
98
98
  originModule,
@@ -46,7 +46,7 @@ class SyncModuleIdsPlugin {
46
46
  let data;
47
47
  let dataChanged = false;
48
48
  if (this._read) {
49
- compiler.hooks.readRecords.tapAsync(plugin, callback => {
49
+ compiler.hooks.readRecords.tapAsync(plugin, (callback) => {
50
50
  const fs =
51
51
  /** @type {IntermediateFileSystem} */
52
52
  (compiler.intermediateFileSystem);
@@ -68,7 +68,7 @@ class SyncModuleIdsPlugin {
68
68
  });
69
69
  }
70
70
  if (this._write) {
71
- compiler.hooks.emitRecords.tapAsync(plugin, callback => {
71
+ compiler.hooks.emitRecords.tapAsync(plugin, (callback) => {
72
72
  if (!data || !dataChanged) return callback();
73
73
  /** @type {{[key: string]: string | number}} */
74
74
  const json = {};
@@ -82,7 +82,7 @@ class SyncModuleIdsPlugin {
82
82
  fs.writeFile(this._path, JSON.stringify(json), callback);
83
83
  });
84
84
  }
85
- compiler.hooks.thisCompilation.tap(plugin, compilation => {
85
+ compiler.hooks.thisCompilation.tap(plugin, (compilation) => {
86
86
  const associatedObjectForCache = compiler.root;
87
87
  const context = this._context || compiler.context;
88
88
  if (this._read) {
@@ -114,7 +114,7 @@ class SyncModuleIdsPlugin {
114
114
  });
115
115
  }
116
116
  if (this._write) {
117
- compilation.hooks.recordModules.tap(plugin, modules => {
117
+ compilation.hooks.recordModules.tap(plugin, (modules) => {
118
118
  const { chunkGraph } = compilation;
119
119
  let oldData = data;
120
120
  if (!oldData) {
package/lib/index.js CHANGED
@@ -49,7 +49,9 @@ const memoize = require("./util/memoize");
49
49
  /** @typedef {import("./Compiler").AssetEmittedInfo} AssetEmittedInfo */
50
50
  /** @typedef {import("./Entrypoint")} Entrypoint */
51
51
  /** @typedef {import("./MultiCompiler").MultiCompilerOptions} MultiCompilerOptions */
52
+ /** @typedef {import("./MultiCompiler").MultiWebpackOptions} MultiConfiguration */
52
53
  /** @typedef {import("./MultiStats")} MultiStats */
54
+ /** @typedef {import("./MultiStats").MultiStatsOptions} MultiStatsOptions */
53
55
  /** @typedef {import("./NormalModuleFactory").ResolveData} ResolveData */
54
56
  /** @typedef {import("./Parser").ParserState} ParserState */
55
57
  /** @typedef {import("./ResolverFactory").ResolvePluginInstance} ResolvePluginInstance */
@@ -57,6 +59,8 @@ const memoize = require("./util/memoize");
57
59
  /** @typedef {import("./Watching")} Watching */
58
60
  /** @typedef {import("./cli").Argument} Argument */
59
61
  /** @typedef {import("./cli").Problem} Problem */
62
+ /** @typedef {import("./cli").Colors} Colors */
63
+ /** @typedef {import("./cli").ColorsOptions} ColorsOptions */
60
64
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */
61
65
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */
62
66
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */
@@ -79,7 +83,7 @@ const memoize = require("./util/memoize");
79
83
  * @param {() => T} factory factory function
80
84
  * @returns {T} function
81
85
  */
82
- const lazyFunction = factory => {
86
+ const lazyFunction = (factory) => {
83
87
  const fac = memoize(factory);
84
88
  const f = /** @type {unknown} */ (
85
89
  /**
@@ -132,25 +136,25 @@ module.exports = mergeExports(fn, {
132
136
  return require("./webpack");
133
137
  },
134
138
  /**
135
- * @returns {(configuration: Configuration | Configuration[]) => void} validate fn
139
+ * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
136
140
  */
137
141
  get validate() {
138
142
  const webpackOptionsSchemaCheck =
139
- /** @type {(configuration: Configuration | Configuration[]) => boolean} */
143
+ /** @type {(configuration: Configuration | MultiConfiguration) => boolean} */
140
144
  (require("../schemas/WebpackOptions.check"));
141
145
 
142
146
  const getRealValidate = memoize(
143
147
  /**
144
- * @returns {(configuration: Configuration | Configuration[]) => void} validate fn
148
+ * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
145
149
  */
146
150
  () => {
147
151
  const validateSchema = require("./validateSchema");
148
152
  const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
149
153
 
150
- return options => validateSchema(webpackOptionsSchema, options);
154
+ return (options) => validateSchema(webpackOptionsSchema, options);
151
155
  }
152
156
  );
153
- return options => {
157
+ return (options) => {
154
158
  if (!webpackOptionsSchemaCheck(options)) {
155
159
  getRealValidate()(options);
156
160
  }
@@ -27,7 +27,7 @@ class ArrayPushCallbackChunkFormatPlugin {
27
27
  * @returns {void}
28
28
  */
29
29
  apply(compiler) {
30
- compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
30
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
31
31
  compilation.hooks.additionalChunkRuntimeRequirements.tap(
32
32
  PLUGIN_NAME,
33
33
  (chunk, set, { chunkGraph }) => {
@@ -463,7 +463,7 @@ class BasicEvaluatedExpression {
463
463
  setItems(items) {
464
464
  this.type = TypeArray;
465
465
  this.items = items;
466
- this.sideEffects = items.some(i => i.couldHaveSideEffects());
466
+ this.sideEffects = items.some((i) => i.couldHaveSideEffects());
467
467
  return this;
468
468
  }
469
469
 
@@ -492,7 +492,7 @@ class BasicEvaluatedExpression {
492
492
  this.quasis = quasis;
493
493
  this.parts = parts;
494
494
  this.templateStringKind = kind;
495
- this.sideEffects = parts.some(p => p.sideEffects);
495
+ this.sideEffects = parts.some((p) => p.sideEffects);
496
496
  return this;
497
497
  }
498
498
 
@@ -557,7 +557,7 @@ class BasicEvaluatedExpression {
557
557
  * @param {string} flags regexp flags
558
558
  * @returns {boolean} is valid flags
559
559
  */
560
- BasicEvaluatedExpression.isValidRegExpFlags = flags => {
560
+ BasicEvaluatedExpression.isValidRegExpFlags = (flags) => {
561
561
  const len = flags.length;
562
562
 
563
563
  if (len === 0) return true;
@@ -31,7 +31,7 @@ class CommonJsChunkFormatPlugin {
31
31
  * @returns {void}
32
32
  */
33
33
  apply(compiler) {
34
- compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
34
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
35
35
  compilation.hooks.additionalChunkRuntimeRequirements.tap(
36
36
  PLUGIN_NAME,
37
37
  (chunk, set, { chunkGraph }) => {
@@ -15,7 +15,7 @@ const enabledTypes = new WeakMap();
15
15
  * @param {Compiler} compiler compiler
16
16
  * @returns {Set<ChunkLoadingType>} enabled types
17
17
  */
18
- const getEnabledTypes = compiler => {
18
+ const getEnabledTypes = (compiler) => {
19
19
  let set = enabledTypes.get(compiler);
20
20
  if (set === undefined) {
21
21
  set = new Set();
@@ -88,7 +88,7 @@ class JavascriptGenerator extends Generator {
88
88
  module.buildMeta.exportsType !== "namespace" ||
89
89
  module.presentationalDependencies === undefined ||
90
90
  !module.presentationalDependencies.some(
91
- d => d instanceof HarmonyCompatibilityDependency
91
+ (d) => d instanceof HarmonyCompatibilityDependency
92
92
  )
93
93
  ) {
94
94
  return "Module is not an ECMAScript module";