41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
|
// @ts-nocheck
|
||
|
'use strict';
|
||
|
|
||
|
let prettyError;
|
||
|
|
||
|
function getPrettyError () {
|
||
|
if (!prettyError) {
|
||
|
// lazily require to improve startup time since pretty-error is rather heavy package
|
||
|
const PrettyError = require('pretty-error');
|
||
|
prettyError = new PrettyError();
|
||
|
prettyError.withoutColors();
|
||
|
prettyError.skipPackage('html-plugin-evaluation');
|
||
|
prettyError.skipNodeFiles();
|
||
|
prettyError.skip(function (traceLine) {
|
||
|
return traceLine.path === 'html-plugin-evaluation';
|
||
|
});
|
||
|
}
|
||
|
return prettyError;
|
||
|
}
|
||
|
|
||
|
module.exports = function (err, context) {
|
||
|
return {
|
||
|
toHtml: function () {
|
||
|
return 'Html Webpack Plugin:\n<pre>\n' + this.toString() + '</pre>';
|
||
|
},
|
||
|
toJsonHtml: function () {
|
||
|
return JSON.stringify(this.toHtml());
|
||
|
},
|
||
|
toString: function () {
|
||
|
try {
|
||
|
return getPrettyError().render(err).replace(/webpack:\/\/\/\./g, context);
|
||
|
} catch (e) {
|
||
|
// This can sometimes fail. We don't know why, but returning the
|
||
|
// original error is better than returning the error thrown by
|
||
|
// pretty-error.
|
||
|
return err;
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
};
|