index.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. const util = require("util");
  7. const memoize = require("./util/memoize");
  8. /** @typedef {import("../declarations/WebpackOptions").Entry} Entry */
  9. /** @typedef {import("../declarations/WebpackOptions").EntryNormalized} EntryNormalized */
  10. /** @typedef {import("../declarations/WebpackOptions").EntryObject} EntryObject */
  11. /** @typedef {import("../declarations/WebpackOptions").ExternalItem} ExternalItem */
  12. /** @typedef {import("../declarations/WebpackOptions").ExternalItemFunction} ExternalItemFunction */
  13. /** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectKnown} ExternalItemObjectKnown */
  14. /** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectUnknown} ExternalItemObjectUnknown */
  15. /** @typedef {import("../declarations/WebpackOptions").ExternalItemValue} ExternalItemValue */
  16. /** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
  17. /** @typedef {import("../declarations/WebpackOptions").FileCacheOptions} FileCacheOptions */
  18. /** @typedef {import("../declarations/WebpackOptions").GeneratorOptionsByModuleTypeKnown} GeneratorOptionsByModuleTypeKnown */
  19. /** @typedef {import("../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
  20. /** @typedef {import("../declarations/WebpackOptions").MemoryCacheOptions} MemoryCacheOptions */
  21. /** @typedef {import("../declarations/WebpackOptions").ModuleOptions} ModuleOptions */
  22. /** @typedef {import("../declarations/WebpackOptions").ParserOptionsByModuleTypeKnown} ParserOptionsByModuleTypeKnown */
  23. /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
  24. /** @typedef {import("../declarations/WebpackOptions").RuleSetCondition} RuleSetCondition */
  25. /** @typedef {import("../declarations/WebpackOptions").RuleSetConditionAbsolute} RuleSetConditionAbsolute */
  26. /** @typedef {import("../declarations/WebpackOptions").RuleSetRule} RuleSetRule */
  27. /** @typedef {import("../declarations/WebpackOptions").RuleSetUse} RuleSetUse */
  28. /** @typedef {import("../declarations/WebpackOptions").RuleSetUseFunction} RuleSetUseFunction */
  29. /** @typedef {import("../declarations/WebpackOptions").RuleSetUseItem} RuleSetUseItem */
  30. /** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
  31. /** @typedef {import("../declarations/WebpackOptions").WebpackOptions} Configuration */
  32. /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
  33. /** @typedef {import("../declarations/WebpackOptions").WebpackPluginFunction} WebpackPluginFunction */
  34. /** @typedef {import("../declarations/WebpackOptions").WebpackPluginInstance} WebpackPluginInstance */
  35. /** @typedef {import("./ChunkGroup")} ChunkGroup */
  36. /** @typedef {import("./Compiler").AssetEmittedInfo} AssetEmittedInfo */
  37. /** @typedef {import("./Compilation").Asset} Asset */
  38. /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
  39. /** @typedef {import("./Compilation").EntryOptions} EntryOptions */
  40. /** @typedef {import("./Compilation").PathData} PathData */
  41. /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
  42. /** @typedef {import("./Entrypoint")} Entrypoint */
  43. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionCallback} ExternalItemFunctionCallback */
  44. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionData} ExternalItemFunctionData */
  45. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionDataGetResolve} ExternalItemFunctionDataGetResolve */
  46. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionDataGetResolveCallbackResult} ExternalItemFunctionDataGetResolveCallbackResult */
  47. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionDataGetResolveResult} ExternalItemFunctionDataGetResolveResult */
  48. /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionPromise} ExternalItemFunctionPromise */
  49. /** @typedef {import("./MultiCompiler").MultiCompilerOptions} MultiCompilerOptions */
  50. /** @typedef {import("./MultiCompiler").MultiWebpackOptions} MultiConfiguration */
  51. /** @typedef {import("./MultiStats")} MultiStats */
  52. /** @typedef {import("./MultiStats").MultiStatsOptions} MultiStatsOptions */
  53. /** @typedef {import("./NormalModuleFactory").ResolveData} ResolveData */
  54. /** @typedef {import("./Parser").ParserState} ParserState */
  55. /** @typedef {import("./ResolverFactory").ResolvePluginInstance} ResolvePluginInstance */
  56. /** @typedef {import("./ResolverFactory").Resolver} Resolver */
  57. /** @typedef {import("./Template").RenderManifestEntry} RenderManifestEntry */
  58. /** @typedef {import("./Template").RenderManifestOptions} RenderManifestOptions */
  59. /** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */
  60. /** @typedef {import("./Watching")} Watching */
  61. /** @typedef {import("./cli").Argument} Argument */
  62. /** @typedef {import("./cli").Problem} Problem */
  63. /** @typedef {import("./cli").Colors} Colors */
  64. /** @typedef {import("./cli").ColorsOptions} ColorsOptions */
  65. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */
  66. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */
  67. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */
  68. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkOrigin} StatsChunkOrigin */
  69. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */
  70. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */
  71. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsLogging} StatsLogging */
  72. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsLoggingEntry} StatsLoggingEntry */
  73. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModule} StatsModule */
  74. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleIssuer} StatsModuleIssuer */
  75. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleReason} StatsModuleReason */
  76. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleTraceDependency} StatsModuleTraceDependency */
  77. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleTraceItem} StatsModuleTraceItem */
  78. /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsProfile} StatsProfile */
  79. /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
  80. /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
  81. /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
  82. /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
  83. /**
  84. * Returns function.
  85. * @template {EXPECTED_FUNCTION} T
  86. * @param {() => T} factory factory function
  87. * @returns {T} function
  88. */
  89. const lazyFunction = (factory) => {
  90. const fac = memoize(factory);
  91. const f = /** @type {unknown} */ (
  92. /**
  93. * Handles the callback logic for this hook.
  94. * @param {...EXPECTED_ANY} args args
  95. * @returns {T} result
  96. */
  97. (...args) => fac()(...args)
  98. );
  99. return /** @type {T} */ (f);
  100. };
  101. /**
  102. * Merges the provided values into a single result.
  103. * @template A
  104. * @template B
  105. * @param {A} obj input a
  106. * @param {B} exports input b
  107. * @returns {A & B} merged
  108. */
  109. const mergeExports = (obj, exports) => {
  110. const descriptors = Object.getOwnPropertyDescriptors(exports);
  111. for (const name of Object.keys(descriptors)) {
  112. const descriptor = descriptors[name];
  113. if (descriptor.get) {
  114. const fn = descriptor.get;
  115. Object.defineProperty(obj, name, {
  116. configurable: false,
  117. enumerable: true,
  118. get: memoize(fn)
  119. });
  120. } else if (typeof descriptor.value === "object") {
  121. Object.defineProperty(obj, name, {
  122. configurable: false,
  123. enumerable: true,
  124. writable: false,
  125. value: mergeExports({}, descriptor.value)
  126. });
  127. } else {
  128. throw new Error(
  129. "Exposed values must be either a getter or an nested object"
  130. );
  131. }
  132. }
  133. return /** @type {A & B} */ (Object.freeze(obj));
  134. };
  135. const fn = lazyFunction(() => require("./webpack"));
  136. module.exports = mergeExports(fn, {
  137. get webpack() {
  138. return require("./webpack");
  139. },
  140. /**
  141. * Returns validate fn.
  142. * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
  143. */
  144. get validate() {
  145. const webpackOptionsSchemaCheck =
  146. /** @type {(configuration: Configuration | MultiConfiguration) => boolean} */
  147. (require("../schemas/WebpackOptions.check"));
  148. const getRealValidate = memoize(
  149. /**
  150. * Handles the callback logic for this hook.
  151. * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
  152. */
  153. () => {
  154. const validateSchema = require("./validateSchema");
  155. const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
  156. return (options) => validateSchema(webpackOptionsSchema, options);
  157. }
  158. );
  159. return (options) => {
  160. if (!webpackOptionsSchemaCheck(options)) {
  161. getRealValidate()(options);
  162. }
  163. };
  164. },
  165. get validateSchema() {
  166. const validateSchema = require("./validateSchema");
  167. return validateSchema;
  168. },
  169. get version() {
  170. return /** @type {string} */ (require("../package.json").version);
  171. },
  172. get cli() {
  173. return require("./cli");
  174. },
  175. get AutomaticPrefetchPlugin() {
  176. return require("./AutomaticPrefetchPlugin");
  177. },
  178. get AsyncDependenciesBlock() {
  179. return require("./AsyncDependenciesBlock");
  180. },
  181. get BannerPlugin() {
  182. return require("./BannerPlugin");
  183. },
  184. get Cache() {
  185. return require("./Cache");
  186. },
  187. get Chunk() {
  188. return require("./Chunk");
  189. },
  190. get ChunkGraph() {
  191. return require("./ChunkGraph");
  192. },
  193. get CleanPlugin() {
  194. return require("./CleanPlugin");
  195. },
  196. get Compilation() {
  197. return require("./Compilation");
  198. },
  199. get Compiler() {
  200. return require("./Compiler");
  201. },
  202. get ConcatenationScope() {
  203. return require("./ConcatenationScope");
  204. },
  205. get ContextExclusionPlugin() {
  206. return require("./ContextExclusionPlugin");
  207. },
  208. get ContextReplacementPlugin() {
  209. return require("./ContextReplacementPlugin");
  210. },
  211. get DefinePlugin() {
  212. return require("./DefinePlugin");
  213. },
  214. get DelegatedPlugin() {
  215. return require("./DelegatedPlugin");
  216. },
  217. get Dependency() {
  218. return require("./Dependency");
  219. },
  220. get DllPlugin() {
  221. return require("./DllPlugin");
  222. },
  223. get DllReferencePlugin() {
  224. return require("./DllReferencePlugin");
  225. },
  226. get DynamicEntryPlugin() {
  227. return require("./DynamicEntryPlugin");
  228. },
  229. get DotenvPlugin() {
  230. return require("./DotenvPlugin");
  231. },
  232. get EntryOptionPlugin() {
  233. return require("./EntryOptionPlugin");
  234. },
  235. get EntryPlugin() {
  236. return require("./EntryPlugin");
  237. },
  238. get EnvironmentPlugin() {
  239. return require("./EnvironmentPlugin");
  240. },
  241. get EvalDevToolModulePlugin() {
  242. return require("./EvalDevToolModulePlugin");
  243. },
  244. get EvalSourceMapDevToolPlugin() {
  245. return require("./EvalSourceMapDevToolPlugin");
  246. },
  247. get ExternalModule() {
  248. return require("./ExternalModule");
  249. },
  250. get ExternalsPlugin() {
  251. return require("./ExternalsPlugin");
  252. },
  253. get Generator() {
  254. return require("./Generator");
  255. },
  256. get HotUpdateChunk() {
  257. return require("./HotUpdateChunk");
  258. },
  259. get HotModuleReplacementPlugin() {
  260. return require("./HotModuleReplacementPlugin");
  261. },
  262. get InitFragment() {
  263. return require("./InitFragment");
  264. },
  265. get IgnorePlugin() {
  266. return require("./IgnorePlugin");
  267. },
  268. get JavascriptModulesPlugin() {
  269. return util.deprecate(
  270. () => require("./javascript/JavascriptModulesPlugin"),
  271. "webpack.JavascriptModulesPlugin has moved to webpack.javascript.JavascriptModulesPlugin",
  272. "DEP_WEBPACK_JAVASCRIPT_MODULES_PLUGIN"
  273. )();
  274. },
  275. get LibManifestPlugin() {
  276. return require("./LibManifestPlugin");
  277. },
  278. get LibraryTemplatePlugin() {
  279. return util.deprecate(
  280. () => require("./LibraryTemplatePlugin"),
  281. "webpack.LibraryTemplatePlugin is deprecated and has been replaced by compilation.outputOptions.library or compilation.addEntry + passing a library option",
  282. "DEP_WEBPACK_LIBRARY_TEMPLATE_PLUGIN"
  283. )();
  284. },
  285. get LoaderOptionsPlugin() {
  286. return require("./LoaderOptionsPlugin");
  287. },
  288. get LoaderTargetPlugin() {
  289. return require("./LoaderTargetPlugin");
  290. },
  291. get Module() {
  292. return require("./Module");
  293. },
  294. get ModuleFactory() {
  295. return require("./ModuleFactory");
  296. },
  297. get ModuleFilenameHelpers() {
  298. return require("./ModuleFilenameHelpers");
  299. },
  300. get ModuleGraph() {
  301. return require("./ModuleGraph");
  302. },
  303. get ModuleGraphConnection() {
  304. return require("./ModuleGraphConnection");
  305. },
  306. get NoEmitOnErrorsPlugin() {
  307. return require("./NoEmitOnErrorsPlugin");
  308. },
  309. get NormalModule() {
  310. return require("./NormalModule");
  311. },
  312. get NormalModuleReplacementPlugin() {
  313. return require("./NormalModuleReplacementPlugin");
  314. },
  315. get MultiCompiler() {
  316. return require("./MultiCompiler");
  317. },
  318. get OptimizationStages() {
  319. return require("./OptimizationStages");
  320. },
  321. get Parser() {
  322. return require("./Parser");
  323. },
  324. get PlatformPlugin() {
  325. return require("./PlatformPlugin");
  326. },
  327. get PrefetchPlugin() {
  328. return require("./PrefetchPlugin");
  329. },
  330. get ProgressPlugin() {
  331. return require("./ProgressPlugin");
  332. },
  333. get ProvidePlugin() {
  334. return require("./ProvidePlugin");
  335. },
  336. get RuntimeGlobals() {
  337. return require("./RuntimeGlobals");
  338. },
  339. get RuntimeModule() {
  340. return require("./RuntimeModule");
  341. },
  342. get SingleEntryPlugin() {
  343. return util.deprecate(
  344. () => require("./EntryPlugin"),
  345. "SingleEntryPlugin was renamed to EntryPlugin",
  346. "DEP_WEBPACK_SINGLE_ENTRY_PLUGIN"
  347. )();
  348. },
  349. get SourceMapDevToolPlugin() {
  350. return require("./SourceMapDevToolPlugin");
  351. },
  352. get Stats() {
  353. return require("./Stats");
  354. },
  355. get ManifestPlugin() {
  356. return require("./ManifestPlugin");
  357. },
  358. get Template() {
  359. return require("./Template");
  360. },
  361. get UsageState() {
  362. return require("./ExportsInfo").UsageState;
  363. },
  364. get WatchIgnorePlugin() {
  365. return require("./WatchIgnorePlugin");
  366. },
  367. get WebpackError() {
  368. return require("./WebpackError");
  369. },
  370. get WebpackOptionsApply() {
  371. return require("./WebpackOptionsApply");
  372. },
  373. get WebpackOptionsDefaulter() {
  374. return util.deprecate(
  375. () => require("./WebpackOptionsDefaulter"),
  376. "webpack.WebpackOptionsDefaulter is deprecated and has been replaced by webpack.config.getNormalizedWebpackOptions and webpack.config.applyWebpackOptionsDefaults",
  377. "DEP_WEBPACK_OPTIONS_DEFAULTER"
  378. )();
  379. },
  380. // TODO webpack 6 deprecate
  381. get WebpackOptionsValidationError() {
  382. return require("schema-utils").ValidationError;
  383. },
  384. get ValidationError() {
  385. return require("schema-utils").ValidationError;
  386. },
  387. cache: {
  388. get MemoryCachePlugin() {
  389. return require("./cache/MemoryCachePlugin");
  390. }
  391. },
  392. config: {
  393. get getNormalizedWebpackOptions() {
  394. return require("./config/normalization").getNormalizedWebpackOptions;
  395. },
  396. get applyWebpackOptionsDefaults() {
  397. return require("./config/defaults").applyWebpackOptionsDefaults;
  398. }
  399. },
  400. dependencies: {
  401. get ModuleDependency() {
  402. return require("./dependencies/ModuleDependency");
  403. },
  404. get HarmonyImportDependency() {
  405. return require("./dependencies/HarmonyImportDependency");
  406. },
  407. get ConstDependency() {
  408. return require("./dependencies/ConstDependency");
  409. },
  410. get NullDependency() {
  411. return require("./dependencies/NullDependency");
  412. }
  413. },
  414. ids: {
  415. get ChunkModuleIdRangePlugin() {
  416. return require("./ids/ChunkModuleIdRangePlugin");
  417. },
  418. get NaturalModuleIdsPlugin() {
  419. return require("./ids/NaturalModuleIdsPlugin");
  420. },
  421. get OccurrenceModuleIdsPlugin() {
  422. return require("./ids/OccurrenceModuleIdsPlugin");
  423. },
  424. get NamedModuleIdsPlugin() {
  425. return require("./ids/NamedModuleIdsPlugin");
  426. },
  427. get DeterministicChunkIdsPlugin() {
  428. return require("./ids/DeterministicChunkIdsPlugin");
  429. },
  430. get DeterministicModuleIdsPlugin() {
  431. return require("./ids/DeterministicModuleIdsPlugin");
  432. },
  433. get NamedChunkIdsPlugin() {
  434. return require("./ids/NamedChunkIdsPlugin");
  435. },
  436. get OccurrenceChunkIdsPlugin() {
  437. return require("./ids/OccurrenceChunkIdsPlugin");
  438. },
  439. get HashedModuleIdsPlugin() {
  440. return require("./ids/HashedModuleIdsPlugin");
  441. }
  442. },
  443. javascript: {
  444. get EnableChunkLoadingPlugin() {
  445. return require("./javascript/EnableChunkLoadingPlugin");
  446. },
  447. get JavascriptModulesPlugin() {
  448. return require("./javascript/JavascriptModulesPlugin");
  449. },
  450. get JavascriptParser() {
  451. return require("./javascript/JavascriptParser");
  452. }
  453. },
  454. optimize: {
  455. get AggressiveMergingPlugin() {
  456. return require("./optimize/AggressiveMergingPlugin");
  457. },
  458. get AggressiveSplittingPlugin() {
  459. return util.deprecate(
  460. () => require("./optimize/AggressiveSplittingPlugin"),
  461. "AggressiveSplittingPlugin is deprecated in favor of SplitChunksPlugin",
  462. "DEP_WEBPACK_AGGRESSIVE_SPLITTING_PLUGIN"
  463. )();
  464. },
  465. get InnerGraph() {
  466. return require("./optimize/InnerGraph");
  467. },
  468. get LimitChunkCountPlugin() {
  469. return require("./optimize/LimitChunkCountPlugin");
  470. },
  471. get MergeDuplicateChunksPlugin() {
  472. return require("./optimize/MergeDuplicateChunksPlugin");
  473. },
  474. get MinChunkSizePlugin() {
  475. return require("./optimize/MinChunkSizePlugin");
  476. },
  477. get ModuleConcatenationPlugin() {
  478. return require("./optimize/ModuleConcatenationPlugin");
  479. },
  480. get RealContentHashPlugin() {
  481. return require("./optimize/RealContentHashPlugin");
  482. },
  483. get RuntimeChunkPlugin() {
  484. return require("./optimize/RuntimeChunkPlugin");
  485. },
  486. get SideEffectsFlagPlugin() {
  487. return require("./optimize/SideEffectsFlagPlugin");
  488. },
  489. get SplitChunksPlugin() {
  490. return require("./optimize/SplitChunksPlugin");
  491. }
  492. },
  493. runtime: {
  494. get GetChunkFilenameRuntimeModule() {
  495. return require("./runtime/GetChunkFilenameRuntimeModule");
  496. },
  497. get LoadScriptRuntimeModule() {
  498. return require("./runtime/LoadScriptRuntimeModule");
  499. }
  500. },
  501. prefetch: {
  502. get ChunkPrefetchPreloadPlugin() {
  503. return require("./prefetch/ChunkPrefetchPreloadPlugin");
  504. }
  505. },
  506. web: {
  507. get FetchCompileWasmPlugin() {
  508. return require("./web/FetchCompileWasmPlugin");
  509. },
  510. get FetchCompileAsyncWasmPlugin() {
  511. return require("./web/FetchCompileAsyncWasmPlugin");
  512. },
  513. get JsonpChunkLoadingRuntimeModule() {
  514. return require("./web/JsonpChunkLoadingRuntimeModule");
  515. },
  516. get JsonpTemplatePlugin() {
  517. return require("./web/JsonpTemplatePlugin");
  518. },
  519. get CssLoadingRuntimeModule() {
  520. return require("./css/CssLoadingRuntimeModule");
  521. }
  522. },
  523. esm: {
  524. get ModuleChunkLoadingRuntimeModule() {
  525. return require("./esm/ModuleChunkLoadingRuntimeModule");
  526. }
  527. },
  528. webworker: {
  529. get WebWorkerTemplatePlugin() {
  530. return require("./webworker/WebWorkerTemplatePlugin");
  531. }
  532. },
  533. node: {
  534. get NodeEnvironmentPlugin() {
  535. return require("./node/NodeEnvironmentPlugin");
  536. },
  537. get NodeSourcePlugin() {
  538. return require("./node/NodeSourcePlugin");
  539. },
  540. get NodeTargetPlugin() {
  541. return require("./node/NodeTargetPlugin");
  542. },
  543. get NodeTemplatePlugin() {
  544. return require("./node/NodeTemplatePlugin");
  545. },
  546. get ReadFileCompileWasmPlugin() {
  547. return require("./node/ReadFileCompileWasmPlugin");
  548. },
  549. get ReadFileCompileAsyncWasmPlugin() {
  550. return require("./node/ReadFileCompileAsyncWasmPlugin");
  551. }
  552. },
  553. electron: {
  554. get ElectronTargetPlugin() {
  555. return require("./electron/ElectronTargetPlugin");
  556. }
  557. },
  558. wasm: {
  559. get AsyncWebAssemblyModulesPlugin() {
  560. return require("./wasm-async/AsyncWebAssemblyModulesPlugin");
  561. },
  562. get EnableWasmLoadingPlugin() {
  563. return require("./wasm/EnableWasmLoadingPlugin");
  564. }
  565. },
  566. css: {
  567. get CssModulesPlugin() {
  568. return require("./css/CssModulesPlugin");
  569. }
  570. },
  571. library: {
  572. get AbstractLibraryPlugin() {
  573. return require("./library/AbstractLibraryPlugin");
  574. },
  575. get EnableLibraryPlugin() {
  576. return require("./library/EnableLibraryPlugin");
  577. }
  578. },
  579. container: {
  580. get ContainerPlugin() {
  581. return require("./container/ContainerPlugin");
  582. },
  583. get ContainerReferencePlugin() {
  584. return require("./container/ContainerReferencePlugin");
  585. },
  586. get ModuleFederationPlugin() {
  587. return require("./container/ModuleFederationPlugin");
  588. },
  589. get scope() {
  590. return require("./container/options").scope;
  591. }
  592. },
  593. sharing: {
  594. get ConsumeSharedPlugin() {
  595. return require("./sharing/ConsumeSharedPlugin");
  596. },
  597. get ProvideSharedPlugin() {
  598. return require("./sharing/ProvideSharedPlugin");
  599. },
  600. get SharePlugin() {
  601. return require("./sharing/SharePlugin");
  602. },
  603. get scope() {
  604. return require("./container/options").scope;
  605. }
  606. },
  607. debug: {
  608. get ProfilingPlugin() {
  609. return require("./debug/ProfilingPlugin");
  610. }
  611. },
  612. util: {
  613. get createHash() {
  614. return require("./util/createHash");
  615. },
  616. get comparators() {
  617. return require("./util/comparators");
  618. },
  619. get runtime() {
  620. return require("./util/runtime");
  621. },
  622. get serialization() {
  623. return require("./util/serialization");
  624. },
  625. get cleverMerge() {
  626. return require("./util/cleverMerge").cachedCleverMerge;
  627. },
  628. get LazySet() {
  629. return require("./util/LazySet");
  630. },
  631. get compileBooleanMatcher() {
  632. return require("./util/compileBooleanMatcher");
  633. }
  634. },
  635. get sources() {
  636. return require("webpack-sources");
  637. },
  638. experiments: {
  639. schemes: {
  640. get HttpUriPlugin() {
  641. return require("./schemes/HttpUriPlugin");
  642. },
  643. get VirtualUrlPlugin() {
  644. return require("./schemes/VirtualUrlPlugin");
  645. }
  646. },
  647. ids: {
  648. get SyncModuleIdsPlugin() {
  649. return require("./ids/SyncModuleIdsPlugin");
  650. }
  651. }
  652. }
  653. });