mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-01-12 22:46:30 +08:00
* Bump deps * Fix linter errors * Whoops * Try to bump webpack * Update peer deps to min for eslint 4.x
51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const get = require('lodash/get');
|
|
const chalk = require('chalk');
|
|
|
|
module.exports = function printBuildError(err) {
|
|
const message = get(err, 'message');
|
|
const stack = get(err, 'stack');
|
|
|
|
// Add more helpful message for UglifyJs error
|
|
if (
|
|
stack &&
|
|
typeof message === 'string' &&
|
|
message.indexOf('from UglifyJs') !== -1
|
|
) {
|
|
try {
|
|
const matched = /Unexpected token:(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(
|
|
stack
|
|
);
|
|
if (!matched) {
|
|
throw new Error(
|
|
"The regex pattern is not matched. Maybe UglifyJs changed it's message?"
|
|
);
|
|
}
|
|
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(`${problemPath} line ${line}:${column}`),
|
|
'\n'
|
|
);
|
|
} catch (ignored) {
|
|
console.log('Failed to minify the code.', err);
|
|
}
|
|
console.log('Read more here: http://bit.ly/2tRViJ9');
|
|
} else {
|
|
console.log((message || err) + '\n');
|
|
}
|
|
console.log();
|
|
};
|