This commit is contained in:
2025-09-19 14:25:20 +08:00
parent 269893a435
commit fbf3f77229
24949 changed files with 2839404 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
'use strict';
/**
* 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.*:\s/, 'Syntax Error: ')
// remove mini-css-extract-plugin loader tracing errors
.replace(/^Syntax Error: ModuleBuildError:.*:\s/, '')
// remove babel extra wording and path
.replace(/^Syntax Error: SyntaxError: (([A-Z]:)?\/.*:\s)?/, 'Syntax Error: ');
}
function isBabelSyntaxError(e) {
return e.name === 'ModuleBuildError' || 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;

View File

@@ -0,0 +1,20 @@
'use strict';
function isEslintError (e) {
return e.originalStack
.some(stackframe => stackframe.fileName && stackframe.fileName.indexOf('eslint-loader') > 0) ||
e.name === 'ESLintError';
}
function transform(error) {
if (isEslintError(error)) {
return Object.assign({}, error, {
name: 'Lint error',
type: 'lint-error',
});
}
return error;
}
module.exports = transform;

View File

@@ -0,0 +1,30 @@
'use strict';
const TYPE = 'module-not-found';
function isModuleNotFoundError (e) {
const webpackError = e.webpackError || {};
return webpackError.dependencies
&& webpackError.dependencies.length > 0
&& e.name === 'ModuleNotFoundError'
&& e.message.indexOf('Module not found') === 0;
}
function transform(error) {
const webpackError = error.webpackError;
if (isModuleNotFoundError(error)) {
const dependency = webpackError.dependencies[0];
const module = dependency.request || dependency.options.request;
return Object.assign({}, error, {
message: `Module not found ${module}`,
type: TYPE,
severity: 900,
module,
name: 'Module not found'
});
}
return error;
}
module.exports = transform;