Babel + Mocha堆栈跟踪报告错误的行号

时间:2015-12-12 09:45:39

标签: node.js mocha babeljs

使用Babel 6和Mocha时,堆栈跟踪会报告错误的行号。我很确定这是因为转换添加了额外的代码。对于我来说,这是Babel 6 vs. Babel 5.x中的新行为。当使用Mocha进行单元测试时,有没有人有解决方法?

这是我的.babelrc配置:

formData.append('EIR_REF', $('#no_eir').val());

注意:无论我是否在我的应用程序的入口点需要('babel-polyfill'),都会发生这种情况。

示例堆栈跟踪如下所示:

{
  "ignore": [
    "node_modules",
    "bower_components"
  ],
  "presets": [
    "es2015",
    "react"
  ],
  "plugins": [
    "transform-react-constant-elements",
    "syntax-async-functions",
    "transform-regenerator"
  ]
}

1 个答案:

答案 0 :(得分:3)

源图和retainLines:true选项。这是Gulp任务的一个例子:

const babel = require('gulp-babel');
const sourcemaps = require('gulp-sourcemaps');

gulp.task('babel', done =>
    gulp.src('src/**/*.es6')
    .pipe(sourcemaps.init())
    .pipe(babel({
        presets: ['es2015', 'stage-0'],
        retainLines: 'true',
    }))
    .pipe(sourcemaps.write('.', {
        sourceRoot: 'src'
    }))
    .pipe(gulp.dest('lib')));

您还必须

require('source-map-support').install();

位于已编译代码的顶部(只是入口点,即package.json中指定的" main"文件)