karma-webpack 插件:bundle 文件去哪里了?

mha*_*tch 5 javascript karma-runner webpack karma-webpack

我将 Karma 与 karma-webpack 插件一起使用,用于与 babel 捆绑和转译。当测试出现错误时,我会收到一条很好的消息,其中包含包的行号,如下所示:

服务:文档服务

? 获得正确数量的顾问客户

TypeError: undefined is not an object (evaluating 'GLOBALS.TESTING_ENV') (line 37)

这很好,但我找不到在哪里访问包文件并检查所描述的行。

我尝试output在 webpack 配置中使用该选项,但这似乎没有任何作用。

这是我的 karma.conf:

module.exports = function(config) {
  config.set({

    basePath: __dirname + '/',

    frameworks: ['phantomjs-shim', 'jasmine'],

    files: [
      './test/**/*spec.js'
    ],
    
    preprocessors: {
      'src/**/*.js': ['webpack'],
      'test/**/*.js': ['webpack']
    },

    webpack: {
      mode: 'development',
      output: {
          path: path.resolve(__dirname, './build/'),
          filename: 'app-[name].js',
          chunkFilename: 'app-vendors.[chunkhash].js'
      },
      module: {
        rules: [
          {
            test: /\.js$/,
            exclude: /node_modules/,
            use: ['babel-loader']
          }
        ]
      }
    },

    reporters: ['spec'],

    specReporter: {
      suppressErrorSummary: false,
      suppressFailed: false,
      suppressPassed: false,
      suppressSkipped: false,
      showSpecTiming: false,
      failFast: false 
    },

    autoWatch: false,

    browsers: ['PhantomJS'],

    singleRun: true,
    
    ...

  })
}
Run Code Online (Sandbox Code Playgroud)

测试包文件在哪里构建?有没有办法配置它以便我可以检查包?

eps*_*lon 1

我也曾为此苦苦挣扎,在重新审视这个问题后,我终于为我解决了它。

这些文件不会写入磁盘,因为 karma 默认使用 webpack-dev-middleware 将所有文件保留在内存中。如果您希望将文件发送到文件系统,请尝试

webpackMiddleware: {
  writeToDisk: true,
}
Run Code Online (Sandbox Code Playgroud)

尽管在当前版本中 karma-webpackpath.join(os.tmpdir(), '_karma_webpack_', indexPath, '/').