@eriche/webpack 4.47.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 (361) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +784 -0
  3. package/SECURITY.md +9 -0
  4. package/bin/webpack.js +171 -0
  5. package/buildin/amd-define.js +3 -0
  6. package/buildin/amd-options.js +2 -0
  7. package/buildin/global.js +20 -0
  8. package/buildin/harmony-module.js +24 -0
  9. package/buildin/module.js +22 -0
  10. package/buildin/system.js +7 -0
  11. package/declarations/WebpackOptions.d.ts +1466 -0
  12. package/declarations/plugins/BannerPlugin.d.ts +49 -0
  13. package/declarations/plugins/DllPlugin.d.ts +32 -0
  14. package/declarations/plugins/DllReferencePlugin.d.ts +126 -0
  15. package/declarations/plugins/HashedModuleIdsPlugin.d.ts +24 -0
  16. package/declarations/plugins/IgnorePlugin.d.ts +27 -0
  17. package/declarations/plugins/LoaderOptionsPlugin.d.ts +27 -0
  18. package/declarations/plugins/ProgressPlugin.d.ts +42 -0
  19. package/declarations/plugins/SourceMapDevToolPlugin.d.ts +94 -0
  20. package/declarations/plugins/WatchIgnorePlugin.d.ts +10 -0
  21. package/declarations/plugins/debug/ProfilingPlugin.d.ts +12 -0
  22. package/declarations/plugins/optimize/AggressiveSplittingPlugin.d.ts +24 -0
  23. package/declarations/plugins/optimize/LimitChunkCountPlugin.d.ts +16 -0
  24. package/declarations/plugins/optimize/MinChunkSizePlugin.d.ts +12 -0
  25. package/declarations/plugins/optimize/OccurrenceOrderChunkIdsPlugin.d.ts +12 -0
  26. package/declarations/plugins/optimize/OccurrenceOrderModuleIdsPlugin.d.ts +12 -0
  27. package/hot/dev-server.js +61 -0
  28. package/hot/emitter.js +2 -0
  29. package/hot/log-apply-result.js +44 -0
  30. package/hot/log.js +59 -0
  31. package/hot/only-dev-server.js +102 -0
  32. package/hot/poll.js +37 -0
  33. package/hot/signal.js +62 -0
  34. package/lib/APIPlugin.js +84 -0
  35. package/lib/AbstractMethodError.js +43 -0
  36. package/lib/AmdMainTemplatePlugin.js +106 -0
  37. package/lib/AsyncDependenciesBlock.js +110 -0
  38. package/lib/AsyncDependencyToInitialChunkError.js +31 -0
  39. package/lib/AutomaticPrefetchPlugin.js +57 -0
  40. package/lib/BannerPlugin.js +122 -0
  41. package/lib/BasicEvaluatedExpression.js +248 -0
  42. package/lib/CachePlugin.js +100 -0
  43. package/lib/CaseSensitiveModulesWarning.js +67 -0
  44. package/lib/Chunk.js +875 -0
  45. package/lib/ChunkGroup.js +513 -0
  46. package/lib/ChunkRenderError.js +32 -0
  47. package/lib/ChunkTemplate.js +87 -0
  48. package/lib/CommentCompilationWarning.js +32 -0
  49. package/lib/CommonJsStuffPlugin.js +116 -0
  50. package/lib/CompatibilityPlugin.js +70 -0
  51. package/lib/Compilation.js +2327 -0
  52. package/lib/Compiler.js +735 -0
  53. package/lib/ConcurrentCompilationError.js +19 -0
  54. package/lib/ConstPlugin.js +348 -0
  55. package/lib/ContextExclusionPlugin.js +28 -0
  56. package/lib/ContextModule.js +872 -0
  57. package/lib/ContextModuleFactory.js +262 -0
  58. package/lib/ContextReplacementPlugin.js +133 -0
  59. package/lib/DefinePlugin.js +289 -0
  60. package/lib/DelegatedModule.js +114 -0
  61. package/lib/DelegatedModuleFactoryPlugin.js +95 -0
  62. package/lib/DelegatedPlugin.js +39 -0
  63. package/lib/DependenciesBlock.js +124 -0
  64. package/lib/DependenciesBlockVariable.js +72 -0
  65. package/lib/Dependency.js +89 -0
  66. package/lib/DllEntryPlugin.js +54 -0
  67. package/lib/DllModule.js +60 -0
  68. package/lib/DllModuleFactory.js +29 -0
  69. package/lib/DllPlugin.js +49 -0
  70. package/lib/DllReferencePlugin.js +156 -0
  71. package/lib/DynamicEntryPlugin.js +94 -0
  72. package/lib/EntryModuleNotFoundError.js +21 -0
  73. package/lib/EntryOptionPlugin.js +46 -0
  74. package/lib/Entrypoint.js +64 -0
  75. package/lib/EnvironmentPlugin.js +72 -0
  76. package/lib/ErrorHelpers.js +60 -0
  77. package/lib/EvalDevToolModulePlugin.js +27 -0
  78. package/lib/EvalDevToolModuleTemplatePlugin.js +61 -0
  79. package/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +120 -0
  80. package/lib/EvalSourceMapDevToolPlugin.js +41 -0
  81. package/lib/ExportPropertyMainTemplatePlugin.js +53 -0
  82. package/lib/ExtendedAPIPlugin.js +88 -0
  83. package/lib/ExternalModule.js +179 -0
  84. package/lib/ExternalModuleFactoryPlugin.js +110 -0
  85. package/lib/ExternalsPlugin.js +23 -0
  86. package/lib/FlagAllModulesAsUsedPlugin.js +38 -0
  87. package/lib/FlagDependencyExportsPlugin.js +174 -0
  88. package/lib/FlagDependencyUsagePlugin.js +116 -0
  89. package/lib/FlagInitialModulesAsUsedPlugin.js +36 -0
  90. package/lib/FunctionModulePlugin.js +19 -0
  91. package/lib/FunctionModuleTemplatePlugin.js +102 -0
  92. package/lib/Generator.js +60 -0
  93. package/lib/GraphHelpers.js +65 -0
  94. package/lib/HarmonyLinkingError.js +17 -0
  95. package/lib/HashedModuleIdsPlugin.js +63 -0
  96. package/lib/HotModuleReplacement.runtime.js +721 -0
  97. package/lib/HotModuleReplacementPlugin.js +425 -0
  98. package/lib/HotUpdateChunk.js +17 -0
  99. package/lib/HotUpdateChunkTemplate.js +78 -0
  100. package/lib/IgnorePlugin.js +91 -0
  101. package/lib/JavascriptGenerator.js +229 -0
  102. package/lib/JavascriptModulesPlugin.js +185 -0
  103. package/lib/JsonGenerator.js +57 -0
  104. package/lib/JsonModulesPlugin.js +30 -0
  105. package/lib/JsonParser.js +27 -0
  106. package/lib/LibManifestPlugin.js +90 -0
  107. package/lib/LibraryTemplatePlugin.js +186 -0
  108. package/lib/LoaderOptionsPlugin.js +58 -0
  109. package/lib/LoaderTargetPlugin.js +24 -0
  110. package/lib/MainTemplate.js +568 -0
  111. package/lib/MemoryOutputFileSystem.js +5 -0
  112. package/lib/Module.js +435 -0
  113. package/lib/ModuleBuildError.js +52 -0
  114. package/lib/ModuleDependencyError.js +35 -0
  115. package/lib/ModuleDependencyWarning.js +25 -0
  116. package/lib/ModuleError.js +36 -0
  117. package/lib/ModuleFilenameHelpers.js +179 -0
  118. package/lib/ModuleNotFoundError.js +23 -0
  119. package/lib/ModuleParseError.js +67 -0
  120. package/lib/ModuleReason.js +48 -0
  121. package/lib/ModuleTemplate.js +93 -0
  122. package/lib/ModuleWarning.js +36 -0
  123. package/lib/MultiCompiler.js +290 -0
  124. package/lib/MultiEntryPlugin.js +80 -0
  125. package/lib/MultiModule.js +87 -0
  126. package/lib/MultiModuleFactory.js +23 -0
  127. package/lib/MultiStats.js +92 -0
  128. package/lib/MultiWatching.js +50 -0
  129. package/lib/NamedChunksPlugin.js +29 -0
  130. package/lib/NamedModulesPlugin.js +58 -0
  131. package/lib/NoEmitOnErrorsPlugin.js +20 -0
  132. package/lib/NoModeWarning.js +23 -0
  133. package/lib/NodeStuffPlugin.js +118 -0
  134. package/lib/NormalModule.js +582 -0
  135. package/lib/NormalModuleFactory.js +528 -0
  136. package/lib/NormalModuleReplacementPlugin.js +51 -0
  137. package/lib/NullFactory.js +12 -0
  138. package/lib/OptionsApply.js +10 -0
  139. package/lib/OptionsDefaulter.js +141 -0
  140. package/lib/Parser.js +2454 -0
  141. package/lib/ParserHelpers.js +103 -0
  142. package/lib/PrefetchPlugin.js +37 -0
  143. package/lib/ProgressPlugin.js +307 -0
  144. package/lib/ProvidePlugin.js +86 -0
  145. package/lib/RawModule.js +56 -0
  146. package/lib/RecordIdsPlugin.js +236 -0
  147. package/lib/RemovedPluginError.js +11 -0
  148. package/lib/RequestShortener.js +83 -0
  149. package/lib/RequireJsStuffPlugin.js +66 -0
  150. package/lib/ResolverFactory.js +74 -0
  151. package/lib/RuleSet.js +567 -0
  152. package/lib/RuntimeTemplate.js +336 -0
  153. package/lib/SetVarMainTemplatePlugin.js +69 -0
  154. package/lib/SingleEntryPlugin.js +63 -0
  155. package/lib/SizeFormatHelpers.js +24 -0
  156. package/lib/SourceMapDevToolModuleOptionsPlugin.js +49 -0
  157. package/lib/SourceMapDevToolPlugin.js +418 -0
  158. package/lib/Stats.js +1685 -0
  159. package/lib/SystemMainTemplatePlugin.js +137 -0
  160. package/lib/Template.js +291 -0
  161. package/lib/TemplatedPathPlugin.js +188 -0
  162. package/lib/UmdMainTemplatePlugin.js +305 -0
  163. package/lib/UnsupportedFeatureWarning.js +30 -0
  164. package/lib/UseStrictPlugin.js +54 -0
  165. package/lib/WarnCaseSensitiveModulesPlugin.js +37 -0
  166. package/lib/WarnNoModeSetPlugin.js +17 -0
  167. package/lib/WatchIgnorePlugin.js +106 -0
  168. package/lib/Watching.js +211 -0
  169. package/lib/WebpackError.js +31 -0
  170. package/lib/WebpackOptionsApply.js +546 -0
  171. package/lib/WebpackOptionsDefaulter.js +391 -0
  172. package/lib/WebpackOptionsValidationError.js +390 -0
  173. package/lib/buildChunkGraph.js +712 -0
  174. package/lib/compareLocations.js +52 -0
  175. package/lib/debug/ProfilingPlugin.js +442 -0
  176. package/lib/dependencies/AMDDefineDependency.js +137 -0
  177. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +336 -0
  178. package/lib/dependencies/AMDPlugin.js +249 -0
  179. package/lib/dependencies/AMDRequireArrayDependency.js +49 -0
  180. package/lib/dependencies/AMDRequireContextDependency.js +20 -0
  181. package/lib/dependencies/AMDRequireDependenciesBlock.js +47 -0
  182. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +274 -0
  183. package/lib/dependencies/AMDRequireDependency.js +135 -0
  184. package/lib/dependencies/AMDRequireItemDependency.js +22 -0
  185. package/lib/dependencies/CommonJsPlugin.js +158 -0
  186. package/lib/dependencies/CommonJsRequireContextDependency.js +23 -0
  187. package/lib/dependencies/CommonJsRequireDependency.js +22 -0
  188. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +138 -0
  189. package/lib/dependencies/ConstDependency.js +33 -0
  190. package/lib/dependencies/ContextDependency.js +68 -0
  191. package/lib/dependencies/ContextDependencyHelpers.js +232 -0
  192. package/lib/dependencies/ContextDependencyTemplateAsId.js +43 -0
  193. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +39 -0
  194. package/lib/dependencies/ContextElementDependency.js +21 -0
  195. package/lib/dependencies/CriticalDependencyWarning.js +20 -0
  196. package/lib/dependencies/DelegatedExportsDependency.js +33 -0
  197. package/lib/dependencies/DelegatedSourceDependency.js +18 -0
  198. package/lib/dependencies/DependencyReference.js +64 -0
  199. package/lib/dependencies/DllEntryDependency.js +20 -0
  200. package/lib/dependencies/HarmonyAcceptDependency.js +48 -0
  201. package/lib/dependencies/HarmonyAcceptImportDependency.js +23 -0
  202. package/lib/dependencies/HarmonyCompatibilityDependency.js +31 -0
  203. package/lib/dependencies/HarmonyDetectionParserPlugin.js +96 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +154 -0
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +58 -0
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +30 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +659 -0
  208. package/lib/dependencies/HarmonyExportSpecifierDependency.js +54 -0
  209. package/lib/dependencies/HarmonyImportDependency.js +109 -0
  210. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +222 -0
  211. package/lib/dependencies/HarmonyImportSideEffectDependency.js +31 -0
  212. package/lib/dependencies/HarmonyImportSpecifierDependency.js +163 -0
  213. package/lib/dependencies/HarmonyInitDependency.js +60 -0
  214. package/lib/dependencies/HarmonyModulesPlugin.js +143 -0
  215. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +26 -0
  216. package/lib/dependencies/ImportContextDependency.js +23 -0
  217. package/lib/dependencies/ImportDependenciesBlock.js +18 -0
  218. package/lib/dependencies/ImportDependency.js +34 -0
  219. package/lib/dependencies/ImportEagerDependency.js +32 -0
  220. package/lib/dependencies/ImportParserPlugin.js +248 -0
  221. package/lib/dependencies/ImportPlugin.js +79 -0
  222. package/lib/dependencies/ImportWeakDependency.js +34 -0
  223. package/lib/dependencies/JsonExportsDependency.js +26 -0
  224. package/lib/dependencies/LoaderDependency.js +21 -0
  225. package/lib/dependencies/LoaderPlugin.js +115 -0
  226. package/lib/dependencies/LocalModule.js +23 -0
  227. package/lib/dependencies/LocalModuleDependency.js +28 -0
  228. package/lib/dependencies/LocalModulesHelpers.js +52 -0
  229. package/lib/dependencies/ModuleDependency.js +23 -0
  230. package/lib/dependencies/ModuleDependencyTemplateAsId.js +17 -0
  231. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +17 -0
  232. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -0
  233. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -0
  234. package/lib/dependencies/MultiEntryDependency.js +25 -0
  235. package/lib/dependencies/NullDependency.js +20 -0
  236. package/lib/dependencies/PrefetchDependency.js +18 -0
  237. package/lib/dependencies/RequireContextDependency.js +22 -0
  238. package/lib/dependencies/RequireContextDependencyParserPlugin.js +56 -0
  239. package/lib/dependencies/RequireContextPlugin.js +143 -0
  240. package/lib/dependencies/RequireEnsureDependenciesBlock.js +33 -0
  241. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +116 -0
  242. package/lib/dependencies/RequireEnsureDependency.js +58 -0
  243. package/lib/dependencies/RequireEnsureItemDependency.js +21 -0
  244. package/lib/dependencies/RequireEnsurePlugin.js +74 -0
  245. package/lib/dependencies/RequireHeaderDependency.js +26 -0
  246. package/lib/dependencies/RequireIncludeDependency.js +39 -0
  247. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +23 -0
  248. package/lib/dependencies/RequireIncludePlugin.js +61 -0
  249. package/lib/dependencies/RequireResolveContextDependency.js +23 -0
  250. package/lib/dependencies/RequireResolveDependency.js +22 -0
  251. package/lib/dependencies/RequireResolveDependencyParserPlugin.js +86 -0
  252. package/lib/dependencies/RequireResolveHeaderDependency.js +26 -0
  253. package/lib/dependencies/SingleEntryDependency.js +21 -0
  254. package/lib/dependencies/SystemPlugin.js +122 -0
  255. package/lib/dependencies/UnsupportedDependency.js +27 -0
  256. package/lib/dependencies/WebAssemblyExportImportedDependency.js +31 -0
  257. package/lib/dependencies/WebAssemblyImportDependency.js +54 -0
  258. package/lib/dependencies/WebpackMissingModule.js +20 -0
  259. package/lib/dependencies/getFunctionExpression.js +52 -0
  260. package/lib/formatLocation.js +75 -0
  261. package/lib/logging/Logger.js +128 -0
  262. package/lib/logging/createConsoleLogger.js +210 -0
  263. package/lib/logging/runtime.js +36 -0
  264. package/lib/logging/truncateArgs.js +76 -0
  265. package/lib/node/NodeChunkTemplatePlugin.js +31 -0
  266. package/lib/node/NodeEnvironmentPlugin.js +44 -0
  267. package/lib/node/NodeHotUpdateChunkTemplatePlugin.js +36 -0
  268. package/lib/node/NodeMainTemplate.runtime.js +32 -0
  269. package/lib/node/NodeMainTemplateAsync.runtime.js +50 -0
  270. package/lib/node/NodeMainTemplatePlugin.js +321 -0
  271. package/lib/node/NodeOutputFileSystem.js +22 -0
  272. package/lib/node/NodeSourcePlugin.js +141 -0
  273. package/lib/node/NodeTargetPlugin.js +19 -0
  274. package/lib/node/NodeTemplatePlugin.js +31 -0
  275. package/lib/node/NodeWatchFileSystem.js +109 -0
  276. package/lib/node/ReadFileCompileWasmTemplatePlugin.js +61 -0
  277. package/lib/node/nodeConsole.js +135 -0
  278. package/lib/optimize/AggressiveMergingPlugin.js +87 -0
  279. package/lib/optimize/AggressiveSplittingPlugin.js +294 -0
  280. package/lib/optimize/ChunkModuleIdRangePlugin.js +66 -0
  281. package/lib/optimize/ConcatenatedModule.js +1477 -0
  282. package/lib/optimize/EnsureChunkConditionsPlugin.js +70 -0
  283. package/lib/optimize/FlagIncludedChunksPlugin.js +99 -0
  284. package/lib/optimize/LimitChunkCountPlugin.js +231 -0
  285. package/lib/optimize/MergeDuplicateChunksPlugin.js +78 -0
  286. package/lib/optimize/MinChunkSizePlugin.js +82 -0
  287. package/lib/optimize/MinMaxSizeWarning.js +29 -0
  288. package/lib/optimize/ModuleConcatenationPlugin.js +485 -0
  289. package/lib/optimize/NaturalChunkOrderPlugin.js +41 -0
  290. package/lib/optimize/OccurrenceChunkOrderPlugin.js +66 -0
  291. package/lib/optimize/OccurrenceModuleOrderPlugin.js +112 -0
  292. package/lib/optimize/OccurrenceOrderPlugin.js +135 -0
  293. package/lib/optimize/RemoveEmptyChunksPlugin.js +42 -0
  294. package/lib/optimize/RemoveParentModulesPlugin.js +127 -0
  295. package/lib/optimize/RuntimeChunkPlugin.js +41 -0
  296. package/lib/optimize/SideEffectsFlagPlugin.js +352 -0
  297. package/lib/optimize/SplitChunksPlugin.js +971 -0
  298. package/lib/performance/AssetsOverSizeLimitWarning.js +30 -0
  299. package/lib/performance/EntrypointsOverSizeLimitWarning.js +30 -0
  300. package/lib/performance/NoAsyncChunksWarning.js +21 -0
  301. package/lib/performance/SizeLimitsPlugin.js +125 -0
  302. package/lib/util/LazyBucketSortedSet.js +235 -0
  303. package/lib/util/Queue.js +46 -0
  304. package/lib/util/Semaphore.js +53 -0
  305. package/lib/util/SetHelpers.js +48 -0
  306. package/lib/util/SortableSet.js +140 -0
  307. package/lib/util/StackedSetMap.js +142 -0
  308. package/lib/util/TrackingSet.js +35 -0
  309. package/lib/util/cachedMerge.js +35 -0
  310. package/lib/util/cleverMerge.js +77 -0
  311. package/lib/util/createHash.js +174 -0
  312. package/lib/util/deterministicGrouping.js +274 -0
  313. package/lib/util/hash/BatchedHash.js +71 -0
  314. package/lib/util/hash/md4.js +25 -0
  315. package/lib/util/hash/wasm-hash.js +174 -0
  316. package/lib/util/identifier.js +127 -0
  317. package/lib/util/objectToMap.js +16 -0
  318. package/lib/validateSchema.js +67 -0
  319. package/lib/wasm/UnsupportedWebAssemblyFeatureError.js +17 -0
  320. package/lib/wasm/WasmFinalizeExportsPlugin.js +69 -0
  321. package/lib/wasm/WasmMainTemplatePlugin.js +341 -0
  322. package/lib/wasm/WebAssemblyGenerator.js +458 -0
  323. package/lib/wasm/WebAssemblyInInitialChunkError.js +88 -0
  324. package/lib/wasm/WebAssemblyJavascriptGenerator.js +152 -0
  325. package/lib/wasm/WebAssemblyModulesPlugin.js +128 -0
  326. package/lib/wasm/WebAssemblyParser.js +175 -0
  327. package/lib/wasm/WebAssemblyUtils.js +59 -0
  328. package/lib/web/FetchCompileWasmTemplatePlugin.js +37 -0
  329. package/lib/web/JsonpChunkTemplatePlugin.js +71 -0
  330. package/lib/web/JsonpExportMainTemplatePlugin.js +50 -0
  331. package/lib/web/JsonpHotUpdateChunkTemplatePlugin.js +39 -0
  332. package/lib/web/JsonpMainTemplate.runtime.js +71 -0
  333. package/lib/web/JsonpMainTemplatePlugin.js +615 -0
  334. package/lib/web/JsonpTemplatePlugin.js +23 -0
  335. package/lib/web/WebEnvironmentPlugin.js +18 -0
  336. package/lib/webpack.js +206 -0
  337. package/lib/webpack.web.js +31 -0
  338. package/lib/webworker/WebWorkerChunkTemplatePlugin.js +35 -0
  339. package/lib/webworker/WebWorkerHotUpdateChunkTemplatePlugin.js +40 -0
  340. package/lib/webworker/WebWorkerMainTemplate.runtime.js +73 -0
  341. package/lib/webworker/WebWorkerMainTemplatePlugin.js +192 -0
  342. package/lib/webworker/WebWorkerTemplatePlugin.js +25 -0
  343. package/package.json +211 -0
  344. package/schemas/WebpackOptions.json +2285 -0
  345. package/schemas/ajv.absolutePath.js +57 -0
  346. package/schemas/plugins/BannerPlugin.json +101 -0
  347. package/schemas/plugins/DllPlugin.json +36 -0
  348. package/schemas/plugins/DllReferencePlugin.json +205 -0
  349. package/schemas/plugins/HashedModuleIdsPlugin.json +26 -0
  350. package/schemas/plugins/IgnorePlugin.json +37 -0
  351. package/schemas/plugins/LoaderOptionsPlugin.json +27 -0
  352. package/schemas/plugins/ProgressPlugin.json +52 -0
  353. package/schemas/plugins/SourceMapDevToolPlugin.json +185 -0
  354. package/schemas/plugins/WatchIgnorePlugin.json +18 -0
  355. package/schemas/plugins/debug/ProfilingPlugin.json +13 -0
  356. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +23 -0
  357. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +16 -0
  358. package/schemas/plugins/optimize/MinChunkSizePlugin.json +12 -0
  359. package/schemas/plugins/optimize/OccurrenceOrderChunkIdsPlugin.json +11 -0
  360. package/schemas/plugins/optimize/OccurrenceOrderModuleIdsPlugin.json +11 -0
  361. package/web_modules/node-libs-browser.js +0 -0
@@ -0,0 +1,546 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const OptionsApply = require("./OptionsApply");
8
+
9
+ const JavascriptModulesPlugin = require("./JavascriptModulesPlugin");
10
+ const JsonModulesPlugin = require("./JsonModulesPlugin");
11
+ const WebAssemblyModulesPlugin = require("./wasm/WebAssemblyModulesPlugin");
12
+
13
+ const LoaderTargetPlugin = require("./LoaderTargetPlugin");
14
+ const FunctionModulePlugin = require("./FunctionModulePlugin");
15
+ const EvalDevToolModulePlugin = require("./EvalDevToolModulePlugin");
16
+ const SourceMapDevToolPlugin = require("./SourceMapDevToolPlugin");
17
+ const EvalSourceMapDevToolPlugin = require("./EvalSourceMapDevToolPlugin");
18
+
19
+ const EntryOptionPlugin = require("./EntryOptionPlugin");
20
+ const RecordIdsPlugin = require("./RecordIdsPlugin");
21
+
22
+ const APIPlugin = require("./APIPlugin");
23
+ const ConstPlugin = require("./ConstPlugin");
24
+ const CommonJsStuffPlugin = require("./CommonJsStuffPlugin");
25
+ const CompatibilityPlugin = require("./CompatibilityPlugin");
26
+
27
+ const TemplatedPathPlugin = require("./TemplatedPathPlugin");
28
+ const WarnCaseSensitiveModulesPlugin = require("./WarnCaseSensitiveModulesPlugin");
29
+ const UseStrictPlugin = require("./UseStrictPlugin");
30
+
31
+ const LoaderPlugin = require("./dependencies/LoaderPlugin");
32
+ const CommonJsPlugin = require("./dependencies/CommonJsPlugin");
33
+ const HarmonyModulesPlugin = require("./dependencies/HarmonyModulesPlugin");
34
+ const SystemPlugin = require("./dependencies/SystemPlugin");
35
+ const ImportPlugin = require("./dependencies/ImportPlugin");
36
+ const RequireContextPlugin = require("./dependencies/RequireContextPlugin");
37
+ const RequireEnsurePlugin = require("./dependencies/RequireEnsurePlugin");
38
+ const RequireIncludePlugin = require("./dependencies/RequireIncludePlugin");
39
+
40
+ const { cachedCleverMerge } = require("./util/cleverMerge");
41
+
42
+ /** @typedef {import("../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
43
+ /** @typedef {import("./Compiler")} Compiler */
44
+
45
+ class WebpackOptionsApply extends OptionsApply {
46
+ constructor() {
47
+ super();
48
+ }
49
+
50
+ /**
51
+ * @param {WebpackOptions} options options object
52
+ * @param {Compiler} compiler compiler object
53
+ * @returns {WebpackOptions} options object
54
+ */
55
+ process(options, compiler) {
56
+ let ExternalsPlugin;
57
+ compiler.outputPath = options.output.path;
58
+ compiler.recordsInputPath = options.recordsInputPath || options.recordsPath;
59
+ compiler.recordsOutputPath =
60
+ options.recordsOutputPath || options.recordsPath;
61
+ compiler.name = options.name;
62
+ // TODO webpack 5 refactor this to MultiCompiler.setDependencies() with a WeakMap
63
+ // @ts-ignore TODO
64
+ compiler.dependencies = options.dependencies;
65
+ if (typeof options.target === "string") {
66
+ let JsonpTemplatePlugin;
67
+ let FetchCompileWasmTemplatePlugin;
68
+ let ReadFileCompileWasmTemplatePlugin;
69
+ let NodeSourcePlugin;
70
+ let NodeTargetPlugin;
71
+ let NodeTemplatePlugin;
72
+
73
+ switch (options.target) {
74
+ case "web":
75
+ JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
76
+ FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
77
+ NodeSourcePlugin = require("./node/NodeSourcePlugin");
78
+ new JsonpTemplatePlugin().apply(compiler);
79
+ new FetchCompileWasmTemplatePlugin({
80
+ mangleImports: options.optimization.mangleWasmImports
81
+ }).apply(compiler);
82
+ new FunctionModulePlugin().apply(compiler);
83
+ new NodeSourcePlugin(options.node).apply(compiler);
84
+ new LoaderTargetPlugin(options.target).apply(compiler);
85
+ break;
86
+ case "webworker": {
87
+ let WebWorkerTemplatePlugin = require("./webworker/WebWorkerTemplatePlugin");
88
+ FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
89
+ NodeSourcePlugin = require("./node/NodeSourcePlugin");
90
+ new WebWorkerTemplatePlugin().apply(compiler);
91
+ new FetchCompileWasmTemplatePlugin({
92
+ mangleImports: options.optimization.mangleWasmImports
93
+ }).apply(compiler);
94
+ new FunctionModulePlugin().apply(compiler);
95
+ new NodeSourcePlugin(options.node).apply(compiler);
96
+ new LoaderTargetPlugin(options.target).apply(compiler);
97
+ break;
98
+ }
99
+ case "node":
100
+ case "async-node":
101
+ NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
102
+ ReadFileCompileWasmTemplatePlugin = require("./node/ReadFileCompileWasmTemplatePlugin");
103
+ NodeTargetPlugin = require("./node/NodeTargetPlugin");
104
+ new NodeTemplatePlugin({
105
+ asyncChunkLoading: options.target === "async-node"
106
+ }).apply(compiler);
107
+ new ReadFileCompileWasmTemplatePlugin({
108
+ mangleImports: options.optimization.mangleWasmImports
109
+ }).apply(compiler);
110
+ new FunctionModulePlugin().apply(compiler);
111
+ new NodeTargetPlugin().apply(compiler);
112
+ new LoaderTargetPlugin("node").apply(compiler);
113
+ break;
114
+ case "node-webkit":
115
+ JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
116
+ NodeTargetPlugin = require("./node/NodeTargetPlugin");
117
+ ExternalsPlugin = require("./ExternalsPlugin");
118
+ new JsonpTemplatePlugin().apply(compiler);
119
+ new FunctionModulePlugin().apply(compiler);
120
+ new NodeTargetPlugin().apply(compiler);
121
+ new ExternalsPlugin("commonjs", "nw.gui").apply(compiler);
122
+ new LoaderTargetPlugin(options.target).apply(compiler);
123
+ break;
124
+ case "electron-main":
125
+ NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
126
+ NodeTargetPlugin = require("./node/NodeTargetPlugin");
127
+ ExternalsPlugin = require("./ExternalsPlugin");
128
+ new NodeTemplatePlugin({
129
+ asyncChunkLoading: true
130
+ }).apply(compiler);
131
+ new FunctionModulePlugin().apply(compiler);
132
+ new NodeTargetPlugin().apply(compiler);
133
+ new ExternalsPlugin("commonjs", [
134
+ "app",
135
+ "auto-updater",
136
+ "browser-window",
137
+ "clipboard",
138
+ "content-tracing",
139
+ "crash-reporter",
140
+ "dialog",
141
+ "electron",
142
+ "global-shortcut",
143
+ "ipc",
144
+ "ipc-main",
145
+ "menu",
146
+ "menu-item",
147
+ "native-image",
148
+ "original-fs",
149
+ "power-monitor",
150
+ "power-save-blocker",
151
+ "protocol",
152
+ "screen",
153
+ "session",
154
+ "shell",
155
+ "tray",
156
+ "web-contents"
157
+ ]).apply(compiler);
158
+ new LoaderTargetPlugin(options.target).apply(compiler);
159
+ break;
160
+ case "electron-renderer":
161
+ case "electron-preload":
162
+ FetchCompileWasmTemplatePlugin = require("./web/FetchCompileWasmTemplatePlugin");
163
+ NodeTargetPlugin = require("./node/NodeTargetPlugin");
164
+ ExternalsPlugin = require("./ExternalsPlugin");
165
+ if (options.target === "electron-renderer") {
166
+ JsonpTemplatePlugin = require("./web/JsonpTemplatePlugin");
167
+ new JsonpTemplatePlugin().apply(compiler);
168
+ } else if (options.target === "electron-preload") {
169
+ NodeTemplatePlugin = require("./node/NodeTemplatePlugin");
170
+ new NodeTemplatePlugin({
171
+ asyncChunkLoading: true
172
+ }).apply(compiler);
173
+ }
174
+ new FetchCompileWasmTemplatePlugin({
175
+ mangleImports: options.optimization.mangleWasmImports
176
+ }).apply(compiler);
177
+ new FunctionModulePlugin().apply(compiler);
178
+ new NodeTargetPlugin().apply(compiler);
179
+ new ExternalsPlugin("commonjs", [
180
+ "clipboard",
181
+ "crash-reporter",
182
+ "desktop-capturer",
183
+ "electron",
184
+ "ipc",
185
+ "ipc-renderer",
186
+ "native-image",
187
+ "original-fs",
188
+ "remote",
189
+ "screen",
190
+ "shell",
191
+ "web-frame"
192
+ ]).apply(compiler);
193
+ new LoaderTargetPlugin(options.target).apply(compiler);
194
+ break;
195
+ default:
196
+ throw new Error("Unsupported target '" + options.target + "'.");
197
+ }
198
+ }
199
+ // @ts-ignore This is always true, which is good this way
200
+ else if (options.target !== false) {
201
+ options.target(compiler);
202
+ } else {
203
+ throw new Error("Unsupported target '" + options.target + "'.");
204
+ }
205
+
206
+ if (options.output.library || options.output.libraryTarget !== "var") {
207
+ const LibraryTemplatePlugin = require("./LibraryTemplatePlugin");
208
+ new LibraryTemplatePlugin(
209
+ options.output.library,
210
+ options.output.libraryTarget,
211
+ options.output.umdNamedDefine,
212
+ options.output.auxiliaryComment || "",
213
+ options.output.libraryExport
214
+ ).apply(compiler);
215
+ }
216
+ if (options.externals) {
217
+ ExternalsPlugin = require("./ExternalsPlugin");
218
+ new ExternalsPlugin(
219
+ options.output.libraryTarget,
220
+ options.externals
221
+ ).apply(compiler);
222
+ }
223
+
224
+ let noSources;
225
+ let legacy;
226
+ let modern;
227
+ let comment;
228
+ if (
229
+ options.devtool &&
230
+ (options.devtool.includes("sourcemap") ||
231
+ options.devtool.includes("source-map"))
232
+ ) {
233
+ const hidden = options.devtool.includes("hidden");
234
+ const inline = options.devtool.includes("inline");
235
+ const evalWrapped = options.devtool.includes("eval");
236
+ const cheap = options.devtool.includes("cheap");
237
+ const moduleMaps = options.devtool.includes("module");
238
+ noSources = options.devtool.includes("nosources");
239
+ legacy = options.devtool.includes("@");
240
+ modern = options.devtool.includes("#");
241
+ comment =
242
+ legacy && modern
243
+ ? "\n/*\n//@ source" +
244
+ "MappingURL=[url]\n//# source" +
245
+ "MappingURL=[url]\n*/"
246
+ : legacy
247
+ ? "\n/*\n//@ source" + "MappingURL=[url]\n*/"
248
+ : modern
249
+ ? "\n//# source" + "MappingURL=[url]"
250
+ : null;
251
+ const Plugin = evalWrapped
252
+ ? EvalSourceMapDevToolPlugin
253
+ : SourceMapDevToolPlugin;
254
+ new Plugin({
255
+ filename: inline ? null : options.output.sourceMapFilename,
256
+ moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
257
+ fallbackModuleFilenameTemplate:
258
+ options.output.devtoolFallbackModuleFilenameTemplate,
259
+ append: hidden ? false : comment,
260
+ module: moduleMaps ? true : cheap ? false : true,
261
+ columns: cheap ? false : true,
262
+ lineToLine: options.output.devtoolLineToLine,
263
+ noSources: noSources,
264
+ namespace: options.output.devtoolNamespace
265
+ }).apply(compiler);
266
+ } else if (options.devtool && options.devtool.includes("eval")) {
267
+ legacy = options.devtool.includes("@");
268
+ modern = options.devtool.includes("#");
269
+ comment =
270
+ legacy && modern
271
+ ? "\n//@ sourceURL=[url]\n//# sourceURL=[url]"
272
+ : legacy
273
+ ? "\n//@ sourceURL=[url]"
274
+ : modern
275
+ ? "\n//# sourceURL=[url]"
276
+ : null;
277
+ new EvalDevToolModulePlugin({
278
+ sourceUrlComment: comment,
279
+ moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
280
+ namespace: options.output.devtoolNamespace
281
+ }).apply(compiler);
282
+ }
283
+
284
+ new JavascriptModulesPlugin().apply(compiler);
285
+ new JsonModulesPlugin().apply(compiler);
286
+ new WebAssemblyModulesPlugin({
287
+ mangleImports: options.optimization.mangleWasmImports
288
+ }).apply(compiler);
289
+
290
+ new EntryOptionPlugin().apply(compiler);
291
+ compiler.hooks.entryOption.call(options.context, options.entry);
292
+
293
+ new CompatibilityPlugin().apply(compiler);
294
+ new HarmonyModulesPlugin(options.module).apply(compiler);
295
+ if (options.amd !== false) {
296
+ const AMDPlugin = require("./dependencies/AMDPlugin");
297
+ const RequireJsStuffPlugin = require("./RequireJsStuffPlugin");
298
+ new AMDPlugin(options.module, options.amd || {}).apply(compiler);
299
+ new RequireJsStuffPlugin().apply(compiler);
300
+ }
301
+ new CommonJsPlugin(options.module).apply(compiler);
302
+ new LoaderPlugin().apply(compiler);
303
+ if (options.node !== false) {
304
+ const NodeStuffPlugin = require("./NodeStuffPlugin");
305
+ new NodeStuffPlugin(options.node).apply(compiler);
306
+ }
307
+ new CommonJsStuffPlugin().apply(compiler);
308
+ new APIPlugin().apply(compiler);
309
+ new ConstPlugin().apply(compiler);
310
+ new UseStrictPlugin().apply(compiler);
311
+ new RequireIncludePlugin().apply(compiler);
312
+ new RequireEnsurePlugin().apply(compiler);
313
+ new RequireContextPlugin(
314
+ options.resolve.modules,
315
+ options.resolve.extensions,
316
+ options.resolve.mainFiles
317
+ ).apply(compiler);
318
+ new ImportPlugin(options.module).apply(compiler);
319
+ new SystemPlugin(options.module).apply(compiler);
320
+
321
+ if (typeof options.mode !== "string") {
322
+ const WarnNoModeSetPlugin = require("./WarnNoModeSetPlugin");
323
+ new WarnNoModeSetPlugin().apply(compiler);
324
+ }
325
+
326
+ const EnsureChunkConditionsPlugin = require("./optimize/EnsureChunkConditionsPlugin");
327
+ new EnsureChunkConditionsPlugin().apply(compiler);
328
+ if (options.optimization.removeAvailableModules) {
329
+ const RemoveParentModulesPlugin = require("./optimize/RemoveParentModulesPlugin");
330
+ new RemoveParentModulesPlugin().apply(compiler);
331
+ }
332
+ if (options.optimization.removeEmptyChunks) {
333
+ const RemoveEmptyChunksPlugin = require("./optimize/RemoveEmptyChunksPlugin");
334
+ new RemoveEmptyChunksPlugin().apply(compiler);
335
+ }
336
+ if (options.optimization.mergeDuplicateChunks) {
337
+ const MergeDuplicateChunksPlugin = require("./optimize/MergeDuplicateChunksPlugin");
338
+ new MergeDuplicateChunksPlugin().apply(compiler);
339
+ }
340
+ if (options.optimization.flagIncludedChunks) {
341
+ const FlagIncludedChunksPlugin = require("./optimize/FlagIncludedChunksPlugin");
342
+ new FlagIncludedChunksPlugin().apply(compiler);
343
+ }
344
+ if (options.optimization.sideEffects) {
345
+ const SideEffectsFlagPlugin = require("./optimize/SideEffectsFlagPlugin");
346
+ new SideEffectsFlagPlugin().apply(compiler);
347
+ }
348
+ if (options.optimization.providedExports) {
349
+ const FlagDependencyExportsPlugin = require("./FlagDependencyExportsPlugin");
350
+ new FlagDependencyExportsPlugin().apply(compiler);
351
+ }
352
+ if (options.optimization.usedExports) {
353
+ const FlagDependencyUsagePlugin = require("./FlagDependencyUsagePlugin");
354
+ new FlagDependencyUsagePlugin().apply(compiler);
355
+ }
356
+ if (options.optimization.concatenateModules) {
357
+ const ModuleConcatenationPlugin = require("./optimize/ModuleConcatenationPlugin");
358
+ new ModuleConcatenationPlugin().apply(compiler);
359
+ }
360
+ if (options.optimization.splitChunks) {
361
+ const SplitChunksPlugin = require("./optimize/SplitChunksPlugin");
362
+ new SplitChunksPlugin(options.optimization.splitChunks).apply(compiler);
363
+ }
364
+ if (options.optimization.runtimeChunk) {
365
+ const RuntimeChunkPlugin = require("./optimize/RuntimeChunkPlugin");
366
+ new RuntimeChunkPlugin(options.optimization.runtimeChunk).apply(compiler);
367
+ }
368
+ if (options.optimization.noEmitOnErrors) {
369
+ const NoEmitOnErrorsPlugin = require("./NoEmitOnErrorsPlugin");
370
+ new NoEmitOnErrorsPlugin().apply(compiler);
371
+ }
372
+ if (options.optimization.checkWasmTypes) {
373
+ const WasmFinalizeExportsPlugin = require("./wasm/WasmFinalizeExportsPlugin");
374
+ new WasmFinalizeExportsPlugin().apply(compiler);
375
+ }
376
+ let moduleIds = options.optimization.moduleIds;
377
+ if (moduleIds === undefined) {
378
+ // TODO webpack 5 remove all these options
379
+ if (options.optimization.occurrenceOrder) {
380
+ moduleIds = "size";
381
+ }
382
+ if (options.optimization.namedModules) {
383
+ moduleIds = "named";
384
+ }
385
+ if (options.optimization.hashedModuleIds) {
386
+ moduleIds = "hashed";
387
+ }
388
+ if (moduleIds === undefined) {
389
+ moduleIds = "natural";
390
+ }
391
+ }
392
+ if (moduleIds) {
393
+ const NamedModulesPlugin = require("./NamedModulesPlugin");
394
+ const HashedModuleIdsPlugin = require("./HashedModuleIdsPlugin");
395
+ const OccurrenceModuleOrderPlugin = require("./optimize/OccurrenceModuleOrderPlugin");
396
+ switch (moduleIds) {
397
+ case "natural":
398
+ // TODO webpack 5: see hint in Compilation.sortModules
399
+ break;
400
+ case "named":
401
+ new NamedModulesPlugin().apply(compiler);
402
+ break;
403
+ case "hashed":
404
+ new HashedModuleIdsPlugin().apply(compiler);
405
+ break;
406
+ case "size":
407
+ new OccurrenceModuleOrderPlugin({
408
+ prioritiseInitial: true
409
+ }).apply(compiler);
410
+ break;
411
+ case "total-size":
412
+ new OccurrenceModuleOrderPlugin({
413
+ prioritiseInitial: false
414
+ }).apply(compiler);
415
+ break;
416
+ default:
417
+ throw new Error(
418
+ `webpack bug: moduleIds: ${moduleIds} is not implemented`
419
+ );
420
+ }
421
+ }
422
+ let chunkIds = options.optimization.chunkIds;
423
+ if (chunkIds === undefined) {
424
+ // TODO webpack 5 remove all these options
425
+ if (options.optimization.occurrenceOrder) {
426
+ // This looks weird but it's for backward-compat
427
+ // This bug already existed before adding this feature
428
+ chunkIds = "total-size";
429
+ }
430
+ if (options.optimization.namedChunks) {
431
+ chunkIds = "named";
432
+ }
433
+ if (chunkIds === undefined) {
434
+ chunkIds = "natural";
435
+ }
436
+ }
437
+ if (chunkIds) {
438
+ const NaturalChunkOrderPlugin = require("./optimize/NaturalChunkOrderPlugin");
439
+ const NamedChunksPlugin = require("./NamedChunksPlugin");
440
+ const OccurrenceChunkOrderPlugin = require("./optimize/OccurrenceChunkOrderPlugin");
441
+ switch (chunkIds) {
442
+ case "natural":
443
+ new NaturalChunkOrderPlugin().apply(compiler);
444
+ break;
445
+ case "named":
446
+ // TODO webapck 5: for backward-compat this need to have OccurrenceChunkOrderPlugin too
447
+ // The NamedChunksPlugin doesn't give every chunk a name
448
+ // This should be fixed, and the OccurrenceChunkOrderPlugin should be removed here.
449
+ new OccurrenceChunkOrderPlugin({
450
+ prioritiseInitial: false
451
+ }).apply(compiler);
452
+ new NamedChunksPlugin().apply(compiler);
453
+ break;
454
+ case "size":
455
+ new OccurrenceChunkOrderPlugin({
456
+ prioritiseInitial: true
457
+ }).apply(compiler);
458
+ break;
459
+ case "total-size":
460
+ new OccurrenceChunkOrderPlugin({
461
+ prioritiseInitial: false
462
+ }).apply(compiler);
463
+ break;
464
+ default:
465
+ throw new Error(
466
+ `webpack bug: chunkIds: ${chunkIds} is not implemented`
467
+ );
468
+ }
469
+ }
470
+ if (options.optimization.nodeEnv) {
471
+ const DefinePlugin = require("./DefinePlugin");
472
+ new DefinePlugin({
473
+ "process.env.NODE_ENV": JSON.stringify(options.optimization.nodeEnv)
474
+ }).apply(compiler);
475
+ }
476
+ if (options.optimization.minimize) {
477
+ for (const minimizer of options.optimization.minimizer) {
478
+ if (typeof minimizer === "function") {
479
+ minimizer.call(compiler, compiler);
480
+ } else {
481
+ minimizer.apply(compiler);
482
+ }
483
+ }
484
+ }
485
+
486
+ if (options.performance) {
487
+ const SizeLimitsPlugin = require("./performance/SizeLimitsPlugin");
488
+ new SizeLimitsPlugin(options.performance).apply(compiler);
489
+ }
490
+
491
+ new TemplatedPathPlugin().apply(compiler);
492
+
493
+ new RecordIdsPlugin({
494
+ portableIds: options.optimization.portableRecords
495
+ }).apply(compiler);
496
+
497
+ new WarnCaseSensitiveModulesPlugin().apply(compiler);
498
+
499
+ if (options.cache) {
500
+ const CachePlugin = require("./CachePlugin");
501
+ new CachePlugin(
502
+ typeof options.cache === "object" ? options.cache : null
503
+ ).apply(compiler);
504
+ }
505
+
506
+ compiler.hooks.afterPlugins.call(compiler);
507
+ if (!compiler.inputFileSystem) {
508
+ throw new Error("No input filesystem provided");
509
+ }
510
+ compiler.resolverFactory.hooks.resolveOptions
511
+ .for("normal")
512
+ .tap("WebpackOptionsApply", resolveOptions => {
513
+ return Object.assign(
514
+ {
515
+ fileSystem: compiler.inputFileSystem
516
+ },
517
+ cachedCleverMerge(options.resolve, resolveOptions)
518
+ );
519
+ });
520
+ compiler.resolverFactory.hooks.resolveOptions
521
+ .for("context")
522
+ .tap("WebpackOptionsApply", resolveOptions => {
523
+ return Object.assign(
524
+ {
525
+ fileSystem: compiler.inputFileSystem,
526
+ resolveToContext: true
527
+ },
528
+ cachedCleverMerge(options.resolve, resolveOptions)
529
+ );
530
+ });
531
+ compiler.resolverFactory.hooks.resolveOptions
532
+ .for("loader")
533
+ .tap("WebpackOptionsApply", resolveOptions => {
534
+ return Object.assign(
535
+ {
536
+ fileSystem: compiler.inputFileSystem
537
+ },
538
+ cachedCleverMerge(options.resolveLoader, resolveOptions)
539
+ );
540
+ });
541
+ compiler.hooks.afterResolvers.call(compiler);
542
+ return options;
543
+ }
544
+ }
545
+
546
+ module.exports = WebpackOptionsApply;