From 806b72560996ad6db1a8f9e123bfc53aa23f8545 Mon Sep 17 00:00:00 2001 From: bluwy Date: Sun, 9 Apr 2023 00:16:15 +0800 Subject: [PATCH] chore: fix merge --- packages/vite/src/node/optimizer/index.ts | 1 - packages/vite/src/node/optimizer/resolve.ts | 26 ++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 8a33803cc068b5..fea26116c18778 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -27,7 +27,6 @@ import { } from '../utils' import { transformWithEsbuild } from '../plugins/esbuild' import { ESBUILD_MODULES_TARGET } from '../constants' -import { resolvePackageData } from '../packages' import type { ViteDevServer } from '../server' import { esbuildCjsExternalPlugin, esbuildDepPlugin } from './esbuildDepPlugin' import { scanImports } from './scan' diff --git a/packages/vite/src/node/optimizer/resolve.ts b/packages/vite/src/node/optimizer/resolve.ts index 0594afda307c8c..27edd088c2d250 100644 --- a/packages/vite/src/node/optimizer/resolve.ts +++ b/packages/vite/src/node/optimizer/resolve.ts @@ -2,12 +2,7 @@ import path from 'node:path' import glob from 'fast-glob' import micromatch from 'micromatch' import type { ResolvedConfig } from '../config' -import { - escapeRegex, - getNpmPackageName, - nestedResolveFrom, - slash, -} from '../utils' +import { escapeRegex, getNpmPackageName, slash } from '../utils' import { resolvePackageData } from '../packages' export function createOptimizeDepsIncludeResolver( @@ -19,6 +14,7 @@ export function createOptimizeDepsIncludeResolver( scan: true, ssrOptimizeCheck: ssr, ssrConfig: config.ssr, + packageCache: new Map(), }) return async (id: string) => { const lastArrowIndex = id.lastIndexOf('>') @@ -29,11 +25,10 @@ export function createOptimizeDepsIncludeResolver( // 'foo > bar > baz' => 'foo > bar' & 'baz' const nestedRoot = id.substring(0, lastArrowIndex).trim() const nestedPath = id.substring(lastArrowIndex + 1).trim() - const basedir = nestedResolveFrom( + const basedir = nestedResolveBasedir( nestedRoot, config.root, config.resolve.preserveSymlinks, - ssr, ) return await resolve(nestedPath, basedir, undefined, ssr) } @@ -156,3 +151,18 @@ function getFirstExportStringValue( } } } + +/** + * Continuously resolve the basedir of packages separated by '>' + */ +function nestedResolveBasedir( + id: string, + basedir: string, + preserveSymlinks = false, +) { + const pkgs = id.split('>').map((pkg) => pkg.trim()) + for (const pkg of pkgs) { + basedir = resolvePackageData(pkg, basedir, preserveSymlinks)?.dir || basedir + } + return basedir +}