@@ -14,26 +14,21 @@ const createBundleRenderer = require('vue-server-renderer').createBundleRenderer
1414
1515const app = express ( )
1616
17- // parse index.html template
18- const html = ( ( ) => {
19- const contentMarker = '<!-- APP -->'
20- const template = fs . readFileSync ( resolve ( './dist/index.html' ) , 'utf-8' )
21- const i = template . indexOf ( contentMarker )
22- return {
23- head : template . slice ( 0 , i ) ,
24- tail : template . slice ( i + contentMarker . length )
25- }
26- } ) ( )
27-
2817// setup the server renderer, depending on dev/prod environment
29- let renderer
18+ let html , renderer
3019if ( isProd ) {
31- // create server renderer from real fs
20+ // create server renderer and index HTML from real fs
3221 const bundlePath = resolve ( './dist/server-bundle.js' )
3322 renderer = createRenderer ( fs . readFileSync ( bundlePath , 'utf-8' ) )
23+ html = parseIndex ( fs . readFileSync ( resolve ( './dist/index.html' ) , 'utf-8' ) )
3424} else {
35- require ( './build/setup-dev-server' ) ( app , bundle => {
36- renderer = createRenderer ( bundle )
25+ require ( './build/setup-dev-server' ) ( app , {
26+ bundleUpdated : bundle => {
27+ renderer = createRenderer ( bundle )
28+ } ,
29+ indexUpdated : index => {
30+ html = parseIndex ( index )
31+ }
3732 } )
3833}
3934
@@ -46,8 +41,17 @@ function createRenderer (bundle) {
4641 } )
4742}
4843
44+ function parseIndex ( template ) {
45+ const contentMarker = '<!-- APP -->'
46+ const i = template . indexOf ( contentMarker )
47+ return {
48+ head : template . slice ( 0 , i ) ,
49+ tail : template . slice ( i + contentMarker . length )
50+ }
51+ }
52+
4953app . use ( compression ( { threshold : 0 } ) )
50- app . use ( '/dist' , express . static ( resolve ( './dist' ) , { maxAge : 60 * 60 * 24 * 30 } ) )
54+ app . use ( '/dist' , express . static ( resolve ( './dist' ) , { maxAge : isProd ? 60 * 60 * 24 * 30 : 0 } ) )
5155app . use ( favicon ( resolve ( './src/assets/logo.png' ) ) )
5256
5357app . get ( '*' , ( req , res ) => {
0 commit comments