index.js 17 KB

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