@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,615 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const { SyncWaterfallHook } = require("tapable");
8
+ const Template = require("../Template");
9
+
10
+ class JsonpMainTemplatePlugin {
11
+ apply(mainTemplate) {
12
+ const needChunkOnDemandLoadingCode = chunk => {
13
+ for (const chunkGroup of chunk.groupsIterable) {
14
+ if (chunkGroup.getNumberOfChildren() > 0) return true;
15
+ }
16
+ return false;
17
+ };
18
+ const needChunkLoadingCode = chunk => {
19
+ for (const chunkGroup of chunk.groupsIterable) {
20
+ if (chunkGroup.chunks.length > 1) return true;
21
+ if (chunkGroup.getNumberOfChildren() > 0) return true;
22
+ }
23
+ return false;
24
+ };
25
+ const needEntryDeferringCode = chunk => {
26
+ for (const chunkGroup of chunk.groupsIterable) {
27
+ if (chunkGroup.chunks.length > 1) return true;
28
+ }
29
+ return false;
30
+ };
31
+ const needPrefetchingCode = chunk => {
32
+ const allPrefetchChunks = chunk.getChildIdsByOrdersMap(true).prefetch;
33
+ return allPrefetchChunks && Object.keys(allPrefetchChunks).length;
34
+ };
35
+
36
+ // TODO webpack 5, no adding to .hooks, use WeakMap and static methods
37
+ ["jsonpScript", "linkPreload", "linkPrefetch"].forEach(hook => {
38
+ if (!mainTemplate.hooks[hook]) {
39
+ mainTemplate.hooks[hook] = new SyncWaterfallHook([
40
+ "source",
41
+ "chunk",
42
+ "hash"
43
+ ]);
44
+ }
45
+ });
46
+
47
+ const getScriptSrcPath = (hash, chunk, chunkIdExpression) => {
48
+ const chunkFilename = mainTemplate.outputOptions.chunkFilename;
49
+ const chunkMaps = chunk.getChunkMaps();
50
+ return mainTemplate.getAssetPath(JSON.stringify(chunkFilename), {
51
+ hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
52
+ hashWithLength: length =>
53
+ `" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
54
+ chunk: {
55
+ id: `" + ${chunkIdExpression} + "`,
56
+ hash: `" + ${JSON.stringify(
57
+ chunkMaps.hash
58
+ )}[${chunkIdExpression}] + "`,
59
+ hashWithLength(length) {
60
+ const shortChunkHashMap = Object.create(null);
61
+ for (const chunkId of Object.keys(chunkMaps.hash)) {
62
+ if (typeof chunkMaps.hash[chunkId] === "string") {
63
+ shortChunkHashMap[chunkId] = chunkMaps.hash[chunkId].substr(
64
+ 0,
65
+ length
66
+ );
67
+ }
68
+ }
69
+ return `" + ${JSON.stringify(
70
+ shortChunkHashMap
71
+ )}[${chunkIdExpression}] + "`;
72
+ },
73
+ name: `" + (${JSON.stringify(
74
+ chunkMaps.name
75
+ )}[${chunkIdExpression}]||${chunkIdExpression}) + "`,
76
+ contentHash: {
77
+ javascript: `" + ${JSON.stringify(
78
+ chunkMaps.contentHash.javascript
79
+ )}[${chunkIdExpression}] + "`
80
+ },
81
+ contentHashWithLength: {
82
+ javascript: length => {
83
+ const shortContentHashMap = {};
84
+ const contentHash = chunkMaps.contentHash.javascript;
85
+ for (const chunkId of Object.keys(contentHash)) {
86
+ if (typeof contentHash[chunkId] === "string") {
87
+ shortContentHashMap[chunkId] = contentHash[chunkId].substr(
88
+ 0,
89
+ length
90
+ );
91
+ }
92
+ }
93
+ return `" + ${JSON.stringify(
94
+ shortContentHashMap
95
+ )}[${chunkIdExpression}] + "`;
96
+ }
97
+ }
98
+ },
99
+ contentHashType: "javascript"
100
+ });
101
+ };
102
+ mainTemplate.hooks.localVars.tap(
103
+ "JsonpMainTemplatePlugin",
104
+ (source, chunk, hash) => {
105
+ const extraCode = [];
106
+ if (needChunkLoadingCode(chunk)) {
107
+ extraCode.push(
108
+ "",
109
+ "// object to store loaded and loading chunks",
110
+ "// undefined = chunk not loaded, null = chunk preloaded/prefetched",
111
+ "// Promise = chunk loading, 0 = chunk loaded",
112
+ "var installedChunks = {",
113
+ Template.indent(
114
+ chunk.ids.map(id => `${JSON.stringify(id)}: 0`).join(",\n")
115
+ ),
116
+ "};",
117
+ "",
118
+ needEntryDeferringCode(chunk)
119
+ ? needPrefetchingCode(chunk)
120
+ ? "var deferredModules = [], deferredPrefetch = [];"
121
+ : "var deferredModules = [];"
122
+ : ""
123
+ );
124
+ }
125
+ if (needChunkOnDemandLoadingCode(chunk)) {
126
+ extraCode.push(
127
+ "",
128
+ "// script path function",
129
+ "function jsonpScriptSrc(chunkId) {",
130
+ Template.indent([
131
+ `return ${mainTemplate.requireFn}.p + ${getScriptSrcPath(
132
+ hash,
133
+ chunk,
134
+ "chunkId"
135
+ )}`
136
+ ]),
137
+ "}"
138
+ );
139
+ }
140
+ if (extraCode.length === 0) return source;
141
+ return Template.asString([source, ...extraCode]);
142
+ }
143
+ );
144
+
145
+ mainTemplate.hooks.jsonpScript.tap(
146
+ "JsonpMainTemplatePlugin",
147
+ (_, chunk, hash) => {
148
+ const crossOriginLoading =
149
+ mainTemplate.outputOptions.crossOriginLoading;
150
+ const chunkLoadTimeout = mainTemplate.outputOptions.chunkLoadTimeout;
151
+ const jsonpScriptType = mainTemplate.outputOptions.jsonpScriptType;
152
+
153
+ return Template.asString([
154
+ "var script = document.createElement('script');",
155
+ "var onScriptComplete;",
156
+ jsonpScriptType
157
+ ? `script.type = ${JSON.stringify(jsonpScriptType)};`
158
+ : "",
159
+ "script.charset = 'utf-8';",
160
+ `script.timeout = ${chunkLoadTimeout / 1000};`,
161
+ `if (${mainTemplate.requireFn}.nc) {`,
162
+ Template.indent(
163
+ `script.setAttribute("nonce", ${mainTemplate.requireFn}.nc);`
164
+ ),
165
+ "}",
166
+ "script.src = jsonpScriptSrc(chunkId);",
167
+ crossOriginLoading
168
+ ? Template.asString([
169
+ "if (script.src.indexOf(window.location.origin + '/') !== 0) {",
170
+ Template.indent(
171
+ `script.crossOrigin = ${JSON.stringify(crossOriginLoading)};`
172
+ ),
173
+ "}"
174
+ ])
175
+ : "",
176
+ "// create error before stack unwound to get useful stacktrace later",
177
+ "var error = new Error();",
178
+ "onScriptComplete = function (event) {",
179
+ Template.indent([
180
+ "// avoid mem leaks in IE.",
181
+ "script.onerror = script.onload = null;",
182
+ "clearTimeout(timeout);",
183
+ "var chunk = installedChunks[chunkId];",
184
+ "if(chunk !== 0) {",
185
+ Template.indent([
186
+ "if(chunk) {",
187
+ Template.indent([
188
+ "var errorType = event && (event.type === 'load' ? 'missing' : event.type);",
189
+ "var realSrc = event && event.target && event.target.src;",
190
+ "error.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';",
191
+ "error.name = 'ChunkLoadError';",
192
+ "error.type = errorType;",
193
+ "error.request = realSrc;",
194
+ "chunk[1](error);"
195
+ ]),
196
+ "}",
197
+ "installedChunks[chunkId] = undefined;"
198
+ ]),
199
+ "}"
200
+ ]),
201
+ "};",
202
+ "var timeout = setTimeout(function(){",
203
+ Template.indent([
204
+ "onScriptComplete({ type: 'timeout', target: script });"
205
+ ]),
206
+ `}, ${chunkLoadTimeout});`,
207
+ "script.onerror = script.onload = onScriptComplete;"
208
+ ]);
209
+ }
210
+ );
211
+ mainTemplate.hooks.linkPreload.tap(
212
+ "JsonpMainTemplatePlugin",
213
+ (_, chunk, hash) => {
214
+ const crossOriginLoading =
215
+ mainTemplate.outputOptions.crossOriginLoading;
216
+ const jsonpScriptType = mainTemplate.outputOptions.jsonpScriptType;
217
+
218
+ return Template.asString([
219
+ "var link = document.createElement('link');",
220
+ jsonpScriptType
221
+ ? `link.type = ${JSON.stringify(jsonpScriptType)};`
222
+ : "",
223
+ "link.charset = 'utf-8';",
224
+ `if (${mainTemplate.requireFn}.nc) {`,
225
+ Template.indent(
226
+ `link.setAttribute("nonce", ${mainTemplate.requireFn}.nc);`
227
+ ),
228
+ "}",
229
+ 'link.rel = "preload";',
230
+ 'link.as = "script";',
231
+ "link.href = jsonpScriptSrc(chunkId);",
232
+ crossOriginLoading
233
+ ? Template.asString([
234
+ "if (link.href.indexOf(window.location.origin + '/') !== 0) {",
235
+ Template.indent(
236
+ `link.crossOrigin = ${JSON.stringify(crossOriginLoading)};`
237
+ ),
238
+ "}"
239
+ ])
240
+ : ""
241
+ ]);
242
+ }
243
+ );
244
+ mainTemplate.hooks.linkPrefetch.tap(
245
+ "JsonpMainTemplatePlugin",
246
+ (_, chunk, hash) => {
247
+ const crossOriginLoading =
248
+ mainTemplate.outputOptions.crossOriginLoading;
249
+
250
+ return Template.asString([
251
+ "var link = document.createElement('link');",
252
+ crossOriginLoading
253
+ ? `link.crossOrigin = ${JSON.stringify(crossOriginLoading)};`
254
+ : "",
255
+ `if (${mainTemplate.requireFn}.nc) {`,
256
+ Template.indent(
257
+ `link.setAttribute("nonce", ${mainTemplate.requireFn}.nc);`
258
+ ),
259
+ "}",
260
+ 'link.rel = "prefetch";',
261
+ 'link.as = "script";',
262
+ "link.href = jsonpScriptSrc(chunkId);"
263
+ ]);
264
+ }
265
+ );
266
+ mainTemplate.hooks.requireEnsure.tap(
267
+ "JsonpMainTemplatePlugin load",
268
+ (source, chunk, hash) => {
269
+ return Template.asString([
270
+ source,
271
+ "",
272
+ "// JSONP chunk loading for javascript",
273
+ "",
274
+ "var installedChunkData = installedChunks[chunkId];",
275
+ 'if(installedChunkData !== 0) { // 0 means "already installed".',
276
+ Template.indent([
277
+ "",
278
+ '// a Promise means "currently loading".',
279
+ "if(installedChunkData) {",
280
+ Template.indent(["promises.push(installedChunkData[2]);"]),
281
+ "} else {",
282
+ Template.indent([
283
+ "// setup Promise in chunk cache",
284
+ "var promise = new Promise(function(resolve, reject) {",
285
+ Template.indent([
286
+ "installedChunkData = installedChunks[chunkId] = [resolve, reject];"
287
+ ]),
288
+ "});",
289
+ "promises.push(installedChunkData[2] = promise);",
290
+ "",
291
+ "// start chunk loading",
292
+ mainTemplate.hooks.jsonpScript.call("", chunk, hash),
293
+ "document.head.appendChild(script);"
294
+ ]),
295
+ "}"
296
+ ]),
297
+ "}"
298
+ ]);
299
+ }
300
+ );
301
+ mainTemplate.hooks.requireEnsure.tap(
302
+ {
303
+ name: "JsonpMainTemplatePlugin preload",
304
+ stage: 10
305
+ },
306
+ (source, chunk, hash) => {
307
+ const chunkMap = chunk.getChildIdsByOrdersMap().preload;
308
+ if (!chunkMap || Object.keys(chunkMap).length === 0) return source;
309
+ return Template.asString([
310
+ source,
311
+ "",
312
+ "// chunk preloadng for javascript",
313
+ "",
314
+ `var chunkPreloadMap = ${JSON.stringify(chunkMap, null, "\t")};`,
315
+ "",
316
+ "var chunkPreloadData = chunkPreloadMap[chunkId];",
317
+ "if(chunkPreloadData) {",
318
+ Template.indent([
319
+ "chunkPreloadData.forEach(function(chunkId) {",
320
+ Template.indent([
321
+ "if(installedChunks[chunkId] === undefined) {",
322
+ Template.indent([
323
+ "installedChunks[chunkId] = null;",
324
+ mainTemplate.hooks.linkPreload.call("", chunk, hash),
325
+ "document.head.appendChild(link);"
326
+ ]),
327
+ "}"
328
+ ]),
329
+ "});"
330
+ ]),
331
+ "}"
332
+ ]);
333
+ }
334
+ );
335
+ mainTemplate.hooks.requireExtensions.tap(
336
+ "JsonpMainTemplatePlugin",
337
+ (source, chunk) => {
338
+ if (!needChunkOnDemandLoadingCode(chunk)) return source;
339
+
340
+ return Template.asString([
341
+ source,
342
+ "",
343
+ "// on error function for async loading",
344
+ `${mainTemplate.requireFn}.oe = function(err) { console.error(err); throw err; };`
345
+ ]);
346
+ }
347
+ );
348
+ mainTemplate.hooks.bootstrap.tap(
349
+ "JsonpMainTemplatePlugin",
350
+ (source, chunk, hash) => {
351
+ if (needChunkLoadingCode(chunk)) {
352
+ const withDefer = needEntryDeferringCode(chunk);
353
+ const withPrefetch = needPrefetchingCode(chunk);
354
+ return Template.asString([
355
+ source,
356
+ "",
357
+ "// install a JSONP callback for chunk loading",
358
+ "function webpackJsonpCallback(data) {",
359
+ Template.indent([
360
+ "var chunkIds = data[0];",
361
+ "var moreModules = data[1];",
362
+ withDefer ? "var executeModules = data[2];" : "",
363
+ withPrefetch ? "var prefetchChunks = data[3] || [];" : "",
364
+ '// add "moreModules" to the modules object,',
365
+ '// then flag all "chunkIds" as loaded and fire callback',
366
+ "var moduleId, chunkId, i = 0, resolves = [];",
367
+ "for(;i < chunkIds.length; i++) {",
368
+ Template.indent([
369
+ "chunkId = chunkIds[i];",
370
+ "if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {",
371
+ Template.indent("resolves.push(installedChunks[chunkId][0]);"),
372
+ "}",
373
+ "installedChunks[chunkId] = 0;"
374
+ ]),
375
+ "}",
376
+ "for(moduleId in moreModules) {",
377
+ Template.indent([
378
+ "if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {",
379
+ Template.indent(
380
+ mainTemplate.renderAddModule(
381
+ hash,
382
+ chunk,
383
+ "moduleId",
384
+ "moreModules[moduleId]"
385
+ )
386
+ ),
387
+ "}"
388
+ ]),
389
+ "}",
390
+ "if(parentJsonpFunction) parentJsonpFunction(data);",
391
+ withPrefetch
392
+ ? withDefer
393
+ ? "deferredPrefetch.push.apply(deferredPrefetch, prefetchChunks);"
394
+ : Template.asString([
395
+ "// chunk prefetching for javascript",
396
+ "prefetchChunks.forEach(function(chunkId) {",
397
+ Template.indent([
398
+ "if(installedChunks[chunkId] === undefined) {",
399
+ Template.indent([
400
+ "installedChunks[chunkId] = null;",
401
+ mainTemplate.hooks.linkPrefetch.call("", chunk, hash),
402
+ "document.head.appendChild(link);"
403
+ ]),
404
+ "}"
405
+ ]),
406
+ "});"
407
+ ])
408
+ : "",
409
+ "while(resolves.length) {",
410
+ Template.indent("resolves.shift()();"),
411
+ "}",
412
+ withDefer
413
+ ? Template.asString([
414
+ "",
415
+ "// add entry modules from loaded chunk to deferred list",
416
+ "deferredModules.push.apply(deferredModules, executeModules || []);",
417
+ "",
418
+ "// run deferred modules when all chunks ready",
419
+ "return checkDeferredModules();"
420
+ ])
421
+ : ""
422
+ ]),
423
+ "};",
424
+ withDefer
425
+ ? Template.asString([
426
+ "function checkDeferredModules() {",
427
+ Template.indent([
428
+ "var result;",
429
+ "for(var i = 0; i < deferredModules.length; i++) {",
430
+ Template.indent([
431
+ "var deferredModule = deferredModules[i];",
432
+ "var fulfilled = true;",
433
+ "for(var j = 1; j < deferredModule.length; j++) {",
434
+ Template.indent([
435
+ "var depId = deferredModule[j];",
436
+ "if(installedChunks[depId] !== 0) fulfilled = false;"
437
+ ]),
438
+ "}",
439
+ "if(fulfilled) {",
440
+ Template.indent([
441
+ "deferredModules.splice(i--, 1);",
442
+ "result = " +
443
+ mainTemplate.requireFn +
444
+ "(" +
445
+ mainTemplate.requireFn +
446
+ ".s = deferredModule[0]);"
447
+ ]),
448
+ "}"
449
+ ]),
450
+ "}",
451
+ withPrefetch
452
+ ? Template.asString([
453
+ "if(deferredModules.length === 0) {",
454
+ Template.indent([
455
+ "// chunk prefetching for javascript",
456
+ "deferredPrefetch.forEach(function(chunkId) {",
457
+ Template.indent([
458
+ "if(installedChunks[chunkId] === undefined) {",
459
+ Template.indent([
460
+ "installedChunks[chunkId] = null;",
461
+ mainTemplate.hooks.linkPrefetch.call(
462
+ "",
463
+ chunk,
464
+ hash
465
+ ),
466
+ "document.head.appendChild(link);"
467
+ ]),
468
+ "}"
469
+ ]),
470
+ "});",
471
+ "deferredPrefetch.length = 0;"
472
+ ]),
473
+ "}"
474
+ ])
475
+ : "",
476
+ "return result;"
477
+ ]),
478
+ "}"
479
+ ])
480
+ : ""
481
+ ]);
482
+ }
483
+ return source;
484
+ }
485
+ );
486
+ mainTemplate.hooks.beforeStartup.tap(
487
+ "JsonpMainTemplatePlugin",
488
+ (source, chunk, hash) => {
489
+ if (needChunkLoadingCode(chunk)) {
490
+ var jsonpFunction = mainTemplate.outputOptions.jsonpFunction;
491
+ var globalObject = mainTemplate.outputOptions.globalObject;
492
+ return Template.asString([
493
+ `var jsonpArray = ${globalObject}[${JSON.stringify(
494
+ jsonpFunction
495
+ )}] = ${globalObject}[${JSON.stringify(jsonpFunction)}] || [];`,
496
+ "var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);",
497
+ "jsonpArray.push = webpackJsonpCallback;",
498
+ "jsonpArray = jsonpArray.slice();",
499
+ "for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);",
500
+ "var parentJsonpFunction = oldJsonpFunction;",
501
+ "",
502
+ source
503
+ ]);
504
+ }
505
+ return source;
506
+ }
507
+ );
508
+ mainTemplate.hooks.afterStartup.tap(
509
+ "JsonpMainTemplatePlugin",
510
+ (source, chunk, hash) => {
511
+ const prefetchChunks = chunk.getChildIdsByOrders().prefetch;
512
+ if (
513
+ needChunkLoadingCode(chunk) &&
514
+ prefetchChunks &&
515
+ prefetchChunks.length
516
+ ) {
517
+ return Template.asString([
518
+ source,
519
+ `webpackJsonpCallback([[], {}, 0, ${JSON.stringify(
520
+ prefetchChunks
521
+ )}]);`
522
+ ]);
523
+ }
524
+ return source;
525
+ }
526
+ );
527
+ mainTemplate.hooks.startup.tap(
528
+ "JsonpMainTemplatePlugin",
529
+ (source, chunk, hash) => {
530
+ if (needEntryDeferringCode(chunk)) {
531
+ if (chunk.hasEntryModule()) {
532
+ const entries = [chunk.entryModule].filter(Boolean).map(m =>
533
+ [m.id].concat(
534
+ Array.from(chunk.groupsIterable)[0]
535
+ .chunks.filter(c => c !== chunk)
536
+ .map(c => c.id)
537
+ )
538
+ );
539
+ return Template.asString([
540
+ "// add entry module to deferred list",
541
+ `deferredModules.push(${entries
542
+ .map(e => JSON.stringify(e))
543
+ .join(", ")});`,
544
+ "// run deferred modules when ready",
545
+ "return checkDeferredModules();"
546
+ ]);
547
+ } else {
548
+ return Template.asString([
549
+ "// run deferred modules from other chunks",
550
+ "checkDeferredModules();"
551
+ ]);
552
+ }
553
+ }
554
+ return source;
555
+ }
556
+ );
557
+ mainTemplate.hooks.hotBootstrap.tap(
558
+ "JsonpMainTemplatePlugin",
559
+ (source, chunk, hash) => {
560
+ const globalObject = mainTemplate.outputOptions.globalObject;
561
+ const hotUpdateChunkFilename =
562
+ mainTemplate.outputOptions.hotUpdateChunkFilename;
563
+ const hotUpdateMainFilename =
564
+ mainTemplate.outputOptions.hotUpdateMainFilename;
565
+ const crossOriginLoading =
566
+ mainTemplate.outputOptions.crossOriginLoading;
567
+ const hotUpdateFunction = mainTemplate.outputOptions.hotUpdateFunction;
568
+ const currentHotUpdateChunkFilename = mainTemplate.getAssetPath(
569
+ JSON.stringify(hotUpdateChunkFilename),
570
+ {
571
+ hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
572
+ hashWithLength: length =>
573
+ `" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`,
574
+ chunk: {
575
+ id: '" + chunkId + "'
576
+ }
577
+ }
578
+ );
579
+ const currentHotUpdateMainFilename = mainTemplate.getAssetPath(
580
+ JSON.stringify(hotUpdateMainFilename),
581
+ {
582
+ hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`,
583
+ hashWithLength: length =>
584
+ `" + ${mainTemplate.renderCurrentHashCode(hash, length)} + "`
585
+ }
586
+ );
587
+ const runtimeSource = Template.getFunctionContent(
588
+ require("./JsonpMainTemplate.runtime")
589
+ )
590
+ .replace(/\/\/\$semicolon/g, ";")
591
+ .replace(/\$require\$/g, mainTemplate.requireFn)
592
+ .replace(
593
+ /\$crossOriginLoading\$/g,
594
+ crossOriginLoading ? JSON.stringify(crossOriginLoading) : "null"
595
+ )
596
+ .replace(/\$hotMainFilename\$/g, currentHotUpdateMainFilename)
597
+ .replace(/\$hotChunkFilename\$/g, currentHotUpdateChunkFilename)
598
+ .replace(/\$hash\$/g, JSON.stringify(hash));
599
+ return `${source}
600
+ function hotDisposeChunk(chunkId) {
601
+ delete installedChunks[chunkId];
602
+ }
603
+ var parentHotUpdateCallback = ${globalObject}[${JSON.stringify(
604
+ hotUpdateFunction
605
+ )}];
606
+ ${globalObject}[${JSON.stringify(hotUpdateFunction)}] = ${runtimeSource}`;
607
+ }
608
+ );
609
+ mainTemplate.hooks.hash.tap("JsonpMainTemplatePlugin", hash => {
610
+ hash.update("jsonp");
611
+ hash.update("6");
612
+ });
613
+ }
614
+ }
615
+ module.exports = JsonpMainTemplatePlugin;
@@ -0,0 +1,23 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin");
8
+ const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin");
9
+ const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin");
10
+
11
+ class JsonpTemplatePlugin {
12
+ apply(compiler) {
13
+ compiler.hooks.thisCompilation.tap("JsonpTemplatePlugin", compilation => {
14
+ new JsonpMainTemplatePlugin().apply(compilation.mainTemplate);
15
+ new JsonpChunkTemplatePlugin().apply(compilation.chunkTemplate);
16
+ new JsonpHotUpdateChunkTemplatePlugin().apply(
17
+ compilation.hotUpdateChunkTemplate
18
+ );
19
+ });
20
+ }
21
+ }
22
+
23
+ module.exports = JsonpTemplatePlugin;
@@ -0,0 +1,18 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+
7
+ class WebEnvironmentPlugin {
8
+ constructor(inputFileSystem, outputFileSystem) {
9
+ this.inputFileSystem = inputFileSystem;
10
+ this.outputFileSystem = outputFileSystem;
11
+ }
12
+
13
+ apply(compiler) {
14
+ compiler.outputFileSystem = this.outputFileSystem;
15
+ }
16
+ }
17
+
18
+ module.exports = WebEnvironmentPlugin;