Browse Source

wip(ssr): move ssr only utils to conditional export

Evan You 6 years ago
parent
commit
a7b0954f14
2 changed files with 22 additions and 10 deletions
  1. 14 6
      packages/runtime-core/src/index.ts
  2. 8 4
      packages/server-renderer/src/renderToString.ts

+ 14 - 6
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 -----------------------------------------------------------------------
 

+ 8 - 4
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