webpack 5.103.0 → 5.104.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 (176) hide show
  1. package/hot/dev-server.js +18 -3
  2. package/hot/emitter-event-target.js +7 -0
  3. package/hot/lazy-compilation-node.js +45 -29
  4. package/hot/lazy-compilation-universal.js +18 -0
  5. package/hot/lazy-compilation-web.js +15 -5
  6. package/hot/load-http.js +7 -0
  7. package/hot/only-dev-server.js +19 -4
  8. package/lib/APIPlugin.js +6 -0
  9. package/lib/Chunk.js +1 -1
  10. package/lib/ChunkGraph.js +9 -7
  11. package/lib/ChunkGroup.js +8 -5
  12. package/lib/CleanPlugin.js +6 -3
  13. package/lib/CodeGenerationResults.js +2 -1
  14. package/lib/CompatibilityPlugin.js +3 -0
  15. package/lib/Compilation.js +33 -19
  16. package/lib/Compiler.js +3 -3
  17. package/lib/ContextModule.js +6 -3
  18. package/lib/ContextModuleFactory.js +6 -4
  19. package/lib/DefinePlugin.js +34 -3
  20. package/lib/DelegatedModule.js +7 -4
  21. package/lib/DllModule.js +6 -3
  22. package/lib/DotenvPlugin.js +11 -6
  23. package/lib/ExportsInfo.js +5 -5
  24. package/lib/ExternalModule.js +8 -7
  25. package/lib/ExternalModuleFactoryPlugin.js +1 -1
  26. package/lib/FileSystemInfo.js +1 -1
  27. package/lib/Generator.js +10 -7
  28. package/lib/HookWebpackError.js +33 -4
  29. package/lib/HotModuleReplacementPlugin.js +22 -0
  30. package/lib/ManifestPlugin.js +1 -1
  31. package/lib/Module.js +24 -15
  32. package/lib/ModuleBuildError.js +1 -1
  33. package/lib/ModuleError.js +1 -1
  34. package/lib/ModuleFilenameHelpers.js +1 -1
  35. package/lib/ModuleGraph.js +27 -12
  36. package/lib/ModuleGraphConnection.js +2 -2
  37. package/lib/ModuleSourceTypeConstants.js +189 -0
  38. package/lib/ModuleTypeConstants.js +1 -4
  39. package/lib/ModuleWarning.js +1 -1
  40. package/lib/NodeStuffPlugin.js +52 -42
  41. package/lib/NormalModule.js +6 -4
  42. package/lib/NormalModuleFactory.js +7 -10
  43. package/lib/Parser.js +1 -1
  44. package/lib/RawModule.js +7 -4
  45. package/lib/RuntimeModule.js +1 -1
  46. package/lib/RuntimeTemplate.js +5 -1
  47. package/lib/SourceMapDevToolPlugin.js +6 -1
  48. package/lib/Template.js +17 -6
  49. package/lib/TemplatedPathPlugin.js +5 -6
  50. package/lib/WebpackError.js +0 -1
  51. package/lib/WebpackOptionsApply.js +37 -9
  52. package/lib/asset/AssetBytesGenerator.js +15 -11
  53. package/lib/asset/AssetGenerator.js +30 -24
  54. package/lib/asset/AssetSourceGenerator.js +15 -11
  55. package/lib/asset/RawDataUrlModule.js +6 -3
  56. package/lib/buildChunkGraph.js +4 -2
  57. package/lib/cache/PackFileCacheStrategy.js +6 -5
  58. package/lib/cli.js +2 -43
  59. package/lib/config/browserslistTargetHandler.js +19 -0
  60. package/lib/config/defaults.js +128 -43
  61. package/lib/config/normalization.js +2 -2
  62. package/lib/config/target.js +5 -0
  63. package/lib/container/ContainerEntryModule.js +6 -3
  64. package/lib/container/FallbackModule.js +6 -3
  65. package/lib/container/RemoteModule.js +1 -3
  66. package/lib/css/CssGenerator.js +26 -24
  67. package/lib/css/CssLoadingRuntimeModule.js +12 -4
  68. package/lib/css/CssModulesPlugin.js +29 -74
  69. package/lib/css/CssParser.js +828 -341
  70. package/lib/css/walkCssTokens.js +33 -13
  71. package/lib/dependencies/CachedConstDependency.js +24 -10
  72. package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
  73. package/lib/dependencies/ContextDependencyHelpers.js +2 -2
  74. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +3 -1
  75. package/lib/dependencies/CssIcssExportDependency.js +242 -104
  76. package/lib/dependencies/CssIcssImportDependency.js +61 -4
  77. package/lib/dependencies/CssIcssSymbolDependency.js +2 -6
  78. package/lib/dependencies/CssImportDependency.js +2 -1
  79. package/lib/dependencies/CssUrlDependency.js +3 -2
  80. package/lib/dependencies/DynamicExports.js +7 -7
  81. package/lib/dependencies/ExternalModuleDependency.js +7 -4
  82. package/lib/dependencies/ExternalModuleInitFragment.js +2 -1
  83. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +2 -1
  84. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +3 -2
  85. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +1 -1
  86. package/lib/dependencies/HarmonyExports.js +4 -4
  87. package/lib/dependencies/HarmonyImportDependency.js +8 -3
  88. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
  89. package/lib/dependencies/ImportMetaPlugin.js +57 -0
  90. package/lib/dependencies/ImportParserPlugin.js +2 -2
  91. package/lib/dependencies/LocalModulesHelpers.js +3 -3
  92. package/lib/dependencies/WorkerPlugin.js +2 -2
  93. package/lib/dependencies/getFunctionExpression.js +1 -1
  94. package/lib/esm/ModuleChunkFormatPlugin.js +5 -4
  95. package/lib/hmr/HotModuleReplacement.runtime.js +2 -1
  96. package/lib/hmr/LazyCompilationPlugin.js +4 -3
  97. package/lib/ids/IdHelpers.js +16 -7
  98. package/lib/javascript/ChunkHelpers.js +1 -1
  99. package/lib/javascript/JavascriptGenerator.js +4 -3
  100. package/lib/javascript/JavascriptModulesPlugin.js +57 -24
  101. package/lib/javascript/JavascriptParser.js +19 -6
  102. package/lib/json/JsonGenerator.js +5 -4
  103. package/lib/json/JsonParser.js +2 -1
  104. package/lib/library/AbstractLibraryPlugin.js +1 -1
  105. package/lib/library/AmdLibraryPlugin.js +4 -1
  106. package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
  107. package/lib/library/ModuleLibraryPlugin.js +41 -13
  108. package/lib/library/SystemLibraryPlugin.js +4 -1
  109. package/lib/library/UmdLibraryPlugin.js +1 -1
  110. package/lib/logging/Logger.js +5 -4
  111. package/lib/logging/createConsoleLogger.js +2 -2
  112. package/lib/optimize/ConcatenatedModule.js +47 -32
  113. package/lib/optimize/ModuleConcatenationPlugin.js +5 -4
  114. package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
  115. package/lib/optimize/SplitChunksPlugin.js +60 -46
  116. package/lib/rules/RuleSetCompiler.js +1 -1
  117. package/lib/runtime/GetChunkFilenameRuntimeModule.js +3 -2
  118. package/lib/schemes/HttpUriPlugin.js +78 -7
  119. package/lib/serialization/AggregateErrorSerializer.js +1 -2
  120. package/lib/serialization/ObjectMiddleware.js +0 -2
  121. package/lib/serialization/SingleItemMiddleware.js +1 -1
  122. package/lib/sharing/ConsumeSharedModule.js +1 -1
  123. package/lib/sharing/ConsumeSharedPlugin.js +5 -3
  124. package/lib/sharing/ProvideSharedModule.js +1 -1
  125. package/lib/sharing/resolveMatchedConfigs.js +15 -9
  126. package/lib/sharing/utils.js +1 -1
  127. package/lib/stats/DefaultStatsFactoryPlugin.js +8 -5
  128. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  129. package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
  130. package/lib/util/StringXor.js +1 -1
  131. package/lib/util/URLAbsoluteSpecifier.js +2 -2
  132. package/lib/util/binarySearchBounds.js +2 -2
  133. package/lib/util/comparators.js +53 -76
  134. package/lib/util/compileBooleanMatcher.js +78 -6
  135. package/lib/util/createHash.js +20 -199
  136. package/lib/util/deprecation.js +1 -1
  137. package/lib/util/deterministicGrouping.js +6 -3
  138. package/lib/util/fs.js +75 -75
  139. package/lib/util/hash/BatchedHash.js +10 -9
  140. package/lib/util/hash/BulkUpdateHash.js +138 -0
  141. package/lib/util/hash/DebugHash.js +75 -0
  142. package/lib/util/hash/hash-digest.js +216 -0
  143. package/lib/util/identifier.js +82 -17
  144. package/lib/util/internalSerializables.js +2 -6
  145. package/lib/util/runtime.js +3 -3
  146. package/lib/util/source.js +2 -2
  147. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +3 -2
  148. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +3 -2
  149. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -6
  150. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -2
  151. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +6 -2
  152. package/lib/webpack.js +1 -1
  153. package/package.json +29 -25
  154. package/schemas/WebpackOptions.check.js +1 -1
  155. package/schemas/WebpackOptions.json +59 -82
  156. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -1
  157. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  158. package/types.d.ts +225 -157
  159. package/lib/ModuleSourceTypesConstants.js +0 -117
  160. package/lib/dependencies/CssIcssFromIdentifierDependency.js +0 -124
  161. package/lib/dependencies/CssIcssGlobalIdentifierDependency.js +0 -48
  162. package/lib/dependencies/CssIcssLocalIdentifierDependency.js +0 -61
  163. package/lib/dependencies/CssIcssSelfLocalIdentifierDependency.js +0 -190
  164. package/lib/util/jsonParseEvenBetterErrors.js +0 -10
  165. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  166. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  167. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  168. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  169. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  170. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  171. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +0 -7
  172. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  173. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  174. package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +0 -7
  175. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  176. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
@@ -17,6 +17,7 @@ const Compilation = require("../Compilation");
17
17
  const CssModule = require("../CssModule");
18
18
  const { tryRunOrWebpackError } = require("../HookWebpackError");
19
19
  const HotUpdateChunk = require("../HotUpdateChunk");
20
+ const { CSS_IMPORT_TYPE, CSS_TYPE } = require("../ModuleSourceTypeConstants");
20
21
  const {
21
22
  CSS_MODULE_TYPE,
22
23
  CSS_MODULE_TYPE_AUTO,
@@ -25,15 +26,10 @@ const {
25
26
  } = require("../ModuleTypeConstants");
26
27
  const NormalModule = require("../NormalModule");
27
28
  const RuntimeGlobals = require("../RuntimeGlobals");
28
- const SelfModuleFactory = require("../SelfModuleFactory");
29
29
  const Template = require("../Template");
30
30
  const WebpackError = require("../WebpackError");
31
31
  const CssIcssExportDependency = require("../dependencies/CssIcssExportDependency");
32
- const CssIcssFromIdentifierDependency = require("../dependencies/CssIcssFromIdentifierDependency");
33
- const CssIcssGlobalIdentifierDependency = require("../dependencies/CssIcssGlobalIdentifierDependency");
34
32
  const CssIcssImportDependency = require("../dependencies/CssIcssImportDependency");
35
- const CssIcssLocalIdentifierDependency = require("../dependencies/CssIcssLocalIdentifierDependency");
36
- const CssIcssSelfLocalIdentifierDependency = require("../dependencies/CssIcssSelfLocalIdentifierDependency");
37
33
  const CssIcssSymbolDependency = require("../dependencies/CssIcssSymbolDependency");
38
34
  const CssImportDependency = require("../dependencies/CssImportDependency");
39
35
  const CssUrlDependency = require("../dependencies/CssUrlDependency");
@@ -130,8 +126,8 @@ const validateGeneratorOptions = {
130
126
  generatorValidationOptions
131
127
  ),
132
128
  "css/auto": createSchemaValidation(
133
- require("../../schemas/plugins/css/CssAutoGeneratorOptions.check"),
134
- () => getSchema("CssAutoGeneratorOptions"),
129
+ require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
130
+ () => getSchema("CssModuleGeneratorOptions"),
135
131
  generatorValidationOptions
136
132
  ),
137
133
  "css/module": createSchemaValidation(
@@ -140,8 +136,8 @@ const validateGeneratorOptions = {
140
136
  generatorValidationOptions
141
137
  ),
142
138
  "css/global": createSchemaValidation(
143
- require("../../schemas/plugins/css/CssGlobalGeneratorOptions.check"),
144
- () => getSchema("CssGlobalGeneratorOptions"),
139
+ require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
140
+ () => getSchema("CssModuleGeneratorOptions"),
145
141
  generatorValidationOptions
146
142
  )
147
143
  };
@@ -157,8 +153,8 @@ const validateParserOptions = {
157
153
  parserValidationOptions
158
154
  ),
159
155
  "css/auto": createSchemaValidation(
160
- require("../../schemas/plugins/css/CssAutoParserOptions.check"),
161
- () => getSchema("CssAutoParserOptions"),
156
+ require("../../schemas/plugins/css/CssModuleParserOptions.check"),
157
+ () => getSchema("CssModuleParserOptions"),
162
158
  parserValidationOptions
163
159
  ),
164
160
  "css/module": createSchemaValidation(
@@ -167,8 +163,8 @@ const validateParserOptions = {
167
163
  parserValidationOptions
168
164
  ),
169
165
  "css/global": createSchemaValidation(
170
- require("../../schemas/plugins/css/CssGlobalParserOptions.check"),
171
- () => getSchema("CssGlobalParserOptions"),
166
+ require("../../schemas/plugins/css/CssModuleParserOptions.check"),
167
+ () => getSchema("CssModuleParserOptions"),
172
168
  parserValidationOptions
173
169
  )
174
170
  };
@@ -219,7 +215,6 @@ class CssModulesPlugin {
219
215
  PLUGIN_NAME,
220
216
  (compilation, { normalModuleFactory }) => {
221
217
  const hooks = CssModulesPlugin.getCompilationHooks(compilation);
222
- const selfFactory = new SelfModuleFactory(compilation.moduleGraph);
223
218
  compilation.dependencyFactories.set(
224
219
  CssImportDependency,
225
220
  normalModuleFactory
@@ -236,18 +231,6 @@ class CssModulesPlugin {
236
231
  CssUrlDependency,
237
232
  new CssUrlDependency.Template()
238
233
  );
239
- compilation.dependencyTemplates.set(
240
- CssIcssLocalIdentifierDependency,
241
- new CssIcssLocalIdentifierDependency.Template()
242
- );
243
- compilation.dependencyFactories.set(
244
- CssIcssSelfLocalIdentifierDependency,
245
- selfFactory
246
- );
247
- compilation.dependencyTemplates.set(
248
- CssIcssSelfLocalIdentifierDependency,
249
- new CssIcssSelfLocalIdentifierDependency.Template()
250
- );
251
234
  compilation.dependencyFactories.set(
252
235
  CssIcssImportDependency,
253
236
  normalModuleFactory
@@ -256,22 +239,6 @@ class CssModulesPlugin {
256
239
  CssIcssImportDependency,
257
240
  new CssIcssImportDependency.Template()
258
241
  );
259
- compilation.dependencyFactories.set(
260
- CssIcssFromIdentifierDependency,
261
- normalModuleFactory
262
- );
263
- compilation.dependencyTemplates.set(
264
- CssIcssFromIdentifierDependency,
265
- new CssIcssFromIdentifierDependency.Template()
266
- );
267
- compilation.dependencyFactories.set(
268
- CssIcssGlobalIdentifierDependency,
269
- normalModuleFactory
270
- );
271
- compilation.dependencyTemplates.set(
272
- CssIcssGlobalIdentifierDependency,
273
- new CssIcssGlobalIdentifierDependency.Template()
274
- );
275
242
  compilation.dependencyTemplates.set(
276
243
  CssIcssExportDependency,
277
244
  new CssIcssExportDependency.Template()
@@ -293,45 +260,31 @@ class CssModulesPlugin {
293
260
  normalModuleFactory.hooks.createParser
294
261
  .for(type)
295
262
  .tap(PLUGIN_NAME, (parserOptions) => {
296
- validateParserOptions[type](parserOptions);
297
- const {
298
- url,
299
- import: importOption,
300
- namedExports,
301
- exportType
302
- } = parserOptions;
303
-
304
263
  switch (type) {
305
264
  case CSS_MODULE_TYPE:
306
- return new CssParser({
307
- importOption,
308
- url,
309
- namedExports,
310
- exportType
311
- });
265
+ validateParserOptions[type](parserOptions);
266
+
267
+ return new CssParser(parserOptions);
312
268
  case CSS_MODULE_TYPE_GLOBAL:
269
+ validateParserOptions[type](parserOptions);
270
+
313
271
  return new CssParser({
314
272
  defaultMode: "global",
315
- importOption,
316
- url,
317
- namedExports,
318
- exportType
273
+ ...parserOptions
319
274
  });
320
275
  case CSS_MODULE_TYPE_MODULE:
276
+ validateParserOptions[type](parserOptions);
277
+
321
278
  return new CssParser({
322
279
  defaultMode: "local",
323
- importOption,
324
- url,
325
- namedExports,
326
- exportType
280
+ ...parserOptions
327
281
  });
328
282
  case CSS_MODULE_TYPE_AUTO:
283
+ validateParserOptions[type](parserOptions);
284
+
329
285
  return new CssParser({
330
286
  defaultMode: "auto",
331
- importOption,
332
- url,
333
- namedExports,
334
- exportType
287
+ ...parserOptions
335
288
  });
336
289
  }
337
290
  });
@@ -778,7 +731,7 @@ class CssModulesPlugin {
778
731
  (
779
732
  chunkGraph.getOrderedChunkModulesIterableBySourceType(
780
733
  chunk,
781
- "css-import",
734
+ CSS_IMPORT_TYPE,
782
735
  compareModulesByIdOrIdentifier(chunkGraph)
783
736
  )
784
737
  ),
@@ -790,7 +743,7 @@ class CssModulesPlugin {
790
743
  (
791
744
  chunkGraph.getOrderedChunkModulesIterableBySourceType(
792
745
  chunk,
793
- "css",
746
+ CSS_TYPE,
794
747
  compareModulesByIdOrIdentifier(chunkGraph)
795
748
  )
796
749
  ),
@@ -920,8 +873,8 @@ class CssModulesPlugin {
920
873
  const moduleSourceContent =
921
874
  /** @type {Source} */
922
875
  (
923
- codeGenResult.sources.get("css") ||
924
- codeGenResult.sources.get("css-import")
876
+ codeGenResult.sources.get(CSS_TYPE) ||
877
+ codeGenResult.sources.get(CSS_IMPORT_TYPE)
925
878
  );
926
879
  const moduleSource = CssModulesPlugin.renderModule(
927
880
  module,
@@ -970,9 +923,11 @@ class CssModulesPlugin {
970
923
  */
971
924
  static chunkHasCss(chunk, chunkGraph) {
972
925
  return (
973
- Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")) ||
974
926
  Boolean(
975
- chunkGraph.getChunkModulesIterableBySourceType(chunk, "css-import")
927
+ chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_TYPE)
928
+ ) ||
929
+ Boolean(
930
+ chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_IMPORT_TYPE)
976
931
  )
977
932
  );
978
933
  }