From 0c8153eca847cca4d8a61fea80095bb4959d6a5d 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:43:09 +0800 Subject: [PATCH] fix(compiler): add `vaporRuntimeModuleName` option --- packages/compiler-core/src/codegen.ts | 5 ++++- packages/compiler-core/src/options.ts | 5 +++++ packages/compiler-vapor/src/generate.ts | 9 +++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index 81b512d89..5bd468e22 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -87,7 +87,10 @@ export enum NewlineType { } export interface CodegenContext - extends Omit, 'bindingMetadata' | 'inline'> { + extends Omit< + Required, + 'bindingMetadata' | 'inline' | 'vaporRuntimeModuleName' + > { source: string code: string line: number diff --git a/packages/compiler-core/src/options.ts b/packages/compiler-core/src/options.ts index df0c1e0ee..ce4f84045 100644 --- a/packages/compiler-core/src/options.ts +++ b/packages/compiler-core/src/options.ts @@ -318,6 +318,11 @@ export interface CodegenOptions extends SharedTransformCodegenOptions { * @default 'vue' */ runtimeModuleName?: string + /** + * Customize where to import runtime helpers from. + * @default 'vue/vapor' + */ + vaporRuntimeModuleName?: string /** * Customize where to import ssr runtime helpers from/** * @default 'vue/server-renderer' diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts index 2055fb8b5..885402543 100644 --- a/packages/compiler-vapor/src/generate.ts +++ b/packages/compiler-vapor/src/generate.ts @@ -63,7 +63,7 @@ export class CodegenContext { public ir: RootIRNode, options: CodegenOptions, ) { - const defaultOptions = { + const defaultOptions: Required = { mode: 'function', prefixIdentifiers: options.mode === 'module', sourceMap: false, @@ -72,6 +72,7 @@ export class CodegenContext { optimizeImports: false, runtimeGlobalName: `Vue`, runtimeModuleName: `vue`, + vaporRuntimeModuleName: 'vue/vapor', ssrRuntimeModuleName: 'vue/server-renderer', ssr: false, isTS: false, @@ -156,17 +157,17 @@ export function generate( } } -function genHelperImports({ helpers, vaporHelpers, code }: CodegenContext) { +function genHelperImports({ helpers, vaporHelpers, options }: CodegenContext) { let imports = '' if (helpers.size) { imports += `import { ${[...helpers] .map(h => `${h} as _${h}`) - .join(', ')} } from 'vue';\n` + .join(', ')} } from '${options.runtimeModuleName}';\n` } if (vaporHelpers.size) { imports += `import { ${[...vaporHelpers] .map(h => `${h} as _${h}`) - .join(', ')} } from 'vue/vapor';\n` + .join(', ')} } from '${options.vaporRuntimeModuleName}';\n` } return imports }