diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 3829df92..d71aa90b 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -52,8 +52,8 @@ import { warnExperimental, warnOnce } from './warn' import { rewriteDefault } from './rewriteDefault' import { createCache } from './cache' import { - shouldTransform, - transformAST as transformWithRefSugar + shouldTransform as shouldTransformRef, + transformAST as transformRefAST } from '@vue/ref-transform' // Special compiler macros @@ -81,10 +81,14 @@ export interface SFCScriptCompileOptions { */ babelParserPlugins?: ParserPlugin[] /** - * Introduce a compiler-based syntax sugar for using refs without `.value` + * (Experimental) Enable syntax transform for using refs without `.value` * https://github.com/vuejs/rfcs/discussions/369 * @default true */ + refTransform?: boolean + /** + * @deprecated use `refTransform` instead. + */ refSugar?: boolean /** * Compile the template and inline the resulting render function @@ -121,7 +125,7 @@ export function compileScript( ): SFCScriptBlock { let { script, scriptSetup, source, filename } = sfc // feature flags - const enableRefSugar = !!options.refSugar + const enableRefTransform = !!options.refSugar || !!options.refTransform let refBindings: string[] | undefined // for backwards compat @@ -858,12 +862,12 @@ export function compileScript( } // 3. Apply ref sugar transform - if (enableRefSugar && shouldTransform(source)) { + if (enableRefTransform && shouldTransformRef(source)) { warnExperimental( `ref sugar`, `https://github.com/vuejs/rfcs/discussions/369` ) - const { rootVars, importedHelpers } = transformWithRefSugar( + const { rootVars, importedHelpers } = transformRefAST( scriptSetupAst, s, startOffset diff --git a/packages/compiler-sfc/src/index.ts b/packages/compiler-sfc/src/index.ts index ae403b74..ec75222e 100644 --- a/packages/compiler-sfc/src/index.ts +++ b/packages/compiler-sfc/src/index.ts @@ -4,8 +4,9 @@ export { compileTemplate } from './compileTemplate' export { compileStyle, compileStyleAsync } from './compileStyle' export { compileScript } from './compileScript' export { rewriteDefault } from './rewriteDefault' -export { generateCodeFrame, walkIdentifiers } from '@vue/compiler-core' +export { generateCodeFrame } from '@vue/compiler-core' export { + shouldTransform as shouldTransformRef, transform as transformRef, transformAST as transformRefAST } from '@vue/ref-transform'