From a9f2bfcdbaede058eaeaef2ef3e1028847bbfadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Wed, 6 Dec 2023 14:37:40 +0800 Subject: [PATCH] fix: resolve options for parser ref: https://github.com/vuejs/core/pull/9760 --- packages/compiler-core/src/compile.ts | 15 ++++++--------- packages/compiler-vapor/src/compile.ts | 13 +++++-------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/compiler-core/src/compile.ts b/packages/compiler-core/src/compile.ts index 6ae90907f..d5a9b0194 100644 --- a/packages/compiler-core/src/compile.ts +++ b/packages/compiler-core/src/compile.ts @@ -82,7 +82,10 @@ export function baseCompile( onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED)) } - const ast = isString(source) ? baseParse(source, options) : source + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }) + const ast = isString(source) ? baseParse(source, resolvedOptions) : source const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers) @@ -95,8 +98,7 @@ export function baseCompile( transform( ast, - extend({}, options, { - prefixIdentifiers, + extend({}, resolvedOptions, { nodeTransforms: [ ...nodeTransforms, ...(options.nodeTransforms || []) // user transforms @@ -109,10 +111,5 @@ export function baseCompile( }) ) - return generate( - ast, - extend({}, options, { - prefixIdentifiers - }) - ) + return generate(ast, resolvedOptions) } diff --git a/packages/compiler-vapor/src/compile.ts b/packages/compiler-vapor/src/compile.ts index 7b745fd37..5a5c0cc14 100644 --- a/packages/compiler-vapor/src/compile.ts +++ b/packages/compiler-vapor/src/compile.ts @@ -49,7 +49,10 @@ export function compile( // onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED)) // } - const ast = isString(source) ? parse(source, options) : source + const resolvedOptions = extend({}, options, { + prefixIdentifiers, + }) + const ast = isString(source) ? parse(source, resolvedOptions) : source const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers) @@ -63,7 +66,6 @@ export function compile( const ir = transform( ast, extend({}, options, { - prefixIdentifiers, nodeTransforms: [ ...nodeTransforms, ...(options.nodeTransforms || []), // user transforms @@ -76,12 +78,7 @@ export function compile( }), ) - return generate( - ir, - extend({}, options, { - prefixIdentifiers, - }), - ) + return generate(ir, resolvedOptions) } export type TransformPreset = [