From bf5f7c389b181091c3a05392981c0ffdbdfbadb2 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: Sat, 10 Feb 2024 21:49:54 +0800 Subject: [PATCH] refactor(compiler): move `expressionPlugins` to shared options --- packages/compiler-core/src/codegen.ts | 5 ++++- packages/compiler-core/src/options.ts | 12 ++++++------ packages/compiler-vapor/src/generate.ts | 8 ++------ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index 5bd468e22..e1674a0d4 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -89,7 +89,10 @@ export enum NewlineType { export interface CodegenContext extends Omit< Required, - 'bindingMetadata' | 'inline' | 'vaporRuntimeModuleName' + | 'bindingMetadata' + | 'inline' + | 'vaporRuntimeModuleName' + | 'expressionPlugins' > { source: string code: string diff --git a/packages/compiler-core/src/options.ts b/packages/compiler-core/src/options.ts index ce4f84045..8e1af21e2 100644 --- a/packages/compiler-core/src/options.ts +++ b/packages/compiler-core/src/options.ts @@ -168,6 +168,12 @@ interface SharedTransformCodegenOptions { * @default mode === 'module' */ prefixIdentifiers?: boolean + /** + * A list of parser plugins to enable for `@babel/parser`, which is used to + * parse expressions in bindings and interpolations. + * https://babeljs.io/docs/en/next/babel-parser#plugins + */ + expressionPlugins?: ParserPlugin[] /** * Control whether generate SSR-optimized render functions instead. * The resulting function must be attached to the component via the @@ -257,12 +263,6 @@ export interface TransformOptions * @default false */ cacheHandlers?: boolean - /** - * A list of parser plugins to enable for `@babel/parser`, which is used to - * parse expressions in bindings and interpolations. - * https://babeljs.io/docs/en/next/babel-parser#plugins - */ - expressionPlugins?: ParserPlugin[] /** * SFC scoped styles ID */ diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts index 885402543..79bf9889a 100644 --- a/packages/compiler-vapor/src/generate.ts +++ b/packages/compiler-vapor/src/generate.ts @@ -5,7 +5,6 @@ import type { import type { IREffect, RootIRNode, VaporHelper } from './ir' import { SourceMapGenerator } from 'source-map-js' import { extend, remove } from '@vue/shared' -import type { ParserPlugin } from '@babel/parser' import { genBlockFunctionContent } from './generators/block' import { genTemplates } from './generators/template' import { @@ -20,9 +19,7 @@ import { export * from './generators/utils' -export interface CodegenOptions extends BaseCodegenOptions { - expressionPlugins?: ParserPlugin[] -} +export type CodegenOptions = Omit export class CodegenContext { options: Required @@ -64,12 +61,11 @@ export class CodegenContext { options: CodegenOptions, ) { const defaultOptions: Required = { - mode: 'function', + mode: 'function', // TODO prefixIdentifiers: options.mode === 'module', sourceMap: false, filename: `template.vue.html`, scopeId: null, - optimizeImports: false, runtimeGlobalName: `Vue`, runtimeModuleName: `vue`, vaporRuntimeModuleName: 'vue/vapor',