@@ -9,31 +9,30 @@ const compression = require('compression')
99const serialize = require ( 'serialize-javascript' )
1010const resolve = file => path . resolve ( __dirname , file )
1111
12- // https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer
13- const createBundleRenderer = require ( 'vue-server-renderer' ) . createBundleRenderer
14-
1512const app = express ( )
1613
17- // setup the server renderer, depending on dev/prod environment
18- let html , renderer
14+ let indexHTML // generated by html-webpack-plugin
15+ let renderer // created from the webpack-generated server bundle
1916if ( isProd ) {
20- // create server renderer and index HTML from real fs
21- const bundlePath = resolve ( './dist/server-bundle.js' )
22- renderer = createRenderer ( fs . readFileSync ( bundlePath , 'utf-8' ) )
23- html = parseIndex ( fs . readFileSync ( resolve ( './dist/index.html' ) , 'utf-8' ) )
17+ // in production: create server renderer and index HTML from real fs
18+ renderer = createRenderer ( fs . readFileSync ( resolve ( './dist/server-bundle.js' ) , 'utf-8' ) )
19+ indexHTML = parseIndex ( fs . readFileSync ( resolve ( './dist/index.html' ) , 'utf-8' ) )
2420} else {
21+ // in development: setup the dev server with watch and hot-reload,
22+ // and update renderer / index HTML on file change.
2523 require ( './build/setup-dev-server' ) ( app , {
2624 bundleUpdated : bundle => {
2725 renderer = createRenderer ( bundle )
2826 } ,
2927 indexUpdated : index => {
30- html = parseIndex ( index )
28+ indexHTML = parseIndex ( index )
3129 }
3230 } )
3331}
3432
3533function createRenderer ( bundle ) {
36- return createBundleRenderer ( bundle , {
34+ // https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer
35+ return require ( 'vue-server-renderer' ) . createBundleRenderer ( bundle , {
3736 cache : require ( 'lru-cache' ) ( {
3837 max : 1000 ,
3938 maxAge : 1000 * 60 * 15
@@ -65,7 +64,7 @@ app.get('*', (req, res) => {
6564 const renderStream = renderer . renderToStream ( context )
6665
6766 renderStream . once ( 'data' , ( ) => {
68- res . write ( html . head )
67+ res . write ( indexHTML . head )
6968 } )
7069
7170 renderStream . on ( 'data' , chunk => {
@@ -81,7 +80,7 @@ app.get('*', (req, res) => {
8180 } </script>`
8281 )
8382 }
84- res . end ( html . tail )
83+ res . end ( indexHTML . tail )
8584 console . log ( `whole request: ${ Date . now ( ) - s } ms` )
8685 } )
8786
0 commit comments