From 7fd633f17479f19e2824af3034c9971be8cd81af Mon Sep 17 00:00:00 2001 From: shulaoda <165626830+shulaoda@users.noreply.github.com> Date: Fri, 19 Jun 2026 20:28:05 +0800 Subject: [PATCH] perf(ssr): only record import-binding identifiers in ssrTransform --- packages/vite/src/node/ssr/ssrTransform.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts index bdb0f42802ca45..bc278869959ca5 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -327,7 +327,7 @@ async function ssrTransformScript( } // 3. convert references to import bindings & import.meta references - walk(ast, { + walk(ast, idToImportMap, { onStatements(statements) { // ensure ";" between statements for (let i = 0; i < statements.length - 1; i++) { @@ -451,6 +451,7 @@ const isNodeInPattern = (node: ESTree.Node): node is ESTreeProperty => */ function walk( root: ESTree.Node, + idToImportMap: Map, { onIdentifier, onImportMeta, onDynamicImport, onStatements }: Visitors, ) { const parentStack: ESTree.Node[] = [] @@ -541,6 +542,7 @@ function walk( if (node.type === 'Identifier') { if ( + idToImportMap.has(node.name) && !isInScope(node.name, parentStack) && isRefIdentifier(node, parent!, parentStack) ) {