webpack 5.100.2 → 5.101.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 (309) 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 +63 -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 +168 -116
  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/Dependency.js +2 -1
  26. package/lib/DllEntryPlugin.js +1 -1
  27. package/lib/DllReferencePlugin.js +1 -1
  28. package/lib/DynamicEntryPlugin.js +3 -3
  29. package/lib/EntryPlugin.js +1 -1
  30. package/lib/EnvironmentPlugin.js +1 -1
  31. package/lib/ErrorHelpers.js +2 -2
  32. package/lib/EvalDevToolModulePlugin.js +2 -2
  33. package/lib/EvalSourceMapDevToolPlugin.js +5 -5
  34. package/lib/ExportsInfo.js +9 -9
  35. package/lib/ExportsInfoApiPlugin.js +2 -2
  36. package/lib/ExternalModule.js +163 -48
  37. package/lib/ExternalModuleFactoryPlugin.js +2 -2
  38. package/lib/ExternalsPlugin.js +45 -0
  39. package/lib/FileSystemInfo.js +64 -61
  40. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  41. package/lib/FlagDependencyExportsPlugin.js +7 -7
  42. package/lib/FlagDependencyUsagePlugin.js +4 -4
  43. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  44. package/lib/HotModuleReplacementPlugin.js +27 -27
  45. package/lib/IgnorePlugin.js +3 -3
  46. package/lib/IgnoreWarningsPlugin.js +4 -4
  47. package/lib/InitFragment.js +6 -0
  48. package/lib/InvalidDependenciesModuleWarning.js +1 -1
  49. package/lib/JavascriptMetaInfoPlugin.js +1 -1
  50. package/lib/LibManifestPlugin.js +2 -2
  51. package/lib/LoaderOptionsPlugin.js +1 -1
  52. package/lib/LoaderTargetPlugin.js +2 -2
  53. package/lib/MainTemplate.js +1 -1
  54. package/lib/Module.js +3 -2
  55. package/lib/ModuleFilenameHelpers.js +3 -3
  56. package/lib/ModuleGraph.js +23 -38
  57. package/lib/ModuleInfoHeaderPlugin.js +3 -3
  58. package/lib/ModuleParseError.js +5 -3
  59. package/lib/ModuleTemplate.js +3 -2
  60. package/lib/MultiCompiler.js +29 -24
  61. package/lib/MultiStats.js +18 -13
  62. package/lib/MultiWatching.js +1 -1
  63. package/lib/NoEmitOnErrorsPlugin.js +2 -2
  64. package/lib/NodeStuffPlugin.js +27 -15
  65. package/lib/NormalModule.js +23 -23
  66. package/lib/NormalModuleFactory.js +23 -21
  67. package/lib/NormalModuleReplacementPlugin.js +3 -3
  68. package/lib/PrefetchPlugin.js +1 -1
  69. package/lib/ProgressPlugin.js +11 -11
  70. package/lib/ProvidePlugin.js +2 -2
  71. package/lib/RecordIdsPlugin.js +3 -3
  72. package/lib/ResolverFactory.js +3 -3
  73. package/lib/RuntimeGlobals.js +20 -0
  74. package/lib/RuntimePlugin.js +16 -16
  75. package/lib/RuntimeTemplate.js +35 -26
  76. package/lib/SizeFormatHelpers.js +1 -1
  77. package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -4
  78. package/lib/SourceMapDevToolPlugin.js +9 -9
  79. package/lib/Stats.js +2 -2
  80. package/lib/Template.js +1 -1
  81. package/lib/TemplatedPathPlugin.js +2 -2
  82. package/lib/UseStrictPlugin.js +1 -1
  83. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
  84. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  85. package/lib/WarnNoModeSetPlugin.js +1 -1
  86. package/lib/WatchIgnorePlugin.js +2 -2
  87. package/lib/Watching.js +12 -14
  88. package/lib/WebpackIsIncludedPlugin.js +2 -2
  89. package/lib/WebpackOptionsApply.js +3 -3
  90. package/lib/asset/AssetGenerator.js +1 -1
  91. package/lib/asset/AssetModulesPlugin.js +6 -6
  92. package/lib/async-modules/AsyncModuleHelpers.js +1 -1
  93. package/lib/async-modules/AwaitDependenciesInitFragment.js +36 -24
  94. package/lib/async-modules/InferAsyncModulesPlugin.js +3 -3
  95. package/lib/buildChunkGraph.js +5 -5
  96. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  97. package/lib/cache/IdleFileCachePlugin.js +5 -5
  98. package/lib/cache/PackFileCacheStrategy.js +20 -20
  99. package/lib/cache/ResolverCachePlugin.js +4 -4
  100. package/lib/cli.js +196 -14
  101. package/lib/config/browserslistTargetHandler.js +6 -6
  102. package/lib/config/defaults.js +23 -14
  103. package/lib/config/normalization.js +41 -38
  104. package/lib/config/target.js +4 -4
  105. package/lib/container/ContainerEntryModule.js +3 -3
  106. package/lib/container/ContainerPlugin.js +3 -3
  107. package/lib/container/ContainerReferencePlugin.js +3 -3
  108. package/lib/container/FallbackModule.js +1 -1
  109. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  110. package/lib/container/options.js +4 -4
  111. package/lib/css/CssGenerator.js +5 -3
  112. package/lib/css/CssLoadingRuntimeModule.js +1 -1
  113. package/lib/css/CssModulesPlugin.js +25 -22
  114. package/lib/css/CssParser.js +5 -5
  115. package/lib/css/walkCssTokens.js +9 -9
  116. package/lib/debug/ProfilingPlugin.js +5 -5
  117. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +4 -4
  118. package/lib/dependencies/AMDPlugin.js +3 -3
  119. package/lib/dependencies/AMDRequireArrayDependency.js +1 -1
  120. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +3 -3
  121. package/lib/dependencies/CommonJsExportRequireDependency.js +2 -2
  122. package/lib/dependencies/CommonJsExportsParserPlugin.js +12 -10
  123. package/lib/dependencies/CommonJsImportsParserPlugin.js +21 -19
  124. package/lib/dependencies/CommonJsPlugin.js +2 -2
  125. package/lib/dependencies/ContextDependency.js +1 -1
  126. package/lib/dependencies/ContextDependencyHelpers.js +3 -3
  127. package/lib/dependencies/CssIcssExportDependency.js +2 -2
  128. package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
  129. package/lib/dependencies/CssUrlDependency.js +4 -4
  130. package/lib/dependencies/DynamicExports.js +5 -5
  131. package/lib/dependencies/HarmonyAcceptDependency.js +91 -5
  132. package/lib/dependencies/HarmonyDetectionParserPlugin.js +2 -2
  133. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +17 -13
  134. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +7 -8
  135. package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
  136. package/lib/dependencies/HarmonyExports.js +1 -1
  137. package/lib/dependencies/HarmonyImportDependency.js +28 -9
  138. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +56 -48
  139. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -5
  140. package/lib/dependencies/HarmonyImportSpecifierDependency.js +3 -4
  141. package/lib/dependencies/HarmonyModulesPlugin.js +2 -8
  142. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -1
  143. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -4
  144. package/lib/dependencies/ImportMetaPlugin.js +7 -7
  145. package/lib/dependencies/ImportParserPlugin.js +4 -4
  146. package/lib/dependencies/JsonExportsDependency.js +7 -2
  147. package/lib/dependencies/LoaderPlugin.js +4 -4
  148. package/lib/dependencies/ModuleDependency.js +2 -1
  149. package/lib/dependencies/ProvidedDependency.js +2 -2
  150. package/lib/dependencies/PureExpressionDependency.js +1 -1
  151. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  152. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -1
  153. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -3
  154. package/lib/dependencies/SystemPlugin.js +3 -3
  155. package/lib/dependencies/WorkerPlugin.js +5 -5
  156. package/lib/dependencies/getFunctionExpression.js +1 -1
  157. package/lib/esm/ExportWebpackRequireRuntimeModule.js +8 -1
  158. package/lib/esm/ModuleChunkFormatPlugin.js +35 -69
  159. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -6
  160. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +15 -11
  161. package/lib/formatLocation.js +2 -2
  162. package/lib/hmr/HotModuleReplacement.runtime.js +39 -27
  163. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -32
  164. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -1
  165. package/lib/hmr/LazyCompilationPlugin.js +6 -6
  166. package/lib/hmr/lazyCompilationBackend.js +6 -6
  167. package/lib/ids/ChunkModuleIdRangePlugin.js +4 -4
  168. package/lib/ids/DeterministicChunkIdsPlugin.js +5 -4
  169. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  170. package/lib/ids/HashedModuleIdsPlugin.js +1 -1
  171. package/lib/ids/IdHelpers.js +9 -9
  172. package/lib/ids/NamedChunkIdsPlugin.js +5 -5
  173. package/lib/ids/NamedModuleIdsPlugin.js +2 -2
  174. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  175. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  176. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -2
  177. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -4
  178. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  179. package/lib/index.js +18 -6
  180. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  181. package/lib/javascript/BasicEvaluatedExpression.js +3 -3
  182. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  183. package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -21
  184. package/lib/javascript/EnableChunkLoadingPlugin.js +1 -1
  185. package/lib/javascript/JavascriptGenerator.js +1 -1
  186. package/lib/javascript/JavascriptModulesPlugin.js +108 -54
  187. package/lib/javascript/JavascriptParser.js +80 -78
  188. package/lib/javascript/JavascriptParserHelpers.js +3 -3
  189. package/lib/javascript/StartupHelpers.js +2 -2
  190. package/lib/json/JsonGenerator.js +2 -2
  191. package/lib/json/JsonModulesPlugin.js +2 -2
  192. package/lib/library/AbstractLibraryPlugin.js +30 -3
  193. package/lib/library/AmdLibraryPlugin.js +3 -3
  194. package/lib/library/AssignLibraryPlugin.js +2 -2
  195. package/lib/library/EnableLibraryPlugin.js +2 -2
  196. package/lib/library/ModuleLibraryPlugin.js +49 -31
  197. package/lib/library/SystemLibraryPlugin.js +6 -4
  198. package/lib/library/UmdLibraryPlugin.js +14 -14
  199. package/lib/logging/createConsoleLogger.js +4 -4
  200. package/lib/logging/runtime.js +3 -3
  201. package/lib/logging/truncateArgs.js +4 -4
  202. package/lib/node/CommonJsChunkLoadingPlugin.js +2 -2
  203. package/lib/node/NodeEnvironmentPlugin.js +1 -1
  204. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +16 -14
  205. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +7 -7
  206. package/lib/node/ReadFileCompileWasmPlugin.js +7 -7
  207. package/lib/node/RequireChunkLoadingRuntimeModule.js +13 -6
  208. package/lib/node/nodeConsole.js +2 -2
  209. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  210. package/lib/optimize/AggressiveSplittingPlugin.js +10 -10
  211. package/lib/optimize/ConcatenatedModule.js +186 -77
  212. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -2
  213. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  214. package/lib/optimize/InnerGraph.js +5 -5
  215. package/lib/optimize/InnerGraphPlugin.js +14 -12
  216. package/lib/optimize/LimitChunkCountPlugin.js +5 -5
  217. package/lib/optimize/MangleExportsPlugin.js +5 -5
  218. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -2
  219. package/lib/optimize/MinChunkSizePlugin.js +3 -3
  220. package/lib/optimize/ModuleConcatenationPlugin.js +45 -38
  221. package/lib/optimize/RealContentHashPlugin.js +23 -23
  222. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  223. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  224. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  225. package/lib/optimize/SideEffectsFlagPlugin.js +5 -5
  226. package/lib/optimize/SplitChunksPlugin.js +20 -20
  227. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  228. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  229. package/lib/performance/SizeLimitsPlugin.js +4 -4
  230. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  231. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -3
  232. package/lib/rules/BasicMatcherRulePlugin.js +1 -1
  233. package/lib/rules/RuleSetCompiler.js +10 -10
  234. package/lib/rules/UseEffectRulePlugin.js +2 -2
  235. package/lib/runtime/GetChunkFilenameRuntimeModule.js +19 -15
  236. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  237. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  238. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +1 -1
  239. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  240. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  241. package/lib/schemes/DataUriPlugin.js +3 -3
  242. package/lib/schemes/FileUriPlugin.js +1 -1
  243. package/lib/schemes/HttpUriPlugin.js +40 -36
  244. package/lib/schemes/VirtualUrlPlugin.js +1 -1
  245. package/lib/serialization/BinaryMiddleware.js +11 -11
  246. package/lib/serialization/FileMiddleware.js +18 -17
  247. package/lib/serialization/ObjectMiddleware.js +8 -8
  248. package/lib/serialization/Serializer.js +2 -2
  249. package/lib/serialization/SerializerMiddleware.js +2 -2
  250. package/lib/sharing/ConsumeSharedPlugin.js +4 -4
  251. package/lib/sharing/ProvideSharedPlugin.js +4 -4
  252. package/lib/sharing/SharePlugin.js +1 -1
  253. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  254. package/lib/stats/DefaultStatsFactoryPlugin.js +85 -80
  255. package/lib/stats/DefaultStatsPresetPlugin.js +15 -15
  256. package/lib/stats/DefaultStatsPrinterPlugin.js +87 -87
  257. package/lib/stats/StatsFactory.js +7 -7
  258. package/lib/stats/StatsPrinter.js +9 -9
  259. package/lib/url/URLParserPlugin.js +5 -5
  260. package/lib/util/AsyncQueue.js +4 -4
  261. package/lib/util/IterableHelpers.js +2 -2
  262. package/lib/util/LazyBucketSortedSet.js +3 -3
  263. package/lib/util/SetHelpers.js +2 -2
  264. package/lib/util/StackedCacheMap.js +1 -1
  265. package/lib/util/StackedMap.js +1 -1
  266. package/lib/util/TupleSet.js +1 -1
  267. package/lib/util/WeakTupleMap.js +1 -1
  268. package/lib/util/cleverMerge.js +8 -8
  269. package/lib/util/comparators.js +10 -10
  270. package/lib/util/compileBooleanMatcher.js +20 -20
  271. package/lib/util/concatenate.js +3 -3
  272. package/lib/util/conventions.js +4 -4
  273. package/lib/util/create-schema-validation.js +1 -1
  274. package/lib/util/createHash.js +1 -1
  275. package/lib/util/deprecation.js +4 -4
  276. package/lib/util/deterministicGrouping.js +7 -7
  277. package/lib/util/findGraphRoots.js +1 -1
  278. package/lib/util/fs.js +4 -4
  279. package/lib/util/identifier.js +14 -14
  280. package/lib/util/magicComment.js +5 -1
  281. package/lib/util/memoize.js +1 -1
  282. package/lib/util/processAsyncTree.js +2 -2
  283. package/lib/util/propertyName.js +1 -1
  284. package/lib/util/removeBOM.js +1 -1
  285. package/lib/util/runtime.js +6 -6
  286. package/lib/util/semver.js +16 -16
  287. package/lib/util/serialization.js +5 -5
  288. package/lib/util/smartGrouping.js +1 -1
  289. package/lib/validateSchema.js +2 -2
  290. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  291. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -1
  292. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +1 -1
  293. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +4 -4
  294. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +13 -9
  295. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  296. package/lib/wasm-sync/WebAssemblyGenerator.js +16 -17
  297. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -2
  298. package/lib/wasm-sync/WebAssemblyParser.js +2 -2
  299. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  300. package/lib/web/FetchCompileWasmPlugin.js +4 -4
  301. package/lib/web/JsonpChunkLoadingPlugin.js +2 -2
  302. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -1
  303. package/lib/webpack.js +17 -12
  304. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +2 -2
  305. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  306. package/package.json +16 -16
  307. package/schemas/WebpackOptions.check.js +1 -1
  308. package/schemas/WebpackOptions.json +4 -0
  309. package/types.d.ts +275 -64
@@ -62,7 +62,7 @@ module.exports = class ImportMetaContextDependencyParserPlugin {
62
62
  apply(parser) {
63
63
  parser.hooks.evaluateIdentifier
64
64
  .for("import.meta.webpackContext")
65
- .tap(PLUGIN_NAME, expr =>
65
+ .tap(PLUGIN_NAME, (expr) =>
66
66
  evaluateToIdentifier(
67
67
  "import.meta.webpackContext",
68
68
  "import.meta",
@@ -72,7 +72,7 @@ module.exports = class ImportMetaContextDependencyParserPlugin {
72
72
  );
73
73
  parser.hooks.call
74
74
  .for("import.meta.webpackContext")
75
- .tap(PLUGIN_NAME, expr => {
75
+ .tap(PLUGIN_NAME, (expr) => {
76
76
  if (expr.arguments.length < 1 || expr.arguments.length > 2) return;
77
77
  const [directoryNode, optionsNode] = expr.arguments;
78
78
  if (optionsNode && optionsNode.type !== "ObjectExpression") return;
@@ -178,11 +178,11 @@ module.exports = class ImportMetaContextDependencyParserPlugin {
178
178
  /** @type {BasicEvaluatedExpression[]} */
179
179
  (expr.items);
180
180
  if (
181
- items.every(i => {
181
+ items.every((i) => {
182
182
  if (!i.isArray()) return false;
183
183
  const innerItems =
184
184
  /** @type {BasicEvaluatedExpression[]} */ (i.items);
185
- return innerItems.every(i => i.isString());
185
+ return innerItems.every((i) => i.isString());
186
186
  })
187
187
  ) {
188
188
  exports = [];
@@ -49,7 +49,7 @@ class ImportMetaPlugin {
49
49
  * @param {NormalModule} module module
50
50
  * @returns {string} file url
51
51
  */
52
- const getUrl = module => pathToFileURL(module.resource).toString();
52
+ const getUrl = (module) => pathToFileURL(module.resource).toString();
53
53
  /**
54
54
  * @param {Parser} parser parser parser
55
55
  * @param {JavascriptParserOptions} parserOptions parserOptions
@@ -62,7 +62,7 @@ class ImportMetaPlugin {
62
62
 
63
63
  parser.hooks.expression
64
64
  .for("import.meta")
65
- .tap(PLUGIN_NAME, metaProperty => {
65
+ .tap(PLUGIN_NAME, (metaProperty) => {
66
66
  const dep = new ConstDependency(
67
67
  /** @type {string} */ (importMetaName),
68
68
  /** @type {Range} */ (metaProperty.range)
@@ -86,7 +86,7 @@ class ImportMetaPlugin {
86
86
  * @param {string[]} members members
87
87
  * @returns {string} error message
88
88
  */
89
- const importMetaUnknownProperty = members =>
89
+ const importMetaUnknownProperty = (members) =>
90
90
  `${Template.toNormalComment(
91
91
  `unsupported import.meta.${members.join(".")}`
92
92
  )} undefined${propertyAccess(members, 1)}`;
@@ -98,7 +98,7 @@ class ImportMetaPlugin {
98
98
  );
99
99
  parser.hooks.expression
100
100
  .for("import.meta")
101
- .tap(PLUGIN_NAME, metaProperty => {
101
+ .tap(PLUGIN_NAME, (metaProperty) => {
102
102
  const referencedPropertiesInDestructuring =
103
103
  parser.destructuringAssignmentPropertiesFor(metaProperty);
104
104
  if (!referencedPropertiesInDestructuring) {
@@ -169,7 +169,7 @@ class ImportMetaPlugin {
169
169
  );
170
170
  parser.hooks.expression
171
171
  .for("import.meta.url")
172
- .tap(PLUGIN_NAME, expr => {
172
+ .tap(PLUGIN_NAME, (expr) => {
173
173
  const dep = new ConstDependency(
174
174
  importMetaUrl(),
175
175
  /** @type {Range} */ (expr.range)
@@ -183,7 +183,7 @@ class ImportMetaPlugin {
183
183
  .tap(PLUGIN_NAME, evaluateToString("string"));
184
184
  parser.hooks.evaluateIdentifier
185
185
  .for("import.meta.url")
186
- .tap(PLUGIN_NAME, expr =>
186
+ .tap(PLUGIN_NAME, (expr) =>
187
187
  new BasicEvaluatedExpression()
188
188
  .setString(getUrl(parser.state.module))
189
189
  .setRange(/** @type {Range} */ (expr.range))
@@ -223,7 +223,7 @@ class ImportMetaPlugin {
223
223
  });
224
224
  parser.hooks.evaluate
225
225
  .for("MemberExpression")
226
- .tap(PLUGIN_NAME, expression => {
226
+ .tap(PLUGIN_NAME, (expression) => {
227
227
  const expr = /** @type {MemberExpression} */ (expression);
228
228
  if (
229
229
  expr.object.type === "MetaProperty" &&
@@ -44,9 +44,9 @@ class ImportParserPlugin {
44
44
  * @param {Iterable<T>} enumerable enumerable
45
45
  * @returns {T[][]} array of array
46
46
  */
47
- const exportsFromEnumerable = enumerable =>
48
- Array.from(enumerable, e => [e]);
49
- parser.hooks.importCall.tap(PLUGIN_NAME, expr => {
47
+ const exportsFromEnumerable = (enumerable) =>
48
+ Array.from(enumerable, (e) => [e]);
49
+ parser.hooks.importCall.tap(PLUGIN_NAME, (expr) => {
50
50
  const param = parser.evaluateExpression(expr.source);
51
51
 
52
52
  let chunkName = null;
@@ -240,7 +240,7 @@ class ImportParserPlugin {
240
240
  typeof importOptions.webpackExports === "string" ||
241
241
  (Array.isArray(importOptions.webpackExports) &&
242
242
  /** @type {string[]} */ (importOptions.webpackExports).every(
243
- item => typeof item === "string"
243
+ (item) => typeof item === "string"
244
244
  ))
245
245
  )
246
246
  ) {
@@ -30,7 +30,7 @@ const NullDependency = require("./NullDependency");
30
30
  * @param {number} exportsDepth exportsDepth
31
31
  * @returns {GetExportsFromDataFn} value
32
32
  */
33
- const getExportsWithDepth = exportsDepth =>
33
+ const getExportsWithDepth = (exportsDepth) =>
34
34
  /** @type {GetExportsFromDataFn} */
35
35
  function getExportsFromData(data, curDepth = 1) {
36
36
  if (curDepth > exportsDepth) {
@@ -55,7 +55,12 @@ const getExportsWithDepth = exportsDepth =>
55
55
  exports.push({
56
56
  name: key,
57
57
  canMangle: true,
58
- exports: getExportsFromData(data[key], curDepth + 1) || undefined
58
+ exports:
59
+ getExportsFromData(
60
+ /** @type {JsonValue} */
61
+ (data[key]),
62
+ curDepth + 1
63
+ ) || undefined
59
64
  });
60
65
  }
61
66
 
@@ -54,11 +54,11 @@ class LoaderPlugin {
54
54
  }
55
55
  );
56
56
 
57
- compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
57
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
58
58
  const moduleGraph = compilation.moduleGraph;
59
59
  NormalModule.getCompilationHooks(compilation).loader.tap(
60
60
  PLUGIN_NAME,
61
- loaderContext => {
61
+ (loaderContext) => {
62
62
  loaderContext.loadModule = (request, callback) => {
63
63
  const dep = new LoaderDependency(request);
64
64
  dep.loc = {
@@ -91,7 +91,7 @@ class LoaderPlugin {
91
91
  context: loaderContext.context,
92
92
  recursive: false
93
93
  },
94
- err => {
94
+ (err) => {
95
95
  compilation.factorizeQueue.setContext(oldFactorizeQueueContext);
96
96
  compilation.addModuleQueue.setContext(oldAddModuleQueueContext);
97
97
  compilation.buildQueue.decreaseParallelism();
@@ -196,7 +196,7 @@ class LoaderPlugin {
196
196
  connectOrigin: false,
197
197
  checkCycle: true
198
198
  },
199
- err => {
199
+ (err) => {
200
200
  compilation.factorizeQueue.setContext(oldFactorizeQueueContext);
201
201
  compilation.addModuleQueue.setContext(oldAddModuleQueueContext);
202
202
  compilation.buildQueue.decreaseParallelism();
@@ -7,7 +7,6 @@
7
7
 
8
8
  const Dependency = require("../Dependency");
9
9
  const DependencyTemplate = require("../DependencyTemplate");
10
- const RawModule = require("../RawModule");
11
10
 
12
11
  /** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
13
12
  /** @typedef {import("../Module")} Module */
@@ -61,6 +60,8 @@ class ModuleDependency extends Dependency {
61
60
  * @returns {Module} ignored module
62
61
  */
63
62
  createIgnoredModule(context) {
63
+ const RawModule = require("../RawModule");
64
+
64
65
  const module = new RawModule(
65
66
  "/* (ignored) */",
66
67
  `ignored|${context}|${this.request}`,
@@ -29,9 +29,9 @@ const ModuleDependency = require("./ModuleDependency");
29
29
  * @param {string[]|null} path the property path array
30
30
  * @returns {string} the converted path
31
31
  */
32
- const pathToString = path =>
32
+ const pathToString = (path) =>
33
33
  path !== null && path.length > 0
34
- ? path.map(part => `[${JSON.stringify(part)}]`).join("")
34
+ ? path.map((part) => `[${JSON.stringify(part)}]`).join("")
35
35
  : "";
36
36
 
37
37
  class ProvidedDependency extends ModuleDependency {
@@ -47,7 +47,7 @@ class PureExpressionDependency extends NullDependency {
47
47
  /** @type {Module} */
48
48
  (moduleGraph.getParentModule(this));
49
49
  const exportsInfo = moduleGraph.getExportsInfo(selfModule);
50
- const runtimeCondition = filterRuntime(runtime, runtime => {
50
+ const runtimeCondition = filterRuntime(runtime, (runtime) => {
51
51
  for (const exportName of usedByExports) {
52
52
  if (exportsInfo.getUsed(exportName, runtime) !== UsageState.Unused) {
53
53
  return true;
@@ -20,7 +20,7 @@ module.exports = class RequireContextDependencyParserPlugin {
20
20
  * @returns {void}
21
21
  */
22
22
  apply(parser) {
23
- parser.hooks.call.for("require.context").tap(PLUGIN_NAME, expr => {
23
+ parser.hooks.call.for("require.context").tap(PLUGIN_NAME, (expr) => {
24
24
  let regExp = /^\.\/.*$/;
25
25
  let recursive = true;
26
26
  /** @type {ContextMode} */
@@ -25,7 +25,7 @@ module.exports = class RequireEnsureDependenciesBlockParserPlugin {
25
25
  * @returns {void}
26
26
  */
27
27
  apply(parser) {
28
- parser.hooks.call.for("require.ensure").tap(PLUGIN_NAME, expr => {
28
+ parser.hooks.call.for("require.ensure").tap(PLUGIN_NAME, (expr) => {
29
29
  /** @type {string | GroupOptions | null} */
30
30
  let chunkName = null;
31
31
  let errorExpressionArg = null;
@@ -33,7 +33,7 @@ module.exports = class RequireIncludeDependencyParserPlugin {
33
33
  */
34
34
  apply(parser) {
35
35
  const { warn } = this;
36
- parser.hooks.call.for("require.include").tap(PLUGIN_NAME, expr => {
36
+ parser.hooks.call.for("require.include").tap(PLUGIN_NAME, (expr) => {
37
37
  if (expr.arguments.length !== 1) return;
38
38
  const param = parser.evaluateExpression(expr.arguments[0]);
39
39
  if (!param.isString()) return;
@@ -57,7 +57,7 @@ module.exports = class RequireIncludeDependencyParserPlugin {
57
57
  });
58
58
  parser.hooks.evaluateTypeof
59
59
  .for("require.include")
60
- .tap(PLUGIN_NAME, expr => {
60
+ .tap(PLUGIN_NAME, (expr) => {
61
61
  if (warn) {
62
62
  parser.state.module.addWarning(
63
63
  new RequireIncludeDeprecationWarning(
@@ -67,7 +67,7 @@ module.exports = class RequireIncludeDependencyParserPlugin {
67
67
  }
68
68
  return evaluateToString("function")(expr);
69
69
  });
70
- parser.hooks.typeof.for("require.include").tap(PLUGIN_NAME, expr => {
70
+ parser.hooks.typeof.for("require.include").tap(PLUGIN_NAME, (expr) => {
71
71
  if (warn) {
72
72
  parser.state.module.addWarning(
73
73
  new RequireIncludeDeprecationWarning(
@@ -63,7 +63,7 @@ class SystemPlugin {
63
63
  /**
64
64
  * @param {string} name name
65
65
  */
66
- const setNotSupported = name => {
66
+ const setNotSupported = (name) => {
67
67
  parser.hooks.evaluateTypeof
68
68
  .for(name)
69
69
  .tap(PLUGIN_NAME, evaluateToString("undefined"));
@@ -101,7 +101,7 @@ class SystemPlugin {
101
101
  setNotSupported("System.get");
102
102
  setNotSupported("System.register");
103
103
 
104
- parser.hooks.expression.for("System").tap(PLUGIN_NAME, expr => {
104
+ parser.hooks.expression.for("System").tap(PLUGIN_NAME, (expr) => {
105
105
  const dep = new ConstDependency(
106
106
  RuntimeGlobals.system,
107
107
  /** @type {Range} */ (expr.range),
@@ -112,7 +112,7 @@ class SystemPlugin {
112
112
  return true;
113
113
  });
114
114
 
115
- parser.hooks.call.for("System.import").tap(PLUGIN_NAME, expr => {
115
+ parser.hooks.call.for("System.import").tap(PLUGIN_NAME, (expr) => {
116
116
  parser.state.module.addWarning(
117
117
  new SystemImportDeprecationWarning(
118
118
  /** @type {DependencyLocation} */ (expr.loc)
@@ -54,7 +54,7 @@ const WorkerDependency = require("./WorkerDependency");
54
54
  * @param {NormalModule} module module
55
55
  * @returns {string} url
56
56
  */
57
- const getUrl = module => pathToFileURL(module.resource).toString();
57
+ const getUrl = (module) => pathToFileURL(module.resource).toString();
58
58
 
59
59
  const WorkerSpecifierTag = Symbol("worker specifier tag");
60
60
 
@@ -253,7 +253,7 @@ class WorkerPlugin {
253
253
  * @param {CallExpression} expr expression
254
254
  * @returns {boolean | void} true when handled
255
255
  */
256
- const handleNewWorker = expr => {
256
+ const handleNewWorker = (expr) => {
257
257
  if (expr.arguments.length === 0 || expr.arguments.length > 2) {
258
258
  return;
259
259
  }
@@ -483,7 +483,7 @@ class WorkerPlugin {
483
483
  /**
484
484
  * @param {string} item item
485
485
  */
486
- const processItem = item => {
486
+ const processItem = (item) => {
487
487
  if (
488
488
  item.startsWith("*") &&
489
489
  item.includes(".") &&
@@ -505,7 +505,7 @@ class WorkerPlugin {
505
505
  }
506
506
  }
507
507
  );
508
- parser.hooks.pattern.for(pattern).tap(PLUGIN_NAME, pattern => {
508
+ parser.hooks.pattern.for(pattern).tap(PLUGIN_NAME, (pattern) => {
509
509
  parser.tagVariable(pattern.name, WorkerSpecifierTag);
510
510
  return true;
511
511
  });
@@ -530,7 +530,7 @@ class WorkerPlugin {
530
530
  const source = match[3];
531
531
  (call ? parser.hooks.call : parser.hooks.new)
532
532
  .for(harmonySpecifierTag)
533
- .tap(PLUGIN_NAME, expr => {
533
+ .tap(PLUGIN_NAME, (expr) => {
534
534
  const settings = /** @type {HarmonySettings} */ (
535
535
  parser.currentTagData
536
536
  );
@@ -14,7 +14,7 @@
14
14
  * @param {Expression | SpreadElement} expr expressions
15
15
  * @returns {{fn: FunctionExpression | ArrowFunctionExpression, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined } | undefined} function expression with additional information
16
16
  */
17
- module.exports = expr => {
17
+ module.exports = (expr) => {
18
18
  // <FunctionExpression>
19
19
  if (
20
20
  expr.type === "FunctionExpression" ||
@@ -6,6 +6,10 @@
6
6
 
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
+ const Template = require("../Template");
10
+
11
+ // CompatibilityPlugin renames `__webpack_require__` but doesn’t account for `export { __webpack_require__ }`, so we create a temporary variable to handle it.
12
+ const EXPORT_TEMP_NAME = "__webpack_require_temp__";
9
13
 
10
14
  class ExportWebpackRequireRuntimeModule extends RuntimeModule {
11
15
  constructor() {
@@ -23,7 +27,10 @@ class ExportWebpackRequireRuntimeModule extends RuntimeModule {
23
27
  * @returns {string | null} runtime code
24
28
  */
25
29
  generate() {
26
- return `export default ${RuntimeGlobals.require};`;
30
+ return Template.asString([
31
+ `var ${EXPORT_TEMP_NAME} = ${RuntimeGlobals.require};`,
32
+ `export { ${EXPORT_TEMP_NAME} as ${RuntimeGlobals.require} };`
33
+ ]);
27
34
  }
28
35
  }
29
36
 
@@ -8,13 +8,16 @@
8
8
  const { ConcatSource } = require("webpack-sources");
9
9
  const { HotUpdateChunk, RuntimeGlobals } = require("..");
10
10
  const Template = require("../Template");
11
+ const {
12
+ createChunkHashHandler,
13
+ getChunkInfo
14
+ } = require("../javascript/ChunkFormatHelpers");
11
15
  const { getAllChunks } = require("../javascript/ChunkHelpers");
12
16
  const {
13
17
  chunkHasJs,
14
18
  getChunkFilenameTemplate,
15
19
  getCompilationHooks
16
20
  } = require("../javascript/JavascriptModulesPlugin");
17
- const { updateHashForEntryStartup } = require("../javascript/StartupHelpers");
18
21
  const { getUndoPath } = require("../util/identifier");
19
22
 
20
23
  /** @typedef {import("webpack-sources").Source} Source */
@@ -27,28 +30,6 @@ const { getUndoPath } = require("../util/identifier");
27
30
  /** @typedef {import("../Module")} Module */
28
31
  /** @typedef {import("../javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
29
32
 
30
- /**
31
- * Gets information about a chunk including its entries and runtime chunk
32
- * @param {Chunk} chunk The chunk to get information for
33
- * @param {ChunkGraph} chunkGraph The chunk graph containing the chunk
34
- * @returns {{entries: Array<[Module, Entrypoint | undefined]>, runtimeChunk: Chunk|null}} Object containing chunk entries and runtime chunk
35
- */
36
- function getChunkInfo(chunk, chunkGraph) {
37
- const entries = [
38
- ...chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)
39
- ];
40
- const runtimeChunk =
41
- entries.length > 0
42
- ? /** @type {Entrypoint[][]} */
43
- (entries)[0][1].getRuntimeChunk()
44
- : null;
45
-
46
- return {
47
- entries,
48
- runtimeChunk
49
- };
50
- }
51
-
52
33
  /**
53
34
  * @param {Compilation} compilation the compilation instance
54
35
  * @param {Chunk} chunk the chunk
@@ -97,7 +78,7 @@ const getRelativePath = (compilation, chunk, runtimeChunk) => {
97
78
  * @returns {string} the import source
98
79
  */
99
80
  function renderChunkImport(compilation, chunk, namedImport, runtimeChunk) {
100
- return `import ${namedImport ? `* as ${namedImport}` : RuntimeGlobals.require} from ${JSON.stringify(
81
+ return `import ${namedImport ? `* as ${namedImport}` : `{ ${RuntimeGlobals.require} }`} from ${JSON.stringify(
101
82
  getRelativePath(compilation, chunk, runtimeChunk || chunk)
102
83
  )};\n`;
103
84
  }
@@ -119,7 +100,7 @@ class ModuleChunkFormatPlugin {
119
100
  * @returns {void}
120
101
  */
121
102
  apply(compiler) {
122
- compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
103
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
123
104
  compilation.hooks.additionalChunkRuntimeRequirements.tap(
124
105
  PLUGIN_NAME,
125
106
  (chunk, set) => {
@@ -168,27 +149,30 @@ class ModuleChunkFormatPlugin {
168
149
  PLUGIN_NAME,
169
150
  (modules, _lastModule, renderContext) => {
170
151
  const { chunk, chunkGraph } = renderContext;
171
- if (!chunk.hasRuntime()) {
172
- return modules;
173
- }
174
- const entryDependentChunks =
175
- chunkGraph.getChunkEntryDependentChunksIterable(chunk);
176
- const sourceWithDependentChunks = withDependentChunks(
177
- /** @type {Set<Chunk>} */ (entryDependentChunks),
178
- chunkGraph,
179
- chunk
180
- );
181
- if (!sourceWithDependentChunks) {
182
- return modules;
183
- }
184
- if (modules.size() === 0) {
185
- return sourceWithDependentChunks;
152
+ if (
153
+ chunkGraph.getNumberOfEntryModules(chunk) > 0 &&
154
+ chunk.hasRuntime()
155
+ ) {
156
+ const entryDependentChunks =
157
+ chunkGraph.getChunkEntryDependentChunksIterable(chunk);
158
+ const sourceWithDependentChunks = withDependentChunks(
159
+ /** @type {Set<Chunk>} */ (entryDependentChunks),
160
+ chunkGraph,
161
+ chunk
162
+ );
163
+ if (!sourceWithDependentChunks) {
164
+ return modules;
165
+ }
166
+ if (modules.size() === 0) {
167
+ return sourceWithDependentChunks;
168
+ }
169
+ const source = new ConcatSource();
170
+ source.add(sourceWithDependentChunks);
171
+ source.add("\n");
172
+ source.add(modules);
173
+ return source;
186
174
  }
187
- const source = new ConcatSource();
188
- source.add(sourceWithDependentChunks);
189
- source.add("\n");
190
- source.add(modules);
191
- return source;
175
+ return modules;
192
176
  }
193
177
  );
194
178
  hooks.renderChunk.tap(PLUGIN_NAME, (modules, renderContext) => {
@@ -196,17 +180,17 @@ class ModuleChunkFormatPlugin {
196
180
  const hotUpdateChunk = chunk instanceof HotUpdateChunk ? chunk : null;
197
181
  const source = new ConcatSource();
198
182
  source.add(
199
- `export const __webpack_id__ = ${JSON.stringify(chunk.id)};\n`
183
+ `export const ${RuntimeGlobals.esmId} = ${JSON.stringify(chunk.id)};\n`
200
184
  );
201
185
  source.add(
202
- `export const __webpack_ids__ = ${JSON.stringify(chunk.ids)};\n`
186
+ `export const ${RuntimeGlobals.esmIds} = ${JSON.stringify(chunk.ids)};\n`
203
187
  );
204
- source.add("export const __webpack_modules__ = ");
188
+ source.add(`export const ${RuntimeGlobals.esmModules} = `);
205
189
  source.add(modules);
206
190
  source.add(";\n");
207
191
  const runtimeModules = chunkGraph.getChunkRuntimeModulesInOrder(chunk);
208
192
  if (runtimeModules.length > 0) {
209
- source.add("export const __webpack_runtime__ =\n");
193
+ source.add(`export const ${RuntimeGlobals.esmRuntime} =\n`);
210
194
  source.add(
211
195
  Template.renderChunkRuntimeModules(runtimeModules, renderContext)
212
196
  );
@@ -238,9 +222,6 @@ class ModuleChunkFormatPlugin {
238
222
  }
239
223
  const final = i + 1 === entries.length;
240
224
  const moduleId = chunkGraph.getModuleId(module);
241
- const entryDependentChunks = /** @type {Set<Chunk>} */ (
242
- chunkGraph.getChunkEntryDependentChunksIterable(chunk)
243
- );
244
225
  const chunks = getAllChunks(
245
226
  /** @type {Entrypoint} */ (entrypoint),
246
227
  /** @type {Chunk} */ (runtimeChunk),
@@ -248,10 +229,7 @@ class ModuleChunkFormatPlugin {
248
229
  );
249
230
  const processChunks = new Set();
250
231
  for (const _chunk of chunks) {
251
- if (
252
- loadedChunks.has(_chunk) ||
253
- entryDependentChunks.has(_chunk)
254
- ) {
232
+ if (loadedChunks.has(_chunk)) {
255
233
  continue;
256
234
  }
257
235
  loadedChunks.add(_chunk);
@@ -287,19 +265,7 @@ class ModuleChunkFormatPlugin {
287
265
  }
288
266
  return source;
289
267
  });
290
- hooks.chunkHash.tap(PLUGIN_NAME, (chunk, hash, { chunkGraph }) => {
291
- if (chunk.hasRuntime()) return;
292
- const { entries, runtimeChunk } = getChunkInfo(chunk, chunkGraph);
293
- hash.update(PLUGIN_NAME);
294
- hash.update("1");
295
- if (runtimeChunk && runtimeChunk.hash) {
296
- // Any change to runtimeChunk should trigger a hash update,
297
- // we shouldn't depend on or inspect its internal implementation.
298
- // import __webpack_require__ from "./runtime-main.e9400aee33633a3973bd.js";
299
- hash.update(runtimeChunk.hash);
300
- }
301
- updateHashForEntryStartup(hash, chunkGraph, entries, chunk);
302
- });
268
+ hooks.chunkHash.tap(PLUGIN_NAME, createChunkHashHandler(PLUGIN_NAME));
303
269
  });
304
270
  }
305
271
  }
@@ -21,13 +21,13 @@ class ModuleChunkLoadingPlugin {
21
21
  * @returns {void}
22
22
  */
23
23
  apply(compiler) {
24
- compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
24
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
25
25
  const globalChunkLoading = compilation.outputOptions.chunkLoading;
26
26
  /**
27
27
  * @param {Chunk} chunk chunk to check
28
28
  * @returns {boolean} true, when the plugin is enabled for the chunk
29
29
  */
30
- const isEnabledForChunk = chunk => {
30
+ const isEnabledForChunk = (chunk) => {
31
31
  const options = chunk.getEntryOptions();
32
32
  const chunkLoading =
33
33
  options && options.chunkLoading !== undefined
@@ -71,11 +71,8 @@ class ModuleChunkLoadingPlugin {
71
71
  .tap(PLUGIN_NAME, handler);
72
72
  compilation.hooks.runtimeRequirementInTree
73
73
  .for(RuntimeGlobals.externalInstallChunk)
74
- .tap(PLUGIN_NAME, (chunk, set, { chunkGraph }) => {
74
+ .tap(PLUGIN_NAME, (chunk) => {
75
75
  if (!isEnabledForChunk(chunk)) return;
76
- // If a chunk contains an entryModule, all exports are determined by the entryModule.
77
- // The ExportWebpackRequireRuntimeModule is for internal use only and not exposed to users.
78
- if (chunkGraph.getNumberOfEntryModules(chunk) > 0) return;
79
76
  compilation.addRuntimeModule(
80
77
  chunk,
81
78
  new ExportWebpackRequireRuntimeModule()
@@ -159,7 +159,7 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
159
159
  stateExpression ? `${stateExpression} = ${stateExpression} || ` : ""
160
160
  }{`,
161
161
  Template.indent(
162
- Array.from(initialChunkIds, id => `${JSON.stringify(id)}: 0`).join(
162
+ Array.from(initialChunkIds, (id) => `${JSON.stringify(id)}: 0`).join(
163
163
  ",\n"
164
164
  )
165
165
  ),
@@ -168,29 +168,33 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
168
168
  withLoading || withExternalInstallChunk
169
169
  ? `var installChunk = ${runtimeTemplate.basicFunction("data", [
170
170
  runtimeTemplate.destructureObject(
171
- ["__webpack_ids__", "__webpack_modules__", "__webpack_runtime__"],
171
+ [
172
+ RuntimeGlobals.esmIds,
173
+ RuntimeGlobals.esmModules,
174
+ RuntimeGlobals.esmRuntime
175
+ ],
172
176
  "data"
173
177
  ),
174
178
  '// add "modules" to the modules object,',
175
179
  '// then flag all "ids" as loaded and fire callback',
176
180
  "var moduleId, chunkId, i = 0;",
177
- "for(moduleId in __webpack_modules__) {",
181
+ `for(moduleId in ${RuntimeGlobals.esmModules}) {`,
178
182
  Template.indent([
179
- `if(${RuntimeGlobals.hasOwnProperty}(__webpack_modules__, moduleId)) {`,
183
+ `if(${RuntimeGlobals.hasOwnProperty}(${RuntimeGlobals.esmModules}, moduleId)) {`,
180
184
  Template.indent(
181
- `${RuntimeGlobals.moduleFactories}[moduleId] = __webpack_modules__[moduleId];`
185
+ `${RuntimeGlobals.moduleFactories}[moduleId] = ${RuntimeGlobals.esmModules}[moduleId];`
182
186
  ),
183
187
  "}"
184
188
  ]),
185
189
  "}",
186
- `if(__webpack_runtime__) __webpack_runtime__(${RuntimeGlobals.require});`,
187
- "for(;i < __webpack_ids__.length; i++) {",
190
+ `if(${RuntimeGlobals.esmRuntime}) ${RuntimeGlobals.esmRuntime}(${RuntimeGlobals.require});`,
191
+ `for(;i < ${RuntimeGlobals.esmIds}.length; i++) {`,
188
192
  Template.indent([
189
- "chunkId = __webpack_ids__[i];",
193
+ `chunkId = ${RuntimeGlobals.esmIds}[i];`,
190
194
  `if(${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) && installedChunks[chunkId]) {`,
191
195
  Template.indent("installedChunks[chunkId][0]();"),
192
196
  "}",
193
- "installedChunks[__webpack_ids__[i]] = 0;"
197
+ `installedChunks[${RuntimeGlobals.esmIds}[i]] = 0;`
194
198
  ]),
195
199
  "}",
196
200
  withOnChunkLoad ? `${RuntimeGlobals.onChunksLoaded}();` : ""
@@ -365,8 +369,8 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule {
365
369
  "// start update chunk loading",
366
370
  `var url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkUpdateScriptFilename}(chunkId);`,
367
371
  `var onResolve = ${runtimeTemplate.basicFunction("obj", [
368
- "var updatedModules = obj.__webpack_modules__;",
369
- "var updatedRuntime = obj.__webpack_runtime__;",
372
+ `var updatedModules = obj.${RuntimeGlobals.esmModules};`,
373
+ `var updatedRuntime = obj.${RuntimeGlobals.esmRuntime};`,
370
374
  "if(updatedRuntime) currentUpdateRuntime.push(updatedRuntime);",
371
375
  "for(var moduleId in updatedModules) {",
372
376
  Template.indent([
@@ -12,7 +12,7 @@
12
12
  * @param {SourcePosition} pos position
13
13
  * @returns {string} formatted position
14
14
  */
15
- const formatPosition = pos => {
15
+ const formatPosition = (pos) => {
16
16
  if (pos && typeof pos === "object") {
17
17
  if ("line" in pos && "column" in pos) {
18
18
  return `${pos.line}:${pos.column}`;
@@ -27,7 +27,7 @@ const formatPosition = pos => {
27
27
  * @param {DependencyLocation} loc location
28
28
  * @returns {string} formatted location
29
29
  */
30
- const formatLocation = loc => {
30
+ const formatLocation = (loc) => {
31
31
  if (loc && typeof loc === "object") {
32
32
  if ("start" in loc && loc.start && "end" in loc && loc.end) {
33
33
  if (