codymikol / karma-webpack

Karma webpack Middleware
MIT License
830 stars 223 forks source link

Error: no such file or directory at MemoryFileSystem.readFileSync #174

Closed wellyshen closed 8 years ago

wellyshen commented 8 years ago

Hi I updated my webpack-2 to beta.23, then when I run npm test, the error occurs as below :

ERROR [karma]: { Error: no such file or directory at MemoryFileSystem.readFileSync (/Users/Welly/Desktop/react-cool-starter/node_modules/memory-fs/lib/MemoryFileSystem.js:114:10) at MemoryFileSystem.readFile (/Users/Welly/Desktop/react-cool-starter/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21) at doRead (/Users/Welly/Desktop/react-cool-starter/node_modules/karma-webpack/lib/karma-webpack.js:201:29) at Plugin.readFile (/Users/Welly/Desktop/react-cool-starter/node_modules/karma-webpack/lib/karma-webpack.js:205:5) at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9) code: 'ENOENT', errno: 34, message: 'no such file or directory', path: '/_karmawebpack/test-bundler.js' }

I won't happened on previous webpack-2 version, does anyone know how to solve it?

wellyshen commented 8 years ago

By the way, the error might caused by the "sourcemap" of the "css-loader", here is my webpack config for testing :

/* eslint-disable */

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

module.exports = function (CSSModules) {
  return {
    devtool: 'inline-source-map',
    module: {
      // The sinon library doesn't like being run through babel
      noParse: /node_modules\/sinon/,
      rules: [
        { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel?cacheDirectory' },
        { test: /\.json$/, loader: 'json' },
        // sinon.js--aliased for enzyme--expects/requires global vars.
        // imports-loader allows for global vars to be injected into the module.
        // See https://github.com/webpack/webpack/issues/304
        {
          test: /sinon\/pkg\/sinon\.js/,
          loader: 'imports?define=>false,require=>false',
        },
        { test: /\.(jpe?g|png|gif|svg)$/, loader: 'url?limit=10240' },
        {
          test: /\.css$/,
          // loader: 'null',
          loader: 'style!css?localIdentName=[name]__[local].[hash:base64:5]&' + (CSSModules ? 'modules' : '') + '&sourceMap&-minimize&importLoaders=1!postcss',
        },
        {
          test: /\.scss$/,
          // loader: 'null',
          loader: 'style!css?localIdentName=[name]__[local].[hash:base64:5]&' + (CSSModules ? 'modules' : '') + '&sourceMap&-minimize&importLoaders=2!postcss!sass?outputStyle=expanded&sourceMap',
        },
      ],
    },
    // required for enzyme to work properly
    externals: {
      jsdom: 'window',
      cheerio: 'window',
      'react/addons': true,
      'react/lib/ExecutionEnvironment': true,
      'react/lib/ReactContext': true,
    },
    resolve: {
      extensions: ['.js', '.jsx', '.json'],
      modules: [
        'src',
        'node_modules',
      ],
      alias: {
        // required for enzyme to work properly
        sinon: 'sinon/pkg/sinon',
      },
    },
    plugins: [
      new webpack.LoaderOptionsPlugin({
        options: {
          postcss: [autoprefixer({ browsers: ['last 2 versions'] })],
        }
      }),
      // Setup global variables for app
      new webpack.DefinePlugin({
        'process.env': { NODE_ENV: JSON.stringify('development') },
        __CLIENT__: JSON.stringify(true),
        __SERVER__: JSON.stringify(false),
        __DEV__: JSON.stringify(true),
      }),
      new webpack.IgnorePlugin(/\.json$/),
      new webpack.NoErrorsPlugin(),
    ],
  };
};
wellyshen commented 8 years ago

I update webpack2 to beta.24 and fix this issue.