From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送
---
node_modules/webpack/lib/dependencies/ImportParserPlugin.js | 51 +++++++++++++++++++++------------------------------
1 files changed, 21 insertions(+), 30 deletions(-)
diff --git a/node_modules/webpack/lib/dependencies/ImportParserPlugin.js b/node_modules/webpack/lib/dependencies/ImportParserPlugin.js
index 15d9235..ef40f80 100644
--- a/node_modules/webpack/lib/dependencies/ImportParserPlugin.js
+++ b/node_modules/webpack/lib/dependencies/ImportParserPlugin.js
@@ -14,10 +14,11 @@
} = require("../javascript/JavascriptParser");
const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
const ContextDependencyHelpers = require("./ContextDependencyHelpers");
+const { getNonOptionalPart } = require("./HarmonyImportDependency");
const ImportContextDependency = require("./ImportContextDependency");
const ImportDependency = require("./ImportDependency");
const ImportEagerDependency = require("./ImportEagerDependency");
-const { ImportPhaseUtils, createGetImportPhase } = require("./ImportPhase");
+const { createGetImportPhase } = require("./ImportPhase");
const ImportWeakDependency = require("./ImportWeakDependency");
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
@@ -29,7 +30,7 @@
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
/** @typedef {import("../javascript/JavascriptParser").ImportExpression} ImportExpression */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
-/** @typedef {import("../javascript/JavascriptParser").ParserState} ParserState */
+/** @typedef {import("../javascript/JavascriptParser").JavascriptParserState} JavascriptParserState */
/** @typedef {import("../javascript/JavascriptParser").Members} Members */
/** @typedef {import("../javascript/JavascriptParser").MembersOptionals} MembersOptionals */
/** @typedef {import("../javascript/JavascriptParser").ArrowFunctionExpression} ArrowFunctionExpression */
@@ -41,11 +42,12 @@
/** @typedef {{ references: RawReferencedExports, expression: ImportExpression }} ImportSettings */
/** @typedef {WeakMap<ImportExpression, RawReferencedExports>} State */
-/** @type {WeakMap<ParserState, State>} */
+/** @type {WeakMap<JavascriptParserState, State>} */
const parserStateMap = new WeakMap();
const dynamicImportTag = Symbol("import()");
/**
+ * Returns import parser plugin state.
* @param {JavascriptParser} parser javascript parser
* @returns {State} import parser plugin state
*/
@@ -57,6 +59,7 @@
}
/**
+ * Tag dynamic import referenced.
* @param {JavascriptParser} parser javascript parser
* @param {ImportExpression} importCall import expression
* @param {string} variableName variable name
@@ -77,6 +80,7 @@
}
/**
+ * Gets fulfilled callback namespace obj.
* @param {CallExpression} importThen import().then() call
* @returns {Identifier | ObjectPattern | undefined} the dynamic imported namespace obj
*/
@@ -95,6 +99,7 @@
}
/**
+ * Walk import then fulfilled callback.
* @param {JavascriptParser} parser javascript parser
* @param {ImportExpression} importCall import expression
* @param {ArrowFunctionExpression | FunctionExpression} fulfilledCallback the fulfilled callback
@@ -156,6 +161,7 @@
}
/**
+ * Exports from enumerable.
* @template T
* @param {Iterable<T>} enumerable enumerable
* @returns {T[][]} array of array
@@ -167,6 +173,7 @@
class ImportParserPlugin {
/**
+ * Creates an instance of ImportParserPlugin.
* @param {JavascriptParserOptions} options options
*/
constructor(options) {
@@ -174,21 +181,11 @@
}
/**
+ * Applies the plugin by registering its hooks on the compiler.
* @param {JavascriptParser} parser the parser
* @returns {void}
*/
apply(parser) {
- /**
- * @param {Members} members members
- * @param {MembersOptionals} membersOptionals members Optionals
- * @returns {string[]} a non optional part
- */
- function getNonOptionalPart(members, membersOptionals) {
- let i = 0;
- while (i < members.length && membersOptionals[i] === false) i++;
- return i !== members.length ? members.slice(0, i) : members;
- }
-
parser.hooks.collectDestructuringAssignmentProperties.tap(
PLUGIN_NAME,
(expr) => {
@@ -262,11 +259,14 @@
parser.hooks.importCall.tap(PLUGIN_NAME, (expr, importThen) => {
const param = parser.evaluateExpression(expr.source);
+ /** @type {null | string} */
let chunkName = null;
let mode = /** @type {ContextMode} */ (this.options.dynamicImportMode);
+ /** @type {null | RegExp} */
let include = null;
+ /** @type {null | RegExp} */
let exclude = null;
- /** @type {RawReferencedExports | null} */
+ /** @type {null | RawReferencedExports} */
let exports = null;
/** @type {RawChunkGroupOptions} */
const groupOptions = {};
@@ -312,11 +312,10 @@
}
}
- const phase = createGetImportPhase(this.options.deferImport)(
- parser,
- expr,
- () => importOptions
- );
+ const phase = createGetImportPhase(
+ this.options.deferImport,
+ this.options.sourceImport
+ )(parser, expr, () => importOptions);
if (importOptions) {
if (importOptions.webpackIgnore !== undefined) {
@@ -557,15 +556,6 @@
mode = "async-weak";
}
- if (ImportPhaseUtils.isDefer(phase)) {
- parser.state.module.addWarning(
- new UnsupportedFeatureWarning(
- "import.defer() is not yet supported for ContextModule (the import path is a dynamic expression).",
- /** @type {DependencyLocation} */ (expr.loc)
- )
- );
- }
-
const dep = ContextDependencyHelpers.create(
ImportContextDependency,
/** @type {Range} */ (expr.range),
@@ -586,7 +576,8 @@
typePrefix: "import()",
category: "esm",
referencedExports: exports,
- attributes: getImportAttributes(expr)
+ attributes: getImportAttributes(expr),
+ phase
},
parser
);
--
Gitblit v1.9.3