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/dependencies/CachedConstDependency.js |   42 +++++++++++++++++++++++++++++++-----------
 1 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/node_modules/webpack/lib/dependencies/CachedConstDependency.js b/node_modules/webpack/lib/dependencies/CachedConstDependency.js
index abf9f6f..c1e71d3 100644
--- a/node_modules/webpack/lib/dependencies/CachedConstDependency.js
+++ b/node_modules/webpack/lib/dependencies/CachedConstDependency.js
@@ -21,28 +21,38 @@
 
 class CachedConstDependency extends NullDependency {
 	/**
+	 * Creates an instance of CachedConstDependency.
 	 * @param {string} expression expression
-	 * @param {Range} range range
+	 * @param {Range | null} range range
 	 * @param {string} identifier identifier
+	 * @param {number=} place place where we inject the expression
 	 */
-	constructor(expression, range, identifier) {
+	constructor(
+		expression,
+		range,
+		identifier,
+		place = CachedConstDependency.PLACE_MODULE
+	) {
 		super();
 
 		this.expression = expression;
 		this.range = range;
 		this.identifier = identifier;
+		this.place = place;
+		/** @type {undefined | string} */
 		this._hashUpdate = undefined;
 	}
 
 	/**
+	 * Create hash update.
 	 * @returns {string} hash update
 	 */
 	_createHashUpdate() {
-		return `${this.identifier}${this.range}${this.expression}`;
+		return `${this.place}${this.identifier}${this.range}${this.expression}`;
 	}
 
 	/**
-	 * Update the hash
+	 * Updates the hash with the data contributed by this instance.
 	 * @param {Hash} hash hash to be updated
 	 * @param {UpdateHashContext} context context
 	 * @returns {void}
@@ -55,6 +65,7 @@
 	}
 
 	/**
+	 * Serializes this instance into the provided serializer context.
 	 * @param {ObjectSerializerContext} context context
 	 */
 	serialize(context) {
@@ -63,11 +74,13 @@
 		write(this.expression);
 		write(this.range);
 		write(this.identifier);
+		write(this.place);
 
 		super.serialize(context);
 	}
 
 	/**
+	 * Restores this instance from the provided deserializer context.
 	 * @param {ObjectDeserializerContext} context context
 	 */
 	deserialize(context) {
@@ -76,10 +89,14 @@
 		this.expression = read();
 		this.range = read();
 		this.identifier = read();
+		this.place = read();
 
 		super.deserialize(context);
 	}
 }
+
+CachedConstDependency.PLACE_MODULE = 10;
+CachedConstDependency.PLACE_CHUNK = 20;
 
 makeSerializable(
 	CachedConstDependency,
@@ -90,30 +107,33 @@
 	DependencyTemplate
 ) {
 	/**
+	 * Applies the plugin by registering its hooks on the compiler.
 	 * @param {Dependency} dependency the dependency for which the template should be applied
 	 * @param {ReplaceSource} source the current replace source which can be modified
 	 * @param {DependencyTemplateContext} templateContext the context object
 	 * @returns {void}
 	 */
-	apply(dependency, source, { initFragments }) {
+	apply(dependency, source, { initFragments, chunkInitFragments }) {
 		const dep = /** @type {CachedConstDependency} */ (dependency);
 
-		initFragments.push(
+		(dep.place === CachedConstDependency.PLACE_MODULE
+			? initFragments
+			: chunkInitFragments
+		).push(
 			new InitFragment(
 				`var ${dep.identifier} = ${dep.expression};\n`,
 				InitFragment.STAGE_CONSTANTS,
-				0,
+				// For a chunk we inject expression after imports
+				dep.place === CachedConstDependency.PLACE_MODULE ? 0 : 10,
 				`const ${dep.identifier}`
 			)
 		);
 
 		if (typeof dep.range === "number") {
 			source.insert(dep.range, dep.identifier);
-
-			return;
+		} else if (dep.range !== null) {
+			source.replace(dep.range[0], dep.range[1] - 1, dep.identifier);
 		}
-
-		source.replace(dep.range[0], dep.range[1] - 1, dep.identifier);
 	}
 };
 

--
Gitblit v1.9.3