diff --git a/src/babel/helpers/code-frame.js b/src/babel/helpers/code-frame.js index e1bb415681..8f24c61502 100644 --- a/src/babel/helpers/code-frame.js +++ b/src/babel/helpers/code-frame.js @@ -55,10 +55,10 @@ var highlight = function (text) { }); }; -export default function (lines, lineNumber, colNumber) { +export default function (lines: number, lineNumber: number, colNumber: number, color?): string { colNumber = Math.max(colNumber, 0); - if (chalk.supportsColor) { + if (color && chalk.supportsColor) { lines = highlight(lines); } diff --git a/src/babel/helpers/parse.js b/src/babel/helpers/parse.js index b93361c638..124407c96f 100644 --- a/src/babel/helpers/parse.js +++ b/src/babel/helpers/parse.js @@ -32,12 +32,12 @@ export default function (opts, code, callback) { } catch (err) { if (!err._babel) { err._babel = true; + var message = `${opts.filename}: ${err.message}`; var loc = err.loc; if (loc) { - var frame = codeFrame(code, loc.line, loc.column + 1); - message += frame; + message += codeFrame(code, loc.line, loc.column + 1, opts.highlightErrors); } if (err.stack) { diff --git a/src/babel/transformation/file/options.json b/src/babel/transformation/file/options.json index 6824ebb66c..0482ff9576 100644 --- a/src/babel/transformation/file/options.json +++ b/src/babel/transformation/file/options.json @@ -19,6 +19,12 @@ }, + "highlightErrors": { + "description": "ANSI syntax highlight error messages" + "type": "boolean", + "default": true + }, + "suppressDeprecationMessages": { "type": "boolean", "default": false,