我正在尝试将Karma与通用路由集成到React中。我删除了常见的块插件,因为使用karma webpack的常见块时出错了
https://github.com/webpack-contrib/karma-webpack/issues/24#issuecomment-257613167
我现在的错误是:
Uncaught Error: Module build failed: TypeError: SourceNode.fromSourceWithMap is not a function
at Object.module.exports (/Users/jgs/Projects/react/MyApp/node_modules/karma-webpack/lib/mocha-env-loader.js:16:29)
是否可以使用带有反应和文件分块的karma webpack?
答案 0 :(得分:0)
如果使用karma-webpack_2 npm模块,在karma-webpack中使用分块的问题似乎得到了解决。
还有额外的工作来配置我的业力配置并重新使用webpack配置中的module.rules数组。
https://github.com/jackygrahamez/react-starter-kit/blob/master/karma.conf.js
const webpackConfig = require('./tools/webpack.config').default[0];
// let commonsChunkPluginIndex = webpackConfig[0].plugins.findIndex(plugin => plugin.chunkNames);
// webpackConfig[0].plugins.splice(commonsChunkPluginIndex, 1);
// commonsChunkPluginIndex = webpackConfig[0].plugins.findIndex(plugin => plugin.chunkNames);
// webpackConfig[0].plugins.splice(commonsChunkPluginIndex, 1);
// let module = webpackConfig;
// console.log(webpackConfig);
webpackConfig.module.rules.push({ test: /\.js$/, loader: 'babel-loader' })
module.exports = function(config) {
config.set({
browsers: [ 'Chrome' ], //run in Chrome
singleRun: true, //just run once by default
// ... normal karma configuration
frameworks : ['mocha'],
// reporters : ['mocha'],
files: [
// all files ending in "_test"
'src/*test.js',
'src/**/*test.js'
// each file acts as entry point for the webpack configuration
],
preprocessors: {
// add webpack as preprocessor
'src/*test.js': ['webpack'],
'src/**/*test.js': ['webpack']
},
// webpack: {
// // you don't need to specify the entry option because
// // karma watches the test entry points
// // webpack watches dependencies
// // ... remainder of webpack configuration (or import)
// },
// webpack: webpackConfig,
webpack: {
devtool: 'inline-source-map',
// module: {
// loaders: [
// { test: /\.js$/, loader: 'babel-loader' },
// { test: /\.jsx?$/, loader: 'babel-loader' },
// { test: /\.css/, loader: 'isomorphic-style-loader' },
// // { loader: 'css-loader' },
// // { test: /\.(ico|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2)(\?.*)?$/, loader: 'file-loader' },
// // { test: /\.(mp4|webm|wav|mp3|m4a|aac|oga)(\?.*)?$/, loader: 'url-loader' }
// ]
// }
module: webpackConfig.module
},
webpackMiddleware: {
// webpack-dev-middleware configuration
// i.e.
noInfo: true,
// and use stats to turn off verbose output
stats: {
// options i.e.
chunks: false
}
},
plugins: [
require("karma-webpack"),
require('karma-mocha'),
require('karma-chrome-launcher')
]
});
};