2018-10-25 07:43:42 +00:00
|
|
|
import consola from 'consola'
|
2018-11-08 09:15:56 +00:00
|
|
|
import chalk from 'chalk'
|
|
|
|
import boxen from 'boxen'
|
2018-10-25 07:43:42 +00:00
|
|
|
|
|
|
|
let _setup = false
|
|
|
|
|
|
|
|
export default function setup({ dev }) {
|
|
|
|
// Apply default NODE_ENV if not provided
|
|
|
|
if (!process.env.NODE_ENV) {
|
|
|
|
process.env.NODE_ENV = dev ? 'development' : 'production'
|
|
|
|
}
|
|
|
|
|
|
|
|
if (_setup) {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
_setup = true
|
|
|
|
|
|
|
|
// Global error handler
|
|
|
|
/* istanbul ignore next */
|
|
|
|
process.on('unhandledRejection', (err) => {
|
|
|
|
consola.error(err)
|
|
|
|
})
|
|
|
|
|
|
|
|
// Exit process on fatal errors
|
|
|
|
/* istanbul ignore next */
|
2018-11-01 03:50:07 +00:00
|
|
|
consola.addReporter({
|
2018-10-25 07:43:42 +00:00
|
|
|
log(logObj) {
|
|
|
|
if (logObj.type === 'fatal') {
|
2018-11-08 09:15:56 +00:00
|
|
|
process.stderr.write(boxen([
|
|
|
|
chalk.red('✖ Nuxt Fatal Error'),
|
|
|
|
'',
|
|
|
|
chalk.white(String(logObj.args[0]))
|
|
|
|
].join('\n'), {
|
|
|
|
borderColor: 'red',
|
|
|
|
borderStyle: 'round',
|
|
|
|
padding: 1,
|
|
|
|
margin: 1
|
|
|
|
}) + '\n')
|
2018-10-25 07:43:42 +00:00
|
|
|
process.exit(1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
2018-11-08 09:15:56 +00:00
|
|
|
|
|
|
|
// Wrap all console logs with consola for better DX
|
|
|
|
consola.wrapConsole()
|
2018-10-25 07:43:42 +00:00
|
|
|
}
|