diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index d59be36e0be..2b641e9ad69 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -95,6 +95,7 @@ function createCodegenContext( optimizeImports = false, runtimeGlobalName = `Vue`, runtimeModuleName = `vue`, + ssrRuntimeModuleName = 'vue/server-renderer', ssr = false, isTS = false, inSSR = false @@ -109,6 +110,7 @@ function createCodegenContext( optimizeImports, runtimeGlobalName, runtimeModuleName, + ssrRuntimeModuleName, ssr, isTS, inSSR, @@ -319,7 +321,8 @@ function genFunctionPreamble(ast: RootNode, context: CodegenContext) { push, newline, runtimeModuleName, - runtimeGlobalName + runtimeGlobalName, + ssrRuntimeModuleName } = context const VueBinding = !__BROWSER__ && ssr @@ -363,7 +366,7 @@ function genFunctionPreamble(ast: RootNode, context: CodegenContext) { push( `const { ${ast.ssrHelpers .map(aliasHelper) - .join(', ')} } = require("vue/server-renderer")\n` + .join(', ')} } = require("${ssrRuntimeModuleName}")\n` ) } genHoists(ast.hoists, context) @@ -377,7 +380,13 @@ function genModulePreamble( genScopeId: boolean, inline?: boolean ) { - const { push, newline, optimizeImports, runtimeModuleName } = context + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context if (genScopeId && ast.hoists.length) { ast.helpers.push(PUSH_SCOPE_ID, POP_SCOPE_ID) @@ -414,7 +423,7 @@ function genModulePreamble( push( `import { ${ast.ssrHelpers .map(s => `${helperNameMap[s]} as _${helperNameMap[s]}`) - .join(', ')} } from "@vue/server-renderer"\n` + .join(', ')} } from "${ssrRuntimeModuleName}"\n` ) } diff --git a/packages/compiler-core/src/options.ts b/packages/compiler-core/src/options.ts index 9faea57d713..78ffd4e1625 100644 --- a/packages/compiler-core/src/options.ts +++ b/packages/compiler-core/src/options.ts @@ -275,6 +275,11 @@ export interface CodegenOptions extends SharedTransformCodegenOptions { * @default 'vue' */ runtimeModuleName?: string + /** + * Customize where to import ssr runtime helpers from/** + * @default 'vue/server-renderer' + */ + ssrRuntimeModuleName?: string /** * Customize the global variable name of `Vue` to get helpers from * in function mode diff --git a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap index c60aef7af22..9dbe37cc9de 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap @@ -751,7 +751,7 @@ return (_ctx, _cache) => { exports[`SFC compile