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/enhanced-resolve/lib/ResolverFactory.js | 66 +++++++++++++++++++-------------
1 files changed, 39 insertions(+), 27 deletions(-)
diff --git a/node_modules/enhanced-resolve/lib/ResolverFactory.js b/node_modules/enhanced-resolve/lib/ResolverFactory.js
index 266dd69..fb59943 100644
--- a/node_modules/enhanced-resolve/lib/ResolverFactory.js
+++ b/node_modules/enhanced-resolve/lib/ResolverFactory.js
@@ -34,6 +34,7 @@
const SymlinkPlugin = require("./SymlinkPlugin");
const SyncAsyncFileSystemDecorator = require("./SyncAsyncFileSystemDecorator");
const TryNextPlugin = require("./TryNextPlugin");
+const TsconfigPathsPlugin = require("./TsconfigPathsPlugin");
const UnsafeCachePlugin = require("./UnsafeCachePlugin");
const UseFilePlugin = require("./UseFilePlugin");
const { PathType, getType } = require("./util/path");
@@ -50,9 +51,16 @@
/** @typedef {string | string[] | false} AliasOptionNewRequest */
/** @typedef {{ [k: string]: AliasOptionNewRequest }} AliasOptions */
-/** @typedef {{ [k: string]: string|string[] }} ExtensionAliasOptions */
+/** @typedef {{ [k: string]: string | string[] }} ExtensionAliasOptions */
/** @typedef {false | 0 | "" | null | undefined} Falsy */
-/** @typedef {{apply: (resolver: Resolver) => void} | ((this: Resolver, resolver: Resolver) => void) | Falsy} Plugin */
+/** @typedef {{ apply: (resolver: Resolver) => void } | ((this: Resolver, resolver: Resolver) => void) | Falsy} Plugin */
+
+/**
+ * @typedef {object} TsconfigOptions
+ * @property {string=} configFile A relative path to the tsconfig file based on cwd, or an absolute path of tsconfig file
+ * @property {string[] | "auto"=} references References to other tsconfig files. 'auto' inherits from TypeScript config, or an array of relative/absolute paths
+ * @property {string=} baseUrl Override baseUrl from tsconfig.json. If provided, this value will be used instead of the baseUrl in the tsconfig file
+ */
/**
* @typedef {object} UserResolveOptions
@@ -73,17 +81,18 @@
* @property {boolean=} symlinks Resolve symlinks to their symlinked location
* @property {Resolver=} resolver A prepared Resolver to which the plugins are attached
* @property {string[] | string=} modules A list of directories to resolve modules from, can be absolute path or folder name
- * @property {(string | string[] | {name: string | string[], forceRelative: boolean})[]=} mainFields A list of main fields in description files
+ * @property {(string | string[] | { name: string | string[], forceRelative: boolean })[]=} mainFields A list of main fields in description files
* @property {string[]=} mainFiles A list of main files in directories
* @property {Plugin[]=} plugins A list of additional resolve plugins which should be applied
* @property {PnpApi | null=} pnpApi A PnP API that should be used - null is "never", undefined is "auto"
* @property {string[]=} roots A list of root paths
* @property {boolean=} fullySpecified The request is already fully specified and no extensions or directories are resolved for it
* @property {boolean=} resolveToContext Resolve to a context instead of a file
- * @property {(string|RegExp)[]=} restrictions A list of resolve restrictions
+ * @property {(string | RegExp)[]=} restrictions A list of resolve restrictions
* @property {boolean=} useSyncFileSystemCalls Use only the sync constraints of the file system calls
* @property {boolean=} preferRelative Prefer to resolve module requests as relative requests before falling back to modules
* @property {boolean=} preferAbsolute Prefer to resolve server-relative urls as absolute paths before falling back to resolve in roots
+ * @property {string | boolean | TsconfigOptions=} tsconfig TypeScript config file path or config object with configFile and references
*/
/**
@@ -104,7 +113,7 @@
* @property {Cache | false} unsafeCache unsafe cache
* @property {boolean} symlinks symlinks
* @property {Resolver=} resolver resolver
- * @property {Array<string | string[]>} modules modules
+ * @property {(string | string[])[]} modules modules
* @property {{ name: string[], forceRelative: boolean }[]} mainFields main fields
* @property {Set<string>} mainFiles main files
* @property {Plugin[]} plugins plugins
@@ -115,6 +124,7 @@
* @property {Set<string | RegExp>} restrictions restrictions
* @property {boolean} preferRelative prefer relative
* @property {boolean} preferAbsolute prefer absolute
+ * @property {string | boolean | TsconfigOptions} tsconfig tsconfig file path or config object
*/
/**
@@ -124,7 +134,7 @@
function processPnpApiOption(option) {
if (
option === undefined &&
- /** @type {NodeJS.ProcessVersions & {pnp: string}} */ versions.pnp
+ /** @type {NodeJS.ProcessVersions & { pnp: string }} */ versions.pnp
) {
const _findPnpApi =
/** @type {(issuer: string) => PnpApi | null}} */
@@ -169,17 +179,17 @@
return obj;
})
- : /** @type {Array<AliasOptionEntry>} */ (alias) || [];
+ : /** @type {AliasOptionEntry[]} */ (alias) || [];
}
/**
* Merging filtered elements
* @param {string[]} array source array
* @param {(item: string) => boolean} filter predicate
- * @returns {Array<string | string[]>} merge result
+ * @returns {(string | string[])[]} merge result
*/
function mergeFilteredToArray(array, filter) {
- /** @type {Array<string | string[]>} */
+ /** @type {(string | string[])[]} */
const result = [];
const set = new Set(array);
@@ -294,6 +304,8 @@
preferRelative: options.preferRelative || false,
preferAbsolute: options.preferAbsolute || false,
restrictions: new Set(options.restrictions),
+ tsconfig:
+ typeof options.tsconfig === "undefined" ? false : options.tsconfig,
};
}
@@ -332,6 +344,7 @@
resolver: customResolver,
restrictions,
roots,
+ tsconfig,
} = normalizedOptions;
const plugins = [...userPlugins];
@@ -379,22 +392,7 @@
{ source: "resolve", resolveOptions: { fullySpecified } },
{ source: "internal-resolve", resolveOptions: { fullySpecified: false } },
]) {
- if (unsafeCache) {
- plugins.push(
- new UnsafeCachePlugin(
- source,
- cachePredicate,
- /** @type {import("./UnsafeCachePlugin").Cache} */ (unsafeCache),
- cacheWithContext,
- `new-${source}`,
- ),
- );
- plugins.push(
- new ParsePlugin(`new-${source}`, resolveOptions, "parsed-resolve"),
- );
- } else {
- plugins.push(new ParsePlugin(source, resolveOptions, "parsed-resolve"));
- }
+ plugins.push(new ParsePlugin(source, resolveOptions, "parsed-resolve"));
}
// parsed-resolve
@@ -409,17 +407,31 @@
plugins.push(new NextPlugin("after-parsed-resolve", "described-resolve"));
// described-resolve
- plugins.push(new NextPlugin("described-resolve", "raw-resolve"));
+ if (unsafeCache) {
+ plugins.push(
+ new UnsafeCachePlugin(
+ "described-resolve",
+ cachePredicate,
+ /** @type {import("./UnsafeCachePlugin").Cache} */ (unsafeCache),
+ cacheWithContext,
+ "raw-resolve",
+ ),
+ );
+ } else {
+ plugins.push(new NextPlugin("described-resolve", "raw-resolve"));
+ }
if (fallback.length > 0) {
plugins.push(
new AliasPlugin("described-resolve", fallback, "internal-resolve"),
);
}
-
// raw-resolve
if (alias.length > 0) {
plugins.push(new AliasPlugin("raw-resolve", alias, "internal-resolve"));
}
+ if (tsconfig) {
+ plugins.push(new TsconfigPathsPlugin(tsconfig));
+ }
for (const item of aliasFields) {
plugins.push(new AliasFieldPlugin("raw-resolve", item, "internal-resolve"));
}
--
Gitblit v1.9.3