我有一个相对标准的webpack设置:webpack + babel-stage-0
如果出现语法错误,babel会给我一个非常有用的错误信息,但是还有一个与我的代码完全无关的堆栈跟踪,这通常比终端本身更长。
有没有办法隐藏来自Parser.pp.raise
我知道这是一个非常小的事情,但隐藏堆栈跟踪意味着更少的视觉噪音,我不必向上滚动半个终端窗口以查看我的错误消息。
我试图用stderr隐藏stderr:
webpack --watch > /dev/null
但它似乎没有帮助。
答案 0 :(得分:2)
我遇到了同样的问题,显然没有真正的解决方案。所以我想出了一个黑客:
$ webpack --watch --color | grep -v '^ at .*/node_modules/'
这会过滤webpack输出以删除node_modules目录的回溯,而--color
选项可确保grep不会删除颜色
答案 1 :(得分:0)
如果您running webpack via the API(例如来自gulp文件),您可以使用此单行过滤异常消息:
// filter webpack/babel error traces
const filterStackTraces = err =>
err.toString().split(/[\r\n]+/).filter(line => ! line.match(/^\s+at Parser/)).join(os.EOL);
// example use:
compiler.run( (err, stats) => {
if (err) return done( new gutil.PluginError('webpack', err));
if ( stats.hasErrors() ) {
const statDetails = stats.toJson({errorDetails: false});
// print out parse errors
statDetails.errors.forEach((e) => gutil.log(error(tag), filterStackTraces(e)));
return done(new gutil.PluginError('webpack', 'Parse/ build error(s)'));
}
gutil.log(gutil.colors.green(tag), stats.toString({colors: true}));
done();
});
它会在不触及错误消息和源上下文片段的情况下删除堆栈跟踪,并保持颜色不变。