diff --git a/packages/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts index 1b746111acd..c64d3ca33ce 100644 --- a/packages/compiler-core/src/transforms/transformExpression.ts +++ b/packages/compiler-core/src/transforms/transformExpression.ts @@ -112,7 +112,10 @@ export function processExpression( const { inline, bindingMetadata } = context const rewriteIdentifier = (raw: string, parent?: Node, id?: Identifier) => { - const type = hasOwn(bindingMetadata, raw) && bindingMetadata[raw] + const type = + bindingMetadata.__isScriptSetup !== false && + hasOwn(bindingMetadata, raw) && + bindingMetadata[raw] if (inline) { // x = y const isAssignmentLVal = diff --git a/packages/compiler-sfc/__tests__/__snapshots__/cssVars.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/cssVars.spec.ts.snap index a2926e8fee1..99f963804b5 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/cssVars.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/cssVars.spec.ts.snap @@ -109,3 +109,26 @@ return { color, size, ref } }" `; + +exports[`CSS vars injection w/ normal \n` + + `` + ) + expect(content).toMatch(`_useCssVars(_ctx => ({ + "${mockId}-size": (_ctx.size) +})`) + expect(content).toMatch(`import { useCssVars as _useCssVars } from 'vue'`) + assertCode(content) + }) + test('w/