2017-03-29 6 views
1

非常に単純な反応アプリでwebpackを実行するようにカルマを設定しようとしていますが、webpack 2にアップデートするとテストを実行するとエラーになります。反応アプリをコンパイルすると、完璧に動作します。私のwebpackやkarma configの中にこれを引き起こしているものは何ですか?Webpack 2とKarma MemoryFileSystemエラーを解決するには?

は、ここに私のエラーです:

> NODE_ENV=test karma start 


START: 
(node:1370) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56 
parseQuery() will be replaced with getOptions() in the next major version of loader-utils. 
Error 
    at MemoryFileSystem.mkdirpSync (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/memory-fs/lib/MemoryFileSystem.js:144:10) 
    at MemoryFileSystem.(anonymous function) [as mkdirp] (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/memory-fs/lib/MemoryFileSystem.js:279:34) 
    at Compiler.<anonymous> (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/lib/Compiler.js:322:27) 
    at /Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/node_modules/async/dist/async.js:3022:16 
    at eachOfArrayLike (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/node_modules/async/dist/async.js:941:9) 
    at eachOf (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/node_modules/async/dist/async.js:991:5) 
    at Object.eachLimit (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/node_modules/async/dist/async.js:3086:3) 
    at Compiler.emitFiles (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/webpack/lib/Compiler.js:312:20) 
    at Immediate.<anonymous> (/Users/rperez/devProjects/CamperLeaderBoard/node_modules/memory-fs/lib/MemoryFileSystem.js:288:4) 
    at runCallback (timers.js:651:20) 
    at tryOnImmediate (timers.js:624:5) 
    at processImmediate [as _immediateCallback] (timers.js:596:5) 

依存関係:

"dependencies": { 
    "axios": "^0.15.3", 
    "express": "^4.15.2", 
    "react": "^15.4.2", 
    "react-dom": "^15.4.2", 
    "react-router": "^3.0.2" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.23.1", 
    "babel-loader": "^6.4.0", 
    "babel-preset-es2015": "^6.22.0", 
    "babel-preset-react": "^6.23.0", 
    "babel-preset-stage-0": "^6.22.0", 
    "css-loader": "^0.26.2", 
    "expect": "^1.20.2", 
    "foundation-sites": "^6.3.1", 
    "jquery": "^3.1.1", 
    "karma": "^1.5.0", 
    "karma-chrome-launcher": "^2.0.0", 
    "karma-mocha": "^1.3.0", 
    "karma-mocha-reporter": "^2.2.2", 
    "karma-sourcemap-loader": "^0.3.7", 
    "karma-webpack": "^2.0.2", 
    "mocha": "^3.2.0", 
    "node-sass": "^4.5.0", 
    "react-addons-test-utils": "^15.4.2", 
    "sass-loader": "^6.0.2", 
    "script-loader": "^0.7.0", 
    "style-loader": "^0.13.2", 
    "webpack": "^2.2.1" 
    } 

のWebPACKの設定:

const webpack = require('webpack'); 
    const path = require('path'); 

    //will be set to 'production on heroku' 
    //process.env.NODE_ENV = process.env.NODE_ENV || 'development'; 

    module.exports = { 
     //where to start the app 
     entry: { 
     app: path.resolve(__dirname, 'app/app.jsx'), 
     }, 
     output: { 
     path: path.resolve(__dirname, './public'), 
     filename: '[name].bundle.js' 
     }, 
     //setting up the babel loader to handle jsx files(es2015) 
     module: { 
     rules: [ 
      { 
      test: /\.jsx?$/, 
      exclude: /(node_modules|bower_componets)/, 
      use: [{ 
       loader: 'babel-loader', 
       options: {presets:['react', 'es2015', 'stage-0']} 
      }], 
      }, 
     ], 
     },//end of modules 
     resolve: { 
     //Tell webpack what directories should be searched when resolving modules. 
     modules: [ 
      path.join(__dirname, 'app/components'), 
      path.join(__dirname, 'app/api'), 
      'node_modules', 
     ], 
     //Automatically resolve certain extensions. 
     extensions: ['.js', '.jsx', '.json'], 
     }, //end of resolve 
     //This option controls if and how Source Maps are generated. 
     devtool:'cheap-module-eval-source-map' 
    };//end of module.exports 

カルマの設定:

var webpackConfig = require('./webpack.config.js'); 

module.exports = function (config) { 
    config.set({ 
    browsers: ['Chrome'], 
    singleRun: true, 
    frameworks: ['mocha'], 
    files: [ 
     './app/tests/**/*.test.jsx' 
    ], 
    preprocessors: { 
     './app/tests/**/*.test.jsx': ['webpack', 'sourcemap'] 
    }, 
    reporters: ['mocha'], 
    client: { 
     mocha: { 
     timeout: '5000' 
     } 
    }, 
    webpack: webpackConfig, 
    webpackServer: { 
     noInfo: true 
    } 
    }) 

答えて

1

私の問題は、私は私のwebpack.configから「エントリ」プロパティを削除するために必要なことでした。私は以下のコードを追加することによって、これをしなかった:悟りのこの投稿へ

webpackConfig.entry = null; 

ありがとう: Error: not a directory at MemoryFileSystem.mkdirpSync

+0

は、これは働いていたが、なぜ? – alphapilgrim

関連する問題