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

问题描述 投票:1回答:1

这是我在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。我该如何解决这个问题?

javascript webpack karma-jasmine webpack-dev-server karma-webpack
1个回答
1
投票

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

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

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

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

但是,由于你的插件无论如何都是karma-prefixed,它们应该使用默认的插件配置自动加载,因此在这种情况下你不需要指定一个插件数组。

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.