ReferenceError: Can't find variable: require. [karma, webpack]

ReferenceError: Can't find variable: require. [karma, webpack]

我正在尝试为我的 Vue js 应用程序的 E2E 测试设置 karma,但是当我尝试 运行 npm 测试时,我得到了这个错误

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
ReferenceError: Can't find variable: require
at index.js:1

我正在关注有关测试的官方 vue 文档 https://vue-loader.vuejs.org/en/workflow/testing.html

karma.config.js

var webpackConfig = require('../webpack.test.config.js')

// karma.conf.js
module.exports = function (config) {
  config.set({
    browsers: ['PhantomJS'],
    frameworks: ['jasmine'],
    // this is the entry file for all our tests.
    files: ['./index.js'],
    // we will pass the entry file to webpack for bundling.
    preprocessors: {
      './test/index.js': ['webpack']
    },
    // use the webpack config
    webpack: webpackConfig,
    // avoid walls of useless text
    webpackMiddleware: {
      noInfo: true
    },
    singleRun: true
  })
}

//index.js referenced in above karma config
var testsContext = require.context('.', true, /\.spec$/)    
testsContext.keys().forEach(testsContext)

//webpack.test.config.js
const webpack = require('webpack');
const path = require('path');
const projectRoot = path.resolve(__dirname, '../');

module.exports = {

  module: {

    loaders: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        query: {
          presets: ['es2015']
        },
        include: [
          projectRoot,
        ],
        exclude: /node_modules/,
      },
    ],
  },
  plugins: [
   new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
    })
  ],
  resolve: {
    extensions: ['.js', '.vue'],
  },
};

好的,所以这个问题是我在预处理器中给出 index.js 路径时犯的一个非常愚蠢的错误。

路径应该是 ./index.js 而我给的是 test/index.js.