1
1
process . env . VUE_ENV = 'server'
2
+ const isProd = process . env . NODE_ENV === 'production'
2
3
3
4
const fs = require ( 'fs' )
4
5
const path = require ( 'path' )
6
+ const resolve = file => path . resolve ( __dirname , file )
5
7
const express = require ( 'express' )
6
8
const favicon = require ( 'serve-favicon' )
7
9
const serialize = require ( 'serialize-javascript' )
@@ -11,11 +13,10 @@ const app = express()
11
13
12
14
// parse index.html template
13
15
const html = ( ( ) => {
14
- const template = fs . readFileSync ( path . resolve ( __dirname , './index.html' ) , 'utf-8' )
16
+ const template = fs . readFileSync ( resolve ( './index.html' ) , 'utf-8' )
15
17
const i = template . indexOf ( '{{ APP }}' )
16
- const style = process . env . NODE_ENV === 'production'
17
- ? '<link rel="stylesheet" href="/dist/styles.css">'
18
- : ''
18
+ // styles are injected dynamically via vue-style-loader in development
19
+ const style = isProd ? '<link rel="stylesheet" href="/dist/styles.css">' : ''
19
20
return {
20
21
head : template . slice ( 0 , i ) . replace ( '{{ STYLE }}' , style ) ,
21
22
tail : template . slice ( i + '{{ APP }}' . length )
@@ -24,18 +25,18 @@ const html = (() => {
24
25
25
26
// setup the server renderer, depending on dev/prod environment
26
27
let renderer
27
- if ( process . env . NODE_ENV !== 'production' ) {
28
+ if ( isProd ) {
29
+ // create server renderer from real fs
30
+ const bundlePath = resolve ( './dist/server-bundle.js' )
31
+ renderer = createBundleRenderer ( fs . readFileSync ( bundlePath , 'utf-8' ) )
32
+ } else {
28
33
require ( './build/setup-dev-server' ) ( app , bundle => {
29
34
renderer = createBundleRenderer ( bundle )
30
35
} )
31
- } else {
32
- // create server renderer from real fs
33
- const bundlePath = path . resolve ( __dirname , './dist/server-bundle.js' )
34
- renderer = createBundleRenderer ( fs . readFileSync ( bundlePath , 'utf-8' ) )
35
36
}
36
37
37
- app . use ( '/dist' , express . static ( path . resolve ( __dirname , './dist' ) ) )
38
- app . use ( favicon ( path . resolve ( __dirname , './src/assets/logo.png' ) ) )
38
+ app . use ( '/dist' , express . static ( resolve ( './dist' ) ) )
39
+ app . use ( favicon ( resolve ( './src/assets/logo.png' ) ) )
39
40
40
41
app . get ( '*' , ( req , res ) => {
41
42
var s = Date . now ( )
0 commit comments