From 6559fc7be22a4e30be37136c0e565f13e937db55 Mon Sep 17 00:00:00 2001 From: patak Date: Tue, 21 Mar 2023 09:40:10 +0100 Subject: [PATCH] perf(resolve): support # in path only for dependencies (#12469) --- packages/vite/src/node/plugins/resolve.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index d1b43ce08e407f..aeb696936530be 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -485,11 +485,14 @@ function tryFsResolve( ): string | undefined { const { file, postfix } = splitFileAndPostfix(fsPath) + // Dependencies like es5-ext use `#` in their paths. We don't support `#` in user + // source code so we only need to perform the check for dependencies. + const tryUnsplitted = fsPath.includes('#') && fsPath.includes('node_modules') + let res: string | undefined - // if there is a postfix, try resolving it as a complete path first (#4703) if ( - postfix && + tryUnsplitted && (res = tryResolveFile( fsPath, '', @@ -519,7 +522,7 @@ function tryFsResolve( for (const ext of options.extensions) { if ( - postfix && + tryUnsplitted && (res = tryResolveFile( fsPath + ext, '', @@ -554,7 +557,7 @@ function tryFsResolve( if (!tryIndex) return if ( - postfix && + tryUnsplitted && (res = tryResolveFile( fsPath, '',