Просмотр исходного кода

fix: resolve options for parser

ref: https://github.com/vuejs/core/pull/9760
三咲智子 Kevin Deng 2 лет назад
Родитель
Сommit
a9f2bfcdba
2 измененных файлов с 11 добавлено и 17 удалено
  1. 6 9
      packages/compiler-core/src/compile.ts
  2. 5 8
      packages/compiler-vapor/src/compile.ts

+ 6 - 9
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)
 }

+ 5 - 8
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 = [