improve spa errors

This commit is contained in:
Pooya Parsa 2017-08-20 17:43:42 +04:30
parent 0927c130ed
commit 690cfe2114
3 changed files with 12 additions and 9 deletions

View File

@ -28,14 +28,15 @@ let router
const NUXT = window.__NUXT__ || {}
NUXT.components = window.__COMPONENTS__ || null
<% if (debug) { %>
<% if (debug || mode === 'spa') { %>
// Setup global Vue error handler
const defaultErrorHandler = Vue.config.errorHandler
Vue.config.errorHandler = function (err, vm, info) {
err.statusCode = err.statusCode || 'Whoops!'
err.statusCode = err.statusCode || err.name || 'Whoops!'
err.message = err.message || err.toString()
// Show Nuxt Error Page
if(vm && vm.$root && vm.$root.$nuxt) {
if(vm && vm.$root && vm.$root.$nuxt && vm.$root.$nuxt.error && info !== 'render function') {
vm.$root.$nuxt.error(err)
}
@ -44,11 +45,12 @@ Vue.config.errorHandler = function (err, vm, info) {
return defaultErrorHandler(...arguments)
}
// Log to console (default vue behavior)
// Log to console
if (process.env.NODE_ENV !== 'production') {
console.warn(('Error in ' + info + ': "' + err.toString() + '"'), vm);
console.error(err)
} else {
console.error(err.message)
}
console.error(err);
}
<% } %>

View File

@ -13,7 +13,7 @@
<h5 v-else>
Press <kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>I</kbd>
or <kbd>Control</kbd> + <kbd>Shift</kbd> + <kbd>I</kbd>
To open developer tools
to open developer tools.
</h5>
<% } %>
</div>
@ -59,7 +59,7 @@ export default {
return (this.error && this.error.statusCode) || 500
},
message () {
return this.error.toString() || 'Nuxt Server Error'
return this.error.message || 'Nuxt Server Error'
}
}
}

View File

@ -178,6 +178,7 @@ export default class Builder extends Tapable {
uniqBy: _.uniqBy,
isDev: this.options.dev,
debug: this.options.debug,
mode: this.options.mode,
router: this.options.router,
env: this.options.env,
head: this.options.head,