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