公式ドキュメントは、webpack 構成を複製する必要があることを暗示しているようです。
// Karma configuration
module.exports = function(config) {
config.set({
webpack: {
// same webpack config used externally
},
};
ただし、作業中の webpack 構成をコピーして貼り付け始めると、エラーが発生し始めました。たとえば、ES6 コードはトランスパイルされませんでした (babel が構成されていても)。Commons チャンク プラグインは、エラーが発生したため機能しませんでした。karma.conf を以下に示します。
const webpack = require('webpack');
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
files: [
'test.webpack.js' //just load this file
],
preprocessors: {
'test.webpack.js': [ 'webpack', 'sourcemap' ] //preprocess with webpack and our sourcemap loader
},
webpack: {
module: {
loaders: [
{
test: /\/js\/.+\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
query: {
presets: ['es2015', 'react'],
plugins: [
'transform-es2015-destructuring',
'transform-object-rest-spread'
]
}
},
],
},
resolve: {
modulesDirectories: ['node_modules'],
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
filename: "commons.js",
name: "commons"
}),
new webpack.ProvidePlugin({
'Promise': 'bluebird',
})
],
devtool: 'inline-source-map'
},
};