javascript - 使用 karma + babel + webpack 和 bundle 跟踪错误

标签 javascript karma-runner karma-jasmine webpack babeljs

使用 karma + babel + webpack 运行 ES6 单元测试。我使用 webpack 包来定位和转译 ES6。一切正常,但是每当任何测试文件中出现错误时,我都会收到没有指示错误来源的消息,例如

Uncaught TypeError: Cannot read property 'querySelector' of null
at /pth/to/test.bundle.js:13256

总是 /pth/to/test.bundle.js:xxxx。知道如何让它显示更有用的消息吗?

这是我的配置

module.exports = function(config) {
  config.set({
    browsers: ["Chrome"],
    files: [
      {
        pattern: "test.bundle.js",
        watched: false
      }],
    frameworks: ["jasmine-jquery", "jasmine-ajax", "jasmine"],
    preprocessors: {,
        "test.bundle.js": ["webpack"]
    },
    reporters: ["dots"],
    singleRun: false,
    webpack: {
        module: {
            loaders: [{
                  test: /\.js/,
                  exclude: /node_modules/,
                  loader: "babel-loader?cacheDirectory&optional[]=runtime"
                }]
        },
        watch: true
    },
    webpackServer: {
        noInfo: true
    }
  });
};

还有我的 test.bundle.js

var context = require.context("./src", true, /.+(-helpers|\.test)\.js$/);
context.keys().forEach(context);

最佳答案

在 webpack 中将 devtool 设置为 eval。这个对我有用。将为您提供正确的文件名和行号。在这里阅读更多 http://webpack.github.io/docs/configuration.html#devtool

webpack: {
    devtool: 'eval',
    module: {
        loaders: [{
              test: /\.js/,
              exclude: /node_modules/,
              loader: "babel-loader?cacheDirectory&optional[]=runtime"
            }]
    },
    watch: true
},

关于javascript - 使用 karma + babel + webpack 和 bundle 跟踪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625884/

相关文章:

javascript - 关闭 Google Chrome 应用程序时关闭串行端口

javascript - 带有左右按钮的图片库

javascript - 测试 angularjs ui-router go() 方法

angularjs - Angular e2e 测试 : How can I check if an element got the focus?

html - 如何访问 karma 测试用例中的 Controller 功能?

javascript - Angular,Jasmine - 监视函数,在 $interval/$timeout 服务内执行

angularjs - 如何在不更改所有单元测试的情况下避免在 app.run 周期期间进行的调用出现 "Unexpected request: GET"

javascript - 在 JS 中单击复选框发送一个或零

angular - 当 expect(result).toBe(null) 测试失败时测试卡住。 ( Angular 2, Jasmine )

javascript - 在网页上显示来自 Google 云端硬盘的文档