From 2cc85c64f1c64a2dbaeae276a3e2ca8420de76b7 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 18:09:58 +0800
Subject: [PATCH] 上报转运调试

---
 node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js |   48 +++++++++++++++++++++---------------------------
 1 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js b/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js
index ce64832..b7c75f8 100644
--- a/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js
+++ b/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js
@@ -9,7 +9,6 @@
 const {
 	compareModulesByPreOrderIndexOrIdentifier
 } = require("../util/comparators");
-const createSchemaValidation = require("../util/create-schema-validation");
 const createHash = require("../util/createHash");
 const {
 	getFullModuleName,
@@ -19,41 +18,38 @@
 /** @typedef {import("../../declarations/plugins/ids/HashedModuleIdsPlugin").HashedModuleIdsPluginOptions} HashedModuleIdsPluginOptions */
 /** @typedef {import("../Compiler")} Compiler */
 
-const validate = createSchemaValidation(
-	require("../../schemas/plugins/ids/HashedModuleIdsPlugin.check"),
-	() => require("../../schemas/plugins/ids/HashedModuleIdsPlugin.json"),
-	{
-		name: "Hashed Module Ids Plugin",
-		baseDataPath: "options"
-	}
-);
-
 const PLUGIN_NAME = "HashedModuleIdsPlugin";
 
 class HashedModuleIdsPlugin {
 	/**
+	 * Creates an instance of HashedModuleIdsPlugin.
 	 * @param {HashedModuleIdsPluginOptions=} options options object
 	 */
 	constructor(options = {}) {
-		validate(options);
-
-		/** @type {Required<Omit<HashedModuleIdsPluginOptions, "context">> & { context?: string | undefined }} */
-		this.options = {
-			context: undefined,
-			hashFunction: DEFAULTS.HASH_FUNCTION,
-			hashDigest: "base64",
-			hashDigestLength: 4,
-			...options
-		};
+		/** @type {HashedModuleIdsPluginOptions} */
+		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 options = this.options;
+		compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+			compiler.validate(
+				() => require("../../schemas/plugins/ids/HashedModuleIdsPlugin.json"),
+				this.options,
+				{
+					name: "Hashed Module Ids Plugin",
+					baseDataPath: "options"
+				},
+				(options) =>
+					require("../../schemas/plugins/ids/HashedModuleIdsPlugin.check")(
+						options
+					)
+			);
+		});
 		compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
 			compilation.hooks.moduleIds.tap(PLUGIN_NAME, () => {
 				const chunkGraph = compilation.chunkGraph;
@@ -68,13 +64,11 @@
 				for (const module of modulesInNaturalOrder) {
 					const ident = getFullModuleName(module, context, compiler.root);
 					const hash = createHash(
-						/** @type {NonNullable<HashedModuleIdsPluginOptions["hashFunction"]>} */ (
-							options.hashFunction
-						)
+						this.options.hashFunction || DEFAULTS.HASH_FUNCTION
 					);
 					hash.update(ident || "");
-					const hashId = hash.digest(options.hashDigest);
-					let len = options.hashDigestLength;
+					const hashId = hash.digest(this.options.hashDigest || "base64");
+					let len = this.options.hashDigestLength || 4;
 					while (usedIds.has(hashId.slice(0, len))) {
 						/** @type {number} */ (len)++;
 					}

--
Gitblit v1.9.3