Taken from react-dev-utils, but is published as a standalone package and has Typescript definition.
Install using
npm install @k88/format-webpack-messages
Use this to format webpack warnings/errors:
const webpack = require('webpack');
const formatMessages = require('@k88/webpack-format-messages');
const compiler = webpack(/* webpack-config */);
compiler.hooks.done.tap('done', (stats) => {
const isSuccessful = stats.hasErrors() || stats.hasWarnings();
if (!isSuccessful) {
const messages = formatMessages(stats);
if (messages.errors.length) {
console.log('Failed to compile.');
messages.errors.forEach(e => console.log(e));
}
if (messages.warnings.length) {
console.log('Compiled with warnings.');
messages.warnings.forEach(w => console.log(w));
}
}
});