这是我在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。我该如何解决这个问题?
默认情况下,Karma加载所有兄弟NPM模块,其名称以karma- *开头。
看起来你正在用一个新数组覆盖插件,这将阻止任何karma webpack插件被加载。
因此,在指定新的插件数组时,您应该为其添加karma- *:
plugins: ['karma-*', 'karma-jasmine', 'karma-phantomjs-launcher'],
但是,由于你的插件无论如何都是karma-prefixed,它们应该使用默认的插件配置自动加载,因此在这种情况下你不需要指定一个插件数组。
我希望这有帮助。