From e4481a9d3493fffafc8fa30e314abbae897ce6b7 Mon Sep 17 00:00:00 2001
From: Pan <panfree23@gmail.com>
Date: Mon, 2 Jul 2018 14:02:42 +0800
Subject: [PATCH] fix[build.js]:  fixed build bug in preview mode #819

---
 build/build.js | 32 ++++++++++++++++++++------------
 package.json   |  3 ++-
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/build/build.js b/build/build.js
index fc793972..fe24ac8f 100644
--- a/build/build.js
+++ b/build/build.js
@@ -8,9 +8,10 @@ const chalk = require('chalk')
 const webpack = require('webpack')
 const config = require('../config')
 const webpackConfig = require('./webpack.prod.conf')
-const server = require('pushstate-server')
+var connect = require('connect');
+var serveStatic = require('serve-static')
 
-var spinner = ora('building for '+ process.env.env_config+ ' environment...' )
+const spinner = ora('building for ' + process.env.env_config + ' environment...')
 spinner.start()
 
 rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
@@ -27,22 +28,29 @@ rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
     }) + '\n\n')
 
     if (stats.hasErrors()) {
-      console.log(chalk.red('  Build failed with errors.\n'))
+      console.log(chalk.red(' Build failed with errors.\n'))
       process.exit(1)
     }
 
-    console.log(chalk.cyan('  Build complete.\n'))
+    console.log(chalk.cyan(' Build complete.\n'))
     console.log(chalk.yellow(
-      '  Tip: built files are meant to be served over an HTTP server.\n' +
-      '  Opening index.html over file:// won\'t work.\n'
+      ' Tip: built files are meant to be served over an HTTP server.\n' +
+      ' Opening index.html over file:// won\'t work.\n'
     ))
-    if(process.env.npm_config_preview){
-      server.start({
-          port: 9526,
-          directory: './dist',
-          file: '/index.html'
+
+    if (process.env.npm_config_preview) {
+      const port = 9526
+      const host = "http://localhost:" + port
+      const basePath = config.build.assetsPublicPath
+      const app = connect()
+
+      app.use(basePath, serveStatic('./dist', {
+        'index': ['index.html', '/']
+      }))
+
+      app.listen(port, function () {
+        console.log(chalk.green(`> Listening at  http://localhost:${port}${basePath}`))
       });
-      console.log('> Listening at ' +  'http://localhost:9526' + '\n')
     }
   })
 })
diff --git a/package.json b/package.json
index 8fe3c3e3..b58fbceb 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
     "axios": "0.17.1",
     "clipboard": "1.7.1",
     "codemirror": "5.32.0",
+    "connect": "3.6.6",
     "driver.js": "0.5.2",
     "dropzone": "5.2.0",
     "echarts": "3.8.5",
@@ -42,6 +43,7 @@
     "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
     "screenfull": "3.3.2",
+    "serve-static": "1.13.2",
     "showdown": "1.8.5",
     "simplemde": "1.11.2",
     "sortablejs": "1.7.0",
@@ -87,7 +89,6 @@
     "postcss-import": "11.0.0",
     "postcss-loader": "2.0.9",
     "postcss-url": "7.3.0",
-    "pushstate-server": "3.0.1",
     "rimraf": "2.6.2",
     "sass-loader": "6.0.6",
     "script-loader": "0.7.2",
-- 
GitLab