在karma.config.js中包含插件后出错

时间:2018-03-01 08:39:41

标签: javascript webpack karma-jasmine webpack-dev-server karma-webpack

这是我在 karma.config.js

中的代码

我正在使用Webpack 3+作为我的项目。

module.exports = config => {
  config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: ['./src/components/**/*.spec.ts'],
    plugins: ['karma-jasmine', 'karma-phantomjs-launcher'],
    preprocessors: {
      './src/components/**/*.spec.ts': ['webpack']
    },
    mime: {
      'text/x-typescript': ['ts', 'tsx']
    },
    webpack: webpackConfig,
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    webpackMiddleware: {
      noInfo: true
    },
    concurrency: Infinity
  });
};

在我包含这行代码之后:

 plugins: ['karma-jasmine', 'karma-phantomjs-launcher'],

我收到以下错误:

  

无法加载“webpack”,它未注册!

如果我没有这条线,一切都顺利进行。问题是我必须实现PhantomJS。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

默认情况下,Karma会加载所有兄弟NPM模块,其名称以 karma - * 开头。

看起来您正在使用新数组覆盖插件,这将阻止任何karma webpack插件被加载。

因此,在指定新的插件数组时,您应该为其添加 karma - *

plugins: ['karma-*', 'karma-jasmine', 'karma-phantomjs-launcher'],

但是,由于您的插件无论如何都是 karma - ,因此应使用默认的插件配置自动加载它们,因此您无需在其中指定插件数组这种情况。

我希望这会有所帮助。