Commit 8a297b43 authored by Evan You's avatar Evan You

improve comments in server.js

parent b99fcc07
......@@ -9,31 +9,30 @@ const compression = require('compression')
const serialize = require('serialize-javascript')
const resolve = file => path.resolve(__dirname, file)
// https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer
const createBundleRenderer = require('vue-server-renderer').createBundleRenderer
const app = express()
// setup the server renderer, depending on dev/prod environment
let html, renderer
let indexHTML // generated by html-webpack-plugin
let renderer // created from the webpack-generated server bundle
if (isProd) {
// create server renderer and index HTML from real fs
const bundlePath = resolve('./dist/server-bundle.js')
renderer = createRenderer(fs.readFileSync(bundlePath, 'utf-8'))
html = parseIndex(fs.readFileSync(resolve('./dist/index.html'), 'utf-8'))
// in production: create server renderer and index HTML from real fs
renderer = createRenderer(fs.readFileSync(resolve('./dist/server-bundle.js'), 'utf-8'))
indexHTML = parseIndex(fs.readFileSync(resolve('./dist/index.html'), 'utf-8'))
} else {
// in development: setup the dev server with watch and hot-reload,
// and update renderer / index HTML on file change.
require('./build/setup-dev-server')(app, {
bundleUpdated: bundle => {
renderer = createRenderer(bundle)
},
indexUpdated: index => {
html = parseIndex(index)
indexHTML = parseIndex(index)
}
})
}
function createRenderer (bundle) {
return createBundleRenderer(bundle, {
// https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer
return require('vue-server-renderer').createBundleRenderer(bundle, {
cache: require('lru-cache')({
max: 1000,
maxAge: 1000 * 60 * 15
......@@ -65,7 +64,7 @@ app.get('*', (req, res) => {
const renderStream = renderer.renderToStream(context)
renderStream.once('data', () => {
res.write(html.head)
res.write(indexHTML.head)
})
renderStream.on('data', chunk => {
......@@ -81,7 +80,7 @@ app.get('*', (req, res) => {
}</script>`
)
}
res.end(html.tail)
res.end(indexHTML.tail)
console.log(`whole request: ${Date.now() - s}ms`)
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment