Skip to content

Commit f7669ef

Browse files
committed
improve dev server compile error handling
1 parent 4537fdd commit f7669ef

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

build/setup-dev-server.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ const MFS = require('memory-fs')
44
const clientConfig = require('./webpack.client.config')
55
const serverConfig = require('./webpack.server.config')
66

7+
const readFile = (fs, file) => {
8+
try {
9+
return fs.readFileSync(path.join(clientConfig.output.path, file), 'utf-8')
10+
} catch (e) {}
11+
}
12+
713
module.exports = function setupDevServer (app, cb) {
814
let bundle, clientManifest
915
let resolve
@@ -28,10 +34,16 @@ module.exports = function setupDevServer (app, cb) {
2834
noInfo: true
2935
})
3036
app.use(devMiddleware)
31-
clientCompiler.plugin('done', () => {
32-
const fs = devMiddleware.fileSystem
33-
const readFile = file => fs.readFileSync(path.join(clientConfig.output.path, file), 'utf-8')
34-
clientManifest = JSON.parse(readFile('vue-ssr-client-manifest.json'))
37+
clientCompiler.plugin('done', stats => {
38+
stats = stats.toJson()
39+
stats.errors.forEach(err => console.error(err))
40+
stats.warnings.forEach(err => console.warn(err))
41+
if (stats.errors.length) return
42+
43+
clientManifest = JSON.parse(readFile(
44+
devMiddleware.fileSystem,
45+
'vue-ssr-client-manifest.json'
46+
))
3547
if (bundle) {
3648
ready(bundle, {
3749
clientManifest
@@ -49,12 +61,10 @@ module.exports = function setupDevServer (app, cb) {
4961
serverCompiler.watch({}, (err, stats) => {
5062
if (err) throw err
5163
stats = stats.toJson()
52-
stats.errors.forEach(err => console.error(err))
53-
stats.warnings.forEach(err => console.warn(err))
54-
const readFile = file => mfs.readFileSync(path.join(clientConfig.output.path, file), 'utf-8')
64+
if (stats.errors.length) return
5565

5666
// read bundle generated by vue-ssr-webpack-plugin
57-
bundle = JSON.parse(readFile('vue-ssr-server-bundle.json'))
67+
bundle = JSON.parse(readFile(mfs, 'vue-ssr-server-bundle.json'))
5868
if (clientManifest) {
5969
ready(bundle, {
6070
clientManifest

0 commit comments

Comments
 (0)