如何使用karma-babel-preprocessor和PhantomJs保留行正确的行号?

时间:2015-10-28 08:29:37

标签: karma-runner

当我像这样使用karma-babel-preprocessor的documented configuration

module.exports = function (config) {
  config.set({
    preprocessors: {
      'src/**/*.js': ['babel'],
      'test/**/*.js': ['babel']
    },
    babelPreprocessor: {
      options: {
        sourceMap: 'inline'
      },
      filename: function (file) {
        return file.originalPath.replace(/\.js$/, '.es5.js');
      },
      sourceFileName: function (file) {
        return file.originalPath;
      }
    }
  });
};

我得到错误的源代码行,例如

 at /var/www/edu-web/tests/jasmine/services/image/imageServiceTest.es5.js:77

默认情况下不支持源地图,所以毫不奇怪。但是,这里的问题是在业力完成后删除了imageServiceTest.es5.js文件,所以我别无选择,只能猜测单元测试失败的位置(在哪一行),而且速度很慢。

Chrome issue中有一个解决方案(不是PhantomJs)。我也可以修复PhantomJs的配置吗?

1 个答案:

答案 0 :(得分:5)

我在查看Babel文档时找到了解决方案:

  

runtime "oracle:ojdbc6:11.2.0.1.0" 保留行号。这将导致古怪的代码   但对于无法使用源地图的情况非常方便。

     

注意:这显然不会保留列。

http://babeljs.io/docs/usage/options/

我的最终配置:

retainLines