2017-04-09 52 views
0

我正在尝试使用通用路由将Karma整合到React中。我使用通用块果报的WebPack删除,因为一个错误的常见块插件SourceNode.fromSourceWithMap不是mocha-env-loader中的函数

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) 

是否有可能使用因果报应的WebPack反应并将文件分块?

回答

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') 
     ] 

    }); 
}; 
相关问题