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/DllReferencePlugin.js |   56 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/node_modules/webpack/lib/DllReferencePlugin.js b/node_modules/webpack/lib/DllReferencePlugin.js
index 20b0f41..fd64b13 100644
--- a/node_modules/webpack/lib/DllReferencePlugin.js
+++ b/node_modules/webpack/lib/DllReferencePlugin.js
@@ -5,13 +5,12 @@
 
 "use strict";
 
-const parseJson = require("json-parse-even-better-errors");
 const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
 const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
 const WebpackError = require("./WebpackError");
 const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
-const createSchemaValidation = require("./util/create-schema-validation");
-const makePathsRelative = require("./util/identifier").makePathsRelative;
+const { makePathsRelative } = require("./util/identifier");
+const parseJson = require("./util/parseJson");
 
 /** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
 /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
@@ -21,36 +20,37 @@
 /** @typedef {import("./Compiler").CompilationParams} CompilationParams */
 /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
 
-const validate = createSchemaValidation(
-	require("../schemas/plugins/DllReferencePlugin.check"),
-	() => require("../schemas/plugins/DllReferencePlugin.json"),
-	{
-		name: "Dll Reference Plugin",
-		baseDataPath: "options"
-	}
-);
-
 /** @typedef {{ path: string, data: DllReferencePluginOptionsManifest | undefined, error: Error | undefined }} CompilationDataItem */
 
 const PLUGIN_NAME = "DllReferencePlugin";
 
 class DllReferencePlugin {
 	/**
+	 * Creates an instance of DllReferencePlugin.
 	 * @param {DllReferencePluginOptions} options options object
 	 */
 	constructor(options) {
-		validate(options);
 		this.options = options;
-		/** @type {WeakMap<CompilationParams, CompilationDataItem>} */
-		this._compilationData = new WeakMap();
 	}
 
 	/**
-	 * Apply the plugin
+	 * Applies the plugin by registering its hooks on the compiler.
 	 * @param {Compiler} compiler the compiler instance
 	 * @returns {void}
 	 */
 	apply(compiler) {
+		compiler.hooks.validate.tap(PLUGIN_NAME, () => {
+			compiler.validate(
+				() => require("../schemas/plugins/DllReferencePlugin.json"),
+				this.options,
+				{
+					name: "Dll Reference Plugin",
+					baseDataPath: "options"
+				},
+				(options) =>
+					require("../schemas/plugins/DllReferencePlugin.check")(options)
+			);
+		});
 		compiler.hooks.compilation.tap(
 			PLUGIN_NAME,
 			(compilation, { normalModuleFactory }) => {
@@ -60,6 +60,9 @@
 				);
 			}
 		);
+
+		/** @type {WeakMap<CompilationParams, CompilationDataItem>} */
+		const compilationData = new WeakMap();
 
 		compiler.hooks.beforeCompile.tapAsync(PLUGIN_NAME, (params, callback) => {
 			if ("manifest" in this.options) {
@@ -77,9 +80,12 @@
 						// Catch errors parsing the manifest so that blank
 						// or malformed manifest files don't kill the process.
 						try {
-							data.data = parseJson(
-								/** @type {Buffer} */ (result).toString("utf8")
-							);
+							data.data =
+								/** @type {DllReferencePluginOptionsManifest} */
+								(
+									/** @type {unknown} */
+									(parseJson(/** @type {Buffer} */ (result).toString("utf8")))
+								);
 						} catch (parseErr) {
 							// Store the error in the params so that it can
 							// be added as a compilation error later on.
@@ -93,7 +99,7 @@
 								/** @type {Error} */ (parseErr).message
 							);
 						}
-						this._compilationData.set(params, data);
+						compilationData.set(params, data);
 						return callback();
 					});
 					return;
@@ -109,11 +115,12 @@
 				"content" in this.options ? this.options.content : undefined;
 			if ("manifest" in this.options) {
 				const manifestParameter = this.options.manifest;
+				/** @type {undefined | DllReferencePluginOptionsManifest} */
 				let manifest;
 				if (typeof manifestParameter === "string") {
 					const data =
 						/** @type {CompilationDataItem} */
-						(this._compilationData.get(params));
+						(compilationData.get(params));
 					// If there was an error parsing the manifest
 					// file, exit now because the error will be added
 					// as a compilation error in the "compilation" hook.
@@ -155,9 +162,9 @@
 			if ("manifest" in this.options) {
 				const manifest = this.options.manifest;
 				if (typeof manifest === "string") {
-					const data = /** @type {CompilationDataItem} */ (
-						this._compilationData.get(params)
-					);
+					const data =
+						/** @type {CompilationDataItem} */
+						(compilationData.get(params));
 					// If there was an error parsing the manifest file, add the
 					// error as a compilation error to make the compilation fail.
 					if (data.error) {
@@ -174,6 +181,7 @@
 
 class DllManifestError extends WebpackError {
 	/**
+	 * Creates an instance of DllManifestError.
 	 * @param {string} filename filename of the manifest
 	 * @param {string} message error message
 	 */

--
Gitblit v1.9.3