@nuxt/friendly-errors-webpack-plugin
Version:
Recognizes certain classes of webpack errors and cleans, aggregates and prioritizes them to provide a better Developer Experience
39 lines (32 loc) • 1.05 kB
JavaScript
/**
* This will be removed in next versions as it is not handled in the babel-loader
* See: https://github.com/geowarin/friendly-errors-webpack-plugin/issues/2
*/
function cleanStackTrace (message) {
return message
.replace(/^\s*at\s.*:\d+:\d+[\s)]*\n/gm, '') // at ... ...:x:y
}
function cleanMessage (message) {
return message
// match until the last semicolon followed by a space
// this should match
// linux => "(SyntaxError: )Unexpected token (5:11)"
// windows => "(SyntaxError: C:/projects/index.js: )Unexpected token (5:11)"
.replace(/^Module build failed.*:(\sSyntaxError:(.*:)?)?\s/, 'Syntax Error: ')
}
function isBabelSyntaxError (e) {
return e.name === 'ModuleBuildError' &&
e.message.indexOf('SyntaxError') >= 0
}
function transform (error) {
if (isBabelSyntaxError(error)) {
return Object.assign({}, error, {
message: cleanStackTrace(cleanMessage(error.message) + '\n'),
severity: 1000,
name: 'Syntax Error'
})
}
return error
}
module.exports = transform