printBuildError.js
1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
const chalk = require('chalk');
module.exports = function printBuildError(err) {
const message = err != null && err.message;
const stack = err != null && err.stack;
// Add more helpful message for Terser error
if (
stack &&
typeof message === 'string' &&
message.indexOf('from Terser') !== -1
) {
try {
const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack);
if (!matched) {
throw new Error('Using errors for control flow is bad.');
}
const problemPath = matched[2];
const line = matched[3];
const column = matched[4];
console.log(
'Failed to minify the code from this file: \n\n',
chalk.yellow(
`\t${problemPath}:${line}${column !== '0' ? ':' + column : ''}`
),
'\n'
);
} catch (ignored) {
console.log('Failed to minify the bundle.', err);
}
console.log('Read more here: https://cra.link/failed-to-minify');
} else {
console.log((message || err) + '\n');
}
console.log();
};