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