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