diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 1c20819fb..df3d04bd5 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -101,12 +101,20 @@ export const camelize = _camelize as (s: string) => string // For integration with runtime compiler export { registerRuntimeCompiler } from './component' -// For server-renderer -// TODO move these into a conditional object to avoid exporting them in client -// builds -export { createComponentInstance, setupComponent } from './component' -export { renderComponentRoot } from './componentRenderUtils' -export { normalizeVNode } from './vnode' +// SSR ------------------------------------------------------------------------- +import { createComponentInstance, setupComponent } from './component' +import { renderComponentRoot } from './componentRenderUtils' +import { normalizeVNode } from './vnode' + +// SSR utils are only exposed in SSR builds. +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + normalizeVNode +} + +export const ssrUtils = (__SSR__ ? _ssrUtils : null) as typeof _ssrUtils // Types ----------------------------------------------------------------------- diff --git a/packages/server-renderer/src/renderToString.ts b/packages/server-renderer/src/renderToString.ts index 1b936cfbc..412fdb277 100644 --- a/packages/server-renderer/src/renderToString.ts +++ b/packages/server-renderer/src/renderToString.ts @@ -4,16 +4,13 @@ import { ComponentInternalInstance, VNode, VNodeChildren, - createComponentInstance, - setupComponent, createVNode, - renderComponentRoot, Text, Comment, Fragment, Portal, ShapeFlags, - normalizeVNode + ssrUtils } from 'vue' import { isString, @@ -25,6 +22,13 @@ import { import { renderProps } from './renderProps' import { escape } from './escape' +const { + createComponentInstance, + setupComponent, + renderComponentRoot, + normalizeVNode +} = ssrUtils + // Each component has a buffer array. // A buffer array can contain one of the following: // - plain string