webpack 5.106.2 → 5.107.1

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 (235) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +1 -1
  3. package/lib/BannerPlugin.js +3 -4
  4. package/lib/Cache.js +3 -6
  5. package/lib/Chunk.js +21 -25
  6. package/lib/ChunkGroup.js +57 -15
  7. package/lib/CompatibilityPlugin.js +8 -7
  8. package/lib/Compilation.js +67 -37
  9. package/lib/Compiler.js +4 -13
  10. package/lib/ContextModule.js +2 -2
  11. package/lib/DefinePlugin.js +2 -2
  12. package/lib/Dependency.js +22 -1
  13. package/lib/DependencyTemplate.js +2 -1
  14. package/lib/EnvironmentPlugin.js +1 -1
  15. package/lib/EvalSourceMapDevToolPlugin.js +8 -10
  16. package/lib/ExportsInfo.js +30 -34
  17. package/lib/ExternalModule.js +91 -26
  18. package/lib/ExternalModuleFactoryPlugin.js +7 -1
  19. package/lib/FileSystemInfo.js +187 -72
  20. package/lib/Generator.js +3 -3
  21. package/lib/HotModuleReplacementPlugin.js +26 -8
  22. package/lib/IgnorePlugin.js +2 -1
  23. package/lib/Module.js +20 -19
  24. package/lib/ModuleFactory.js +1 -1
  25. package/lib/ModuleNotFoundError.js +3 -84
  26. package/lib/ModuleSourceTypeConstants.js +51 -19
  27. package/lib/ModuleTypeConstants.js +12 -3
  28. package/lib/MultiCompiler.js +2 -2
  29. package/lib/NodeStuffPlugin.js +1 -1
  30. package/lib/NormalModule.js +119 -77
  31. package/lib/NormalModuleFactory.js +47 -27
  32. package/lib/Parser.js +1 -1
  33. package/lib/ProgressPlugin.js +129 -56
  34. package/lib/RuntimeGlobals.js +5 -5
  35. package/lib/RuntimeModule.js +9 -7
  36. package/lib/RuntimePlugin.js +12 -1
  37. package/lib/SourceMapDevToolPlugin.js +250 -49
  38. package/lib/Template.js +1 -1
  39. package/lib/TemplatedPathPlugin.js +22 -4
  40. package/lib/WarnCaseSensitiveModulesPlugin.js +70 -2
  41. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  42. package/lib/WarnNoModeSetPlugin.js +16 -1
  43. package/lib/Watching.js +2 -3
  44. package/lib/WebpackError.js +3 -77
  45. package/lib/WebpackIsIncludedPlugin.js +1 -1
  46. package/lib/WebpackOptionsApply.js +13 -1
  47. package/lib/asset/AssetBytesGenerator.js +12 -8
  48. package/lib/asset/AssetGenerator.js +36 -22
  49. package/lib/asset/AssetModulesPlugin.js +6 -8
  50. package/lib/asset/AssetSourceGenerator.js +12 -8
  51. package/lib/buildChunkGraph.js +4 -6
  52. package/lib/cache/PackFileCacheStrategy.js +4 -4
  53. package/lib/cli.js +3 -1
  54. package/lib/config/defaults.js +197 -10
  55. package/lib/config/normalization.js +3 -1
  56. package/lib/css/CssGenerator.js +320 -105
  57. package/lib/css/CssInjectStyleRuntimeModule.js +44 -42
  58. package/lib/css/CssLoadingRuntimeModule.js +22 -4
  59. package/lib/{CssModule.js → css/CssModule.js} +15 -15
  60. package/lib/css/CssModulesPlugin.js +168 -88
  61. package/lib/css/CssParser.js +566 -269
  62. package/lib/css/walkCssTokens.js +148 -2
  63. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -1
  64. package/lib/dependencies/CommonJsDependencyHelpers.js +63 -0
  65. package/lib/dependencies/CommonJsExportRequireDependency.js +54 -10
  66. package/lib/dependencies/CommonJsExportsParserPlugin.js +1 -1
  67. package/lib/dependencies/CommonJsFullRequireDependency.js +32 -9
  68. package/lib/dependencies/CommonJsImportsParserPlugin.js +112 -4
  69. package/lib/dependencies/CommonJsRequireDependency.js +67 -4
  70. package/lib/dependencies/ContextDependency.js +1 -1
  71. package/lib/dependencies/ContextDependencyHelpers.js +1 -1
  72. package/lib/dependencies/CreateRequireParserPlugin.js +1 -1
  73. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  74. package/lib/dependencies/CssIcssExportDependency.js +332 -67
  75. package/lib/dependencies/CssIcssImportDependency.js +49 -7
  76. package/lib/dependencies/CssIcssSymbolDependency.js +11 -3
  77. package/lib/dependencies/CssImportDependency.js +8 -0
  78. package/lib/dependencies/CssUrlDependency.js +28 -2
  79. package/lib/dependencies/HarmonyDetectionParserPlugin.js +22 -2
  80. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +8 -7
  81. package/lib/dependencies/HarmonyExportExpressionDependency.js +22 -14
  82. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +110 -3
  83. package/lib/dependencies/HarmonyImportDependency.js +10 -2
  84. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +22 -1
  85. package/lib/dependencies/HarmonyImportSpecifierDependency.js +1 -1
  86. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  87. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  88. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  89. package/lib/dependencies/HtmlScriptSrcDependency.js +557 -0
  90. package/lib/dependencies/HtmlSourceDependency.js +128 -0
  91. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
  92. package/lib/dependencies/ImportParserPlugin.js +2 -2
  93. package/lib/dependencies/ImportPhase.js +1 -1
  94. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +1 -1
  95. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +7 -7
  96. package/lib/dependencies/SystemPlugin.js +1 -1
  97. package/lib/dependencies/WebAssemblyImportDependency.js +1 -1
  98. package/lib/dependencies/WorkerPlugin.js +2 -2
  99. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +31 -31
  100. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +4 -4
  101. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +2 -2
  102. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +4 -4
  103. package/lib/{DllModule.js → dll/DllModule.js} +24 -24
  104. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +4 -4
  105. package/lib/{DllPlugin.js → dll/DllPlugin.js} +6 -5
  106. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +14 -14
  107. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +9 -9
  108. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +2 -2
  109. package/lib/errors/BuildCycleError.js +1 -1
  110. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  111. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  112. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +3 -3
  113. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  114. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  115. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +5 -5
  116. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +4 -4
  117. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +3 -3
  118. package/lib/errors/JSONParseError.js +114 -0
  119. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +5 -5
  120. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  121. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +4 -4
  122. package/lib/{ModuleError.js → errors/ModuleError.js} +5 -5
  123. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  124. package/lib/errors/ModuleNotFoundError.js +91 -0
  125. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +8 -6
  126. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +1 -1
  127. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +1 -1
  128. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +5 -5
  129. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +4 -4
  130. package/lib/errors/NonErrorEmittedError.js +28 -0
  131. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +2 -2
  132. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +3 -3
  133. package/lib/errors/WebpackError.js +84 -0
  134. package/lib/html/HtmlGenerator.js +379 -0
  135. package/lib/html/HtmlModulesPlugin.js +429 -0
  136. package/lib/html/HtmlParser.js +1489 -0
  137. package/lib/html/walkHtmlTokens.js +3249 -0
  138. package/lib/ids/IdHelpers.js +2 -1
  139. package/lib/index.js +36 -15
  140. package/lib/javascript/JavascriptModulesPlugin.js +91 -10
  141. package/lib/javascript/JavascriptParser.js +197 -16
  142. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  143. package/lib/json/JsonParser.js +7 -16
  144. package/lib/library/AbstractLibraryPlugin.js +1 -1
  145. package/lib/library/EnableLibraryPlugin.js +1 -1
  146. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  147. package/lib/library/ModuleLibraryPlugin.js +74 -0
  148. package/lib/node/NodeEnvironmentPlugin.js +4 -2
  149. package/lib/node/nodeConsole.js +113 -64
  150. package/lib/optimize/ConcatenatedModule.js +51 -6
  151. package/lib/optimize/InnerGraph.js +1 -1
  152. package/lib/optimize/InnerGraphPlugin.js +11 -1
  153. package/lib/optimize/MinMaxSizeWarning.js +4 -4
  154. package/lib/optimize/ModuleConcatenationPlugin.js +15 -7
  155. package/lib/optimize/RealContentHashPlugin.js +89 -26
  156. package/lib/optimize/SideEffectsFlagPlugin.js +112 -5
  157. package/lib/optimize/SplitChunksPlugin.js +5 -5
  158. package/lib/performance/AssetsOverSizeLimitWarning.js +2 -2
  159. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  160. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  161. package/lib/performance/SizeLimitsPlugin.js +1 -1
  162. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -1
  163. package/lib/rules/UseEffectRulePlugin.js +4 -3
  164. package/lib/runtime/AutoPublicPathRuntimeModule.js +3 -3
  165. package/lib/runtime/GetChunkFilenameRuntimeModule.js +5 -5
  166. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +119 -13
  167. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  168. package/lib/schemes/DataUriPlugin.js +13 -1
  169. package/lib/schemes/VirtualUrlPlugin.js +1 -1
  170. package/lib/serialization/SerializerMiddleware.js +2 -2
  171. package/lib/sharing/ConsumeSharedPlugin.js +4 -10
  172. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -4
  173. package/lib/sharing/ProvideSharedModule.js +1 -1
  174. package/lib/sharing/ProvideSharedPlugin.js +5 -5
  175. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  176. package/lib/stats/DefaultStatsFactoryPlugin.js +2 -2
  177. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  178. package/lib/stats/DefaultStatsPrinterPlugin.js +1 -1
  179. package/lib/stats/StatsFactory.js +1 -1
  180. package/lib/typescript/TypeScriptPlugin.js +210 -0
  181. package/lib/url/URLParserPlugin.js +2 -2
  182. package/lib/util/AsyncQueue.js +2 -2
  183. package/lib/util/Hash.js +2 -2
  184. package/lib/util/LocConverter.js +53 -0
  185. package/lib/util/SortableSet.js +1 -1
  186. package/lib/util/cleverMerge.js +2 -2
  187. package/lib/util/comparators.js +3 -3
  188. package/lib/util/concatenate.js +3 -3
  189. package/lib/util/conventions.js +42 -1
  190. package/lib/util/createMappings.js +118 -0
  191. package/lib/{formatLocation.js → util/formatLocation.js} +2 -2
  192. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +3 -1
  193. package/lib/util/fs.js +8 -8
  194. package/lib/util/hash/md4.js +1 -1
  195. package/lib/util/hash/xxhash64.js +1 -1
  196. package/lib/util/identifier.js +48 -0
  197. package/lib/util/internalSerializables.js +35 -19
  198. package/lib/util/magicComment.js +10 -7
  199. package/lib/util/parseJson.js +2 -73
  200. package/lib/util/source.js +21 -0
  201. package/lib/util/topologicalSort.js +69 -0
  202. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -4
  203. package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -1
  204. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +5 -3
  205. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
  206. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +5 -3
  207. package/lib/webpack.js +3 -1
  208. package/package.json +24 -22
  209. package/schemas/WebpackOptions.check.js +1 -1
  210. package/schemas/WebpackOptions.json +129 -12
  211. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  212. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  213. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  214. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  215. package/schemas/plugins/ProgressPlugin.json +22 -0
  216. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  217. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  218. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  219. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  220. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  221. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  222. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  223. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  224. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  225. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  226. package/types.d.ts +1153 -233
  227. package/lib/CaseSensitiveModulesWarning.js +0 -80
  228. package/lib/GraphHelpers.js +0 -49
  229. package/lib/NoModeWarning.js +0 -23
  230. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -57
  231. /package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +0 -0
  232. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  233. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  234. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  235. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/Module.js CHANGED
@@ -51,7 +51,7 @@ const makeSerializable = require("./util/makeSerializable");
51
51
  * @template T
52
52
  * @typedef {import("./InitFragment")<T>} InitFragment
53
53
  */
54
- /** @typedef {import("./WebpackError")} WebpackError */
54
+ /** @typedef {import("./errors/WebpackError")} WebpackError */
55
55
  /** @typedef {import("./json/JsonData")} JsonData */
56
56
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
57
57
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
@@ -119,7 +119,7 @@ const makeSerializable = require("./util/makeSerializable");
119
119
  * @typedef {object} AllCodeGenerationSchemas
120
120
  * @property {Set<string>} topLevelDeclarations top level declarations for javascript modules
121
121
  * @property {InitFragment<EXPECTED_ANY>[]} chunkInitFragments chunk init fragments for javascript modules
122
- * @property {{ javascript?: string, ["css-url"]?: string }} url url for css and javascript modules
122
+ * @property {{ javascript?: string, ["asset-url"]?: string }} url url for asset modules
123
123
  * @property {string} filename a filename for asset modules
124
124
  * @property {AssetInfo} assetInfo an asset info for asset modules
125
125
  * @property {string} fullContentHash a full content hash for asset modules
@@ -129,7 +129,7 @@ const makeSerializable = require("./util/makeSerializable");
129
129
  /**
130
130
  * Defines the code gen value type used by this module.
131
131
  * @template {string} K
132
- * @typedef {K extends keyof AllCodeGenerationSchemas ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
132
+ * @typedef {K extends (keyof AllCodeGenerationSchemas) ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
133
133
  */
134
134
 
135
135
  /**
@@ -173,7 +173,8 @@ const makeSerializable = require("./util/makeSerializable");
173
173
  * @property {boolean=} treatAsCommonJs
174
174
  * @property {boolean=} async
175
175
  * @property {boolean=} sideEffectFree
176
- * @property {boolean=} isCSSModule
176
+ * @property {boolean=} isCssModule
177
+ * @property {boolean=} needIdInConcatenation
177
178
  * @property {Record<string, string>=} jsIncompatibleExports
178
179
  * @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime
179
180
  * @property {Map<string, string>=} exportsSourceByRuntime
@@ -303,9 +304,9 @@ class Module extends DependenciesBlock {
303
304
  /** @type {boolean} */
304
305
  this.hot = false;
305
306
  // Info from Build
306
- /** @type {WebpackError[] | undefined} */
307
+ /** @type {Error[] | undefined} */
307
308
  this._warnings = undefined;
308
- /** @type {WebpackError[] | undefined} */
309
+ /** @type {Error[] | undefined} */
309
310
  this._errors = undefined;
310
311
  /** @type {BuildMeta | undefined} */
311
312
  this.buildMeta = undefined;
@@ -782,7 +783,7 @@ class Module extends DependenciesBlock {
782
783
 
783
784
  /**
784
785
  * Adds the provided warning to the module.
785
- * @param {WebpackError} warning the warning
786
+ * @param {Error} warning the warning
786
787
  * @returns {void}
787
788
  */
788
789
  addWarning(warning) {
@@ -794,7 +795,7 @@ class Module extends DependenciesBlock {
794
795
 
795
796
  /**
796
797
  * Returns list of warnings if any.
797
- * @returns {Iterable<WebpackError> | undefined} list of warnings if any
798
+ * @returns {Error[] | undefined} list of warnings if any
798
799
  */
799
800
  getWarnings() {
800
801
  return this._warnings;
@@ -810,7 +811,7 @@ class Module extends DependenciesBlock {
810
811
 
811
812
  /**
812
813
  * Adds the provided error to the module.
813
- * @param {WebpackError} error the error
814
+ * @param {Error} error the error
814
815
  * @returns {void}
815
816
  */
816
817
  addError(error) {
@@ -822,7 +823,7 @@ class Module extends DependenciesBlock {
822
823
 
823
824
  /**
824
825
  * Returns list of errors if any.
825
- * @returns {Iterable<WebpackError> | undefined} list of errors if any
826
+ * @returns {Error[] | undefined} list of errors if any
826
827
  */
827
828
  getErrors() {
828
829
  return this._errors;
@@ -1027,7 +1028,7 @@ class Module extends DependenciesBlock {
1027
1028
  * @returns {string} a unique identifier of the module
1028
1029
  */
1029
1030
  identifier() {
1030
- const AbstractMethodError = require("./AbstractMethodError");
1031
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1031
1032
 
1032
1033
  throw new AbstractMethodError();
1033
1034
  }
@@ -1040,7 +1041,7 @@ class Module extends DependenciesBlock {
1040
1041
  * @returns {string} a user readable identifier of the module
1041
1042
  */
1042
1043
  readableIdentifier(requestShortener) {
1043
- const AbstractMethodError = require("./AbstractMethodError");
1044
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1044
1045
 
1045
1046
  throw new AbstractMethodError();
1046
1047
  }
@@ -1057,7 +1058,7 @@ class Module extends DependenciesBlock {
1057
1058
  * @returns {void}
1058
1059
  */
1059
1060
  build(options, compilation, resolver, fs, callback) {
1060
- const AbstractMethodError = require("./AbstractMethodError");
1061
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1061
1062
 
1062
1063
  throw new AbstractMethodError();
1063
1064
  }
@@ -1099,7 +1100,7 @@ class Module extends DependenciesBlock {
1099
1100
  */
1100
1101
  source(dependencyTemplates, runtimeTemplate, type = JAVASCRIPT_TYPE) {
1101
1102
  if (this.codeGeneration === Module.prototype.codeGeneration) {
1102
- const AbstractMethodError = require("./AbstractMethodError");
1103
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1103
1104
 
1104
1105
  throw new AbstractMethodError();
1105
1106
  }
@@ -1135,7 +1136,7 @@ class Module extends DependenciesBlock {
1135
1136
  * @returns {number} the estimated size of the module (must be non-zero)
1136
1137
  */
1137
1138
  size(type) {
1138
- const AbstractMethodError = require("./AbstractMethodError");
1139
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1139
1140
 
1140
1141
  throw new AbstractMethodError();
1141
1142
  }
@@ -1393,13 +1394,13 @@ Object.defineProperty(Module.prototype, "errors", {
1393
1394
  /**
1394
1395
  * Returns errors.
1395
1396
  * @deprecated
1396
- * @returns {WebpackError[]} errors
1397
+ * @returns {Error[]} errors
1397
1398
  */
1398
1399
  get: util.deprecate(
1399
1400
  /**
1400
1401
  * Returns errors.
1401
1402
  * @this {Module}
1402
- * @returns {WebpackError[]} errors
1403
+ * @returns {Error[]} errors
1403
1404
  */
1404
1405
  function errors() {
1405
1406
  if (this._errors === undefined) {
@@ -1417,13 +1418,13 @@ Object.defineProperty(Module.prototype, "warnings", {
1417
1418
  /**
1418
1419
  * Returns warnings.
1419
1420
  * @deprecated
1420
- * @returns {WebpackError[]} warnings
1421
+ * @returns {Error[]} warnings
1421
1422
  */
1422
1423
  get: util.deprecate(
1423
1424
  /**
1424
1425
  * Returns warnings.
1425
1426
  * @this {Module}
1426
- * @returns {WebpackError[]} warnings
1427
+ * @returns {Error[]} warnings
1427
1428
  */
1428
1429
  function warnings() {
1429
1430
  if (this._warnings === undefined) {
@@ -53,7 +53,7 @@ class ModuleFactory {
53
53
  * @returns {void}
54
54
  */
55
55
  create(data, callback) {
56
- const AbstractMethodError = require("./AbstractMethodError");
56
+ const AbstractMethodError = require("./errors/AbstractMethodError");
57
57
 
58
58
  throw new AbstractMethodError();
59
59
  }
@@ -5,87 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const WebpackError = require("./WebpackError");
9
-
10
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
11
- /** @typedef {import("./Module")} Module */
12
-
13
- const previouslyPolyfilledBuiltinModules = {
14
- assert: "assert/",
15
- buffer: "buffer/",
16
- console: "console-browserify",
17
- constants: "constants-browserify",
18
- crypto: "crypto-browserify",
19
- domain: "domain-browser",
20
- events: "events/",
21
- http: "stream-http",
22
- https: "https-browserify",
23
- os: "os-browserify/browser",
24
- path: "path-browserify",
25
- punycode: "punycode/",
26
- process: "process/browser",
27
- querystring: "querystring-es3",
28
- stream: "stream-browserify",
29
- _stream_duplex: "readable-stream/duplex",
30
- _stream_passthrough: "readable-stream/passthrough",
31
- _stream_readable: "readable-stream/readable",
32
- _stream_transform: "readable-stream/transform",
33
- _stream_writable: "readable-stream/writable",
34
- string_decoder: "string_decoder/",
35
- sys: "util/",
36
- timers: "timers-browserify",
37
- tty: "tty-browserify",
38
- url: "url/",
39
- util: "util/",
40
- vm: "vm-browserify",
41
- zlib: "browserify-zlib"
42
- };
43
-
44
- class ModuleNotFoundError extends WebpackError {
45
- /**
46
- * Creates an instance of ModuleNotFoundError.
47
- * @param {Module | null} module module tied to dependency
48
- * @param {Error & { details?: string }} err error thrown
49
- * @param {DependencyLocation} loc location of dependency
50
- */
51
- constructor(module, err, loc) {
52
- let message = `Module not found: ${err.toString()}`;
53
-
54
- // TODO remove in webpack 6
55
- const match = err.message.match(/Can't resolve '([^']+)'/);
56
- if (match) {
57
- const request = match[1];
58
- const alias =
59
- previouslyPolyfilledBuiltinModules[
60
- /** @type {keyof previouslyPolyfilledBuiltinModules} */ (request)
61
- ];
62
- if (alias) {
63
- const pathIndex = alias.indexOf("/");
64
- const dependency = pathIndex > 0 ? alias.slice(0, pathIndex) : alias;
65
- message +=
66
- "\n\n" +
67
- "BREAKING CHANGE: " +
68
- "webpack < 5 used to include polyfills for node.js core modules by default.\n" +
69
- "This is no longer the case. Verify if you need this module and configure a polyfill for it.\n\n";
70
- message +=
71
- "If you want to include a polyfill, you need to:\n" +
72
- `\t- add a fallback 'resolve.fallback: { "${request}": require.resolve("${alias}") }'\n` +
73
- `\t- install '${dependency}'\n`;
74
- message +=
75
- "If you don't want to include a polyfill, you can use an empty module like this:\n" +
76
- `\tresolve.fallback: { "${request}": false }`;
77
- }
78
- }
79
-
80
- super(message);
81
-
82
- /** @type {string} */
83
- this.name = "ModuleNotFoundError";
84
- this.details = err.details;
85
- this.module = module;
86
- this.error = err;
87
- this.loc = loc;
88
- }
89
- }
90
-
91
- module.exports = ModuleNotFoundError;
8
+ // TODO remove in webpack 6
9
+ // Some old plugins use `require("webpack/lib/ModuleNotFoundError")`, in webpack@6 developer should migrate to `compiler.webpack.ModuleNotFoundError`
10
+ module.exports = require("./errors/ModuleNotFoundError");
@@ -25,6 +25,11 @@ const WEBASSEMBLY_TYPE = "webassembly";
25
25
  */
26
26
  const ASSET_TYPE = "asset";
27
27
 
28
+ /**
29
+ * @type {Readonly<"asset-url">}
30
+ */
31
+ const ASSET_URL_TYPE = "asset-url";
32
+
28
33
  /**
29
34
  * @type {Readonly<"css">}
30
35
  */
@@ -36,9 +41,14 @@ const CSS_TYPE = "css";
36
41
  const CSS_IMPORT_TYPE = "css-import";
37
42
 
38
43
  /**
39
- * @type {Readonly<"css-url">}
44
+ * @type {Readonly<"css-text">}
40
45
  */
41
- const CSS_URL_TYPE = "css-url";
46
+ const CSS_TEXT_TYPE = "css-text";
47
+
48
+ /**
49
+ * @type {Readonly<"html">}
50
+ */
51
+ const HTML_TYPE = "html";
42
52
 
43
53
  /**
44
54
  * @type {Readonly<"share-init">}
@@ -62,7 +72,7 @@ const UNKNOWN_TYPE = "unknown";
62
72
 
63
73
  /**
64
74
  * Defines the all types type used by this module.
65
- * @typedef {JAVASCRIPT_TYPE | RUNTIME_TYPE | WEBASSEMBLY_TYPE | ASSET_TYPE | CSS_TYPE | CSS_IMPORT_TYPE | CSS_URL_TYPE | SHARED_INIT_TYPE | REMOTE_GENERATOR_TYPE | CONSUME_SHARED_GENERATOR_TYPE | UNKNOWN_TYPE} AllTypes
75
+ * @typedef {JAVASCRIPT_TYPE | RUNTIME_TYPE | WEBASSEMBLY_TYPE | ASSET_TYPE | ASSET_URL_TYPE | CSS_TYPE | CSS_IMPORT_TYPE | CSS_TEXT_TYPE | HTML_TYPE | SHARED_INIT_TYPE | REMOTE_GENERATOR_TYPE | CONSUME_SHARED_GENERATOR_TYPE | UNKNOWN_TYPE} AllTypes
66
76
  */
67
77
 
68
78
  /**
@@ -81,17 +91,17 @@ const ASSET_TYPES = new Set([ASSET_TYPE]);
81
91
  const ASSET_AND_JAVASCRIPT_TYPES = new Set([ASSET_TYPE, JAVASCRIPT_TYPE]);
82
92
 
83
93
  /**
84
- * @type {ReadonlySet<"css-url" | "asset">}
94
+ * @type {ReadonlySet<"asset-url" | "asset">}
85
95
  */
86
- const ASSET_AND_CSS_URL_TYPES = new Set([ASSET_TYPE, CSS_URL_TYPE]);
96
+ const ASSET_AND_ASSET_URL_TYPES = new Set([ASSET_TYPE, ASSET_URL_TYPE]);
87
97
 
88
98
  /**
89
- * @type {ReadonlySet<"javascript" | "css-url" | "asset">}
99
+ * @type {ReadonlySet<"javascript" | "asset-url" | "asset">}
90
100
  */
91
- const ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES = new Set([
101
+ const ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES = new Set([
92
102
  ASSET_TYPE,
93
103
  JAVASCRIPT_TYPE,
94
- CSS_URL_TYPE
104
+ ASSET_URL_TYPE
95
105
  ]);
96
106
 
97
107
  /**
@@ -100,9 +110,12 @@ const ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES = new Set([
100
110
  const JAVASCRIPT_TYPES = new Set([JAVASCRIPT_TYPE]);
101
111
 
102
112
  /**
103
- * @type {ReadonlySet<"javascript" | "css-url">}
113
+ * @type {ReadonlySet<"javascript" | "asset-url">}
104
114
  */
105
- const JAVASCRIPT_AND_CSS_URL_TYPES = new Set([JAVASCRIPT_TYPE, CSS_URL_TYPE]);
115
+ const JAVASCRIPT_AND_ASSET_URL_TYPES = new Set([
116
+ JAVASCRIPT_TYPE,
117
+ ASSET_URL_TYPE
118
+ ]);
106
119
 
107
120
  /**
108
121
  * @type {ReadonlySet<"javascript" | "css">}
@@ -115,14 +128,29 @@ const JAVASCRIPT_AND_CSS_TYPES = new Set([JAVASCRIPT_TYPE, CSS_TYPE]);
115
128
  const CSS_TYPES = new Set([CSS_TYPE]);
116
129
 
117
130
  /**
118
- * @type {ReadonlySet<"css-url">}
131
+ * @type {ReadonlySet<"asset-url">}
132
+ */
133
+ const ASSET_URL_TYPES = new Set([ASSET_URL_TYPE]);
134
+
135
+ /**
136
+ * @type {ReadonlySet<"css-text">}
137
+ */
138
+ const CSS_TEXT_TYPES = new Set([CSS_TEXT_TYPE]);
139
+
140
+ /**
141
+ * @type {ReadonlySet<"javascript" | "css-text">}
119
142
  */
120
- const CSS_URL_TYPES = new Set([CSS_URL_TYPE]);
143
+ const JAVASCRIPT_AND_CSS_TEXT_TYPES = new Set([JAVASCRIPT_TYPE, CSS_TEXT_TYPE]);
121
144
  /**
122
145
  * @type {ReadonlySet<"css-import">}
123
146
  */
124
147
  const CSS_IMPORT_TYPES = new Set([CSS_IMPORT_TYPE]);
125
148
 
149
+ /**
150
+ * @type {ReadonlySet<"html">}
151
+ */
152
+ const HTML_TYPES = new Set([HTML_TYPE]);
153
+
126
154
  /**
127
155
  * @type {ReadonlySet<"webassembly">}
128
156
  */
@@ -151,22 +179,26 @@ const CONSUME_SHARED_TYPES = new Set([CONSUME_SHARED_GENERATOR_TYPE]);
151
179
  */
152
180
  const SHARED_INIT_TYPES = new Set([SHARED_INIT_TYPE]);
153
181
 
154
- module.exports.ASSET_AND_CSS_URL_TYPES = ASSET_AND_CSS_URL_TYPES;
155
- module.exports.ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES =
156
- ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES;
182
+ module.exports.ASSET_AND_ASSET_URL_TYPES = ASSET_AND_ASSET_URL_TYPES;
183
+ module.exports.ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES =
184
+ ASSET_AND_JAVASCRIPT_AND_ASSET_URL_TYPES;
157
185
  module.exports.ASSET_AND_JAVASCRIPT_TYPES = ASSET_AND_JAVASCRIPT_TYPES;
158
186
  module.exports.ASSET_TYPE = ASSET_TYPE;
159
187
  module.exports.ASSET_TYPES = ASSET_TYPES;
188
+ module.exports.ASSET_URL_TYPE = ASSET_URL_TYPE;
189
+ module.exports.ASSET_URL_TYPES = ASSET_URL_TYPES;
160
190
  module.exports.CONSUME_SHARED_TYPES = CONSUME_SHARED_TYPES;
161
191
  module.exports.CSS_IMPORT_TYPE = CSS_IMPORT_TYPE;
162
192
  module.exports.CSS_IMPORT_TYPES = CSS_IMPORT_TYPES;
163
- module.exports.CSS_TYPE = CSS_TYPE;
193
+ module.exports.CSS_TEXT_TYPE = CSS_TEXT_TYPE;
194
+ module.exports.CSS_TEXT_TYPES = CSS_TEXT_TYPES;
164
195
  module.exports.CSS_TYPE = CSS_TYPE;
165
196
  module.exports.CSS_TYPES = CSS_TYPES;
166
- module.exports.CSS_URL_TYPE = CSS_URL_TYPE;
167
- module.exports.CSS_URL_TYPES = CSS_URL_TYPES;
197
+ module.exports.HTML_TYPE = HTML_TYPE;
198
+ module.exports.HTML_TYPES = HTML_TYPES;
199
+ module.exports.JAVASCRIPT_AND_ASSET_URL_TYPES = JAVASCRIPT_AND_ASSET_URL_TYPES;
200
+ module.exports.JAVASCRIPT_AND_CSS_TEXT_TYPES = JAVASCRIPT_AND_CSS_TEXT_TYPES;
168
201
  module.exports.JAVASCRIPT_AND_CSS_TYPES = JAVASCRIPT_AND_CSS_TYPES;
169
- module.exports.JAVASCRIPT_AND_CSS_URL_TYPES = JAVASCRIPT_AND_CSS_URL_TYPES;
170
202
  module.exports.JAVASCRIPT_TYPE = JAVASCRIPT_TYPE;
171
203
  module.exports.JAVASCRIPT_TYPES = JAVASCRIPT_TYPES;
172
204
  module.exports.NO_TYPES = NO_TYPES;
@@ -65,6 +65,13 @@ const CSS_MODULE_TYPE_MODULE = "css/module";
65
65
  */
66
66
  const CSS_MODULE_TYPE_AUTO = "css/auto";
67
67
 
68
+ /**
69
+ * @type {Readonly<"html">}
70
+ * This is the module type used for HTML files when `experiments.html` is enabled.
71
+ * HTML modules are emitted as HTML assets and can be used as entry points.
72
+ */
73
+ const HTML_MODULE_TYPE = "html";
74
+
68
75
  /**
69
76
  * @type {Readonly<"asset">}
70
77
  * This is the module type used for automatically choosing between `asset/inline`, `asset/resource` based on asset size limit (8096).
@@ -140,11 +147,12 @@ const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy";
140
147
  /** @typedef {"javascript/auto" | "javascript/dynamic" | "javascript/esm"} JavaScriptModuleTypes */
141
148
  /** @typedef {"json"} JSONModuleType */
142
149
  /** @typedef {"webassembly/async" | "webassembly/sync"} WebAssemblyModuleTypes */
143
- /** @typedef {"css" | "css/global" | "css/module" | "css/auto"} CSSModuleTypes */
150
+ /** @typedef {"css" | "css/global" | "css/module" | "css/auto"} CssModuleTypes */
151
+ /** @typedef {"html"} HTMLModuleType */
144
152
  /** @typedef {"asset" | "asset/inline" | "asset/resource" | "asset/source" | "asset/raw-data-url"} AssetModuleTypes */
145
153
  /** @typedef {"runtime" | "fallback-module" | "remote-module" | "provide-module" | "consume-shared-module" | "lazy-compilation-proxy"} WebpackModuleTypes */
146
154
  /** @typedef {string} UnknownModuleTypes */
147
- /** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CSSModuleTypes | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
155
+ /** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CssModuleTypes | HTMLModuleType | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */
148
156
 
149
157
  module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE;
150
158
  module.exports.ASSET_MODULE_TYPE_BYTES = ASSET_MODULE_TYPE_BYTES;
@@ -152,7 +160,7 @@ module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE;
152
160
  module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL;
153
161
  module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE;
154
162
  module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE;
155
- /** @type {CSSModuleTypes[]} */
163
+ /** @type {CssModuleTypes[]} */
156
164
  module.exports.CSS_MODULES = [
157
165
  CSS_MODULE_TYPE,
158
166
  CSS_MODULE_TYPE_GLOBAL,
@@ -163,6 +171,7 @@ module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
163
171
  module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO;
164
172
  module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL;
165
173
  module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE;
174
+ module.exports.HTML_MODULE_TYPE = HTML_MODULE_TYPE;
166
175
  /** @type {JavaScriptModuleTypes[]} */
167
176
  module.exports.JAVASCRIPT_MODULES = [
168
177
  JAVASCRIPT_MODULE_TYPE_AUTO,
@@ -8,10 +8,10 @@
8
8
  const asyncLib = require("neo-async");
9
9
  const { MultiHook, SyncHook } = require("tapable");
10
10
 
11
- const ConcurrentCompilationError = require("./ConcurrentCompilationError");
12
11
  const MultiStats = require("./MultiStats");
13
12
  const MultiWatching = require("./MultiWatching");
14
- const WebpackError = require("./WebpackError");
13
+ const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
14
+ const WebpackError = require("./errors/WebpackError");
15
15
  const ArrayQueue = require("./util/ArrayQueue");
16
16
 
17
17
  /**
@@ -10,13 +10,13 @@ const {
10
10
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
11
  JAVASCRIPT_MODULE_TYPE_ESM
12
12
  } = require("./ModuleTypeConstants");
13
- const NodeStuffInWebError = require("./NodeStuffInWebError");
14
13
  const RuntimeGlobals = require("./RuntimeGlobals");
15
14
  const CachedConstDependency = require("./dependencies/CachedConstDependency");
16
15
  const ConstDependency = require("./dependencies/ConstDependency");
17
16
  const ExternalModuleDependency = require("./dependencies/ExternalModuleDependency");
18
17
  const ExternalModuleInitFragmentDependency = require("./dependencies/ExternalModuleInitFragmentDependency");
19
18
  const ImportMetaPlugin = require("./dependencies/ImportMetaPlugin");
19
+ const NodeStuffInWebError = require("./errors/NodeStuffInWebError");
20
20
  const { evaluateToString } = require("./javascript/JavascriptParserHelpers");
21
21
  const { relative } = require("./util/fs");
22
22
  const { parseResource } = require("./util/identifier");