From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送
---
node_modules/webpack/lib/ids/OccurrenceModuleIdsPlugin.js | 59 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 37 insertions(+), 22 deletions(-)
diff --git a/node_modules/webpack/lib/ids/OccurrenceModuleIdsPlugin.js b/node_modules/webpack/lib/ids/OccurrenceModuleIdsPlugin.js
index 3ea78af..c50183b 100644
--- a/node_modules/webpack/lib/ids/OccurrenceModuleIdsPlugin.js
+++ b/node_modules/webpack/lib/ids/OccurrenceModuleIdsPlugin.js
@@ -8,7 +8,6 @@
const {
compareModulesByPreOrderIndexOrIdentifier
} = require("../util/comparators");
-const createSchemaValidation = require("../util/create-schema-validation");
const {
assignAscendingModuleIds,
getUsedModuleIdsAndModules
@@ -18,33 +17,39 @@
/** @typedef {import("../Compiler")} Compiler */
/** @typedef {import("../Module")} Module */
-const validate = createSchemaValidation(
- require("../../schemas/plugins/ids/OccurrenceModuleIdsPlugin.check"),
- () => require("../../schemas/plugins/ids/OccurrenceModuleIdsPlugin.json"),
- {
- name: "Occurrence Order Module Ids Plugin",
- baseDataPath: "options"
- }
-);
-
const PLUGIN_NAME = "OccurrenceModuleIdsPlugin";
class OccurrenceModuleIdsPlugin {
/**
+ * Creates an instance of OccurrenceModuleIdsPlugin.
* @param {OccurrenceModuleIdsPluginOptions=} options options object
*/
constructor(options = {}) {
- validate(options);
+ /** @type {OccurrenceModuleIdsPluginOptions} */
this.options = options;
}
/**
- * Apply the plugin
+ * Applies the plugin by registering its hooks on the compiler.
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply(compiler) {
- const prioritiseInitial = this.options.prioritiseInitial;
+ compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+ compiler.validate(
+ () =>
+ require("../../schemas/plugins/ids/OccurrenceModuleIdsPlugin.json"),
+ this.options,
+ {
+ name: "Occurrence Order Module Ids Plugin",
+ baseDataPath: "options"
+ },
+ (options) =>
+ require("../../schemas/plugins/ids/OccurrenceModuleIdsPlugin.check")(
+ options
+ )
+ );
+ });
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
const moduleGraph = compilation.moduleGraph;
@@ -54,10 +59,14 @@
const [usedIds, modulesInOccurrenceOrder] =
getUsedModuleIdsAndModules(compilation);
+ /** @type {Map<Module, number>} */
const occursInInitialChunksMap = new Map();
+ /** @type {Map<Module, number>} */
const occursInAllChunksMap = new Map();
+ /** @type {Map<Module, number>} */
const initialChunkChunkMap = new Map();
+ /** @type {Map<Module, number>} */
const entryCountMap = new Map();
for (const m of modulesInOccurrenceOrder) {
let initial = 0;
@@ -71,6 +80,7 @@
}
/**
+ * Count occurs in entry.
* @param {Module} module module
* @returns {number} count of occurs
*/
@@ -88,6 +98,7 @@
};
/**
+ * Returns count of occurs.
* @param {Module} module module
* @returns {number} count of occurs
*/
@@ -111,12 +122,12 @@
return sum;
};
- if (prioritiseInitial) {
+ if (this.options.prioritiseInitial) {
for (const m of modulesInOccurrenceOrder) {
const result =
countOccursInEntry(m) +
- initialChunkChunkMap.get(m) +
- entryCountMap.get(m);
+ /** @type {number} */ (initialChunkChunkMap.get(m)) +
+ /** @type {number} */ (entryCountMap.get(m));
occursInInitialChunksMap.set(m, result);
}
}
@@ -125,7 +136,7 @@
const result =
countOccurs(m) +
chunkGraph.getNumberOfModuleChunks(m) +
- entryCountMap.get(m);
+ /** @type {number} */ (entryCountMap.get(m));
occursInAllChunksMap.set(m, result);
}
@@ -134,14 +145,18 @@
);
modulesInOccurrenceOrder.sort((a, b) => {
- if (prioritiseInitial) {
- const aEntryOccurs = occursInInitialChunksMap.get(a);
- const bEntryOccurs = occursInInitialChunksMap.get(b);
+ if (this.options.prioritiseInitial) {
+ const aEntryOccurs =
+ /** @type {number} */
+ (occursInInitialChunksMap.get(a));
+ const bEntryOccurs =
+ /** @type {number} */
+ (occursInInitialChunksMap.get(b));
if (aEntryOccurs > bEntryOccurs) return -1;
if (aEntryOccurs < bEntryOccurs) return 1;
}
- const aOccurs = occursInAllChunksMap.get(a);
- const bOccurs = occursInAllChunksMap.get(b);
+ const aOccurs = /** @type {number} */ (occursInAllChunksMap.get(a));
+ const bOccurs = /** @type {number} */ (occursInAllChunksMap.get(b));
if (aOccurs > bOccurs) return -1;
if (aOccurs < bOccurs) return 1;
return naturalCompare(a, b);
--
Gitblit v1.9.3