From b074b85b1919f3bc0552436da2dd041644dc1d45 Mon Sep 17 00:00:00 2001 From: HcySunYang Date: Thu, 29 Apr 2021 10:48:41 +0800 Subject: [PATCH] fix(compiler-sfc): should distinguish between normal script and script setup when processing css vars --- .../src/transforms/transformExpression.ts | 5 +++- .../__snapshots__/cssVars.spec.ts.snap | 23 ++++++++++++++++++ .../compiler-sfc/__tests__/cssVars.spec.ts | 24 +++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) 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/