Webpack Error - Cannot Resolve File or Directory

Kayote picture Kayote · Dec 8, 2015 · Viewed 19.6k times · Source

I am getting this error when I npm start my webpack-dev-server:

ERROR in multi main
Module not found: Error: Cannot resolve 'file' or 'directory' /var/www/html/151208-DressingAphrodite/app in /var/www/html/151208-DressingAphrodite
 @ multi main

Here is my webpack.config.js:

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require ('html-webpack-plugin');

const PATHS = {
  app: path.join (__dirname, 'app'),
  build : path.join (__dirname, 'build')
};

module.exports = {
  entry : [
    'babel-polyfill',
    'webpack-dev-server/client?http://localhost:8080',
    PATHS.app
  ],
  output : {
      publicPath : '/',
      filename : 'dressingaphrodite.js',
      hash : true
  },
  debug : true,
  devServer : {
    contentBase : './app'
  },
  devtool : 'source-map',
  module : {
    loaders : [
      {
        test : /\.jsx?$/,
        include : PATHS.app,
        loader : 'babel-loader',
        query : {
          presets : ["es2015"]
        }
      },
      {
          test: /\.css$/,
          include: PATHS.app,
          loader: 'style!css'
      }
    ]
  },
  plugins : [
    new HtmlWebpackPlugin ({
      title : 'Dressing Aphrodite',
      filename : 'da.html'
    })
  ]
};

Answer

Fareed Alnamrouti picture Fareed Alnamrouti · Jul 13, 2016

ok if any one face this problem, you can solve it in 2 methods:

Method 1:

1- add a file called package.json inside your entry folder (in your case put it inside the folder "{project_dir}/app/package.json")

2- inside this file write any json object for example:

{
  "name": "webpack why you do diss :("
}

Method 2:

Change your entry files to be at least 2 level away from your project home directory, for example: "{project_dir}/src/app"

Explanation: for each entry file webpack will try to find a file called package.json to use it for webpack configuration incase this entry file is a module, when you put your entry file only 1 level away from your project home dir webpack will use your project packge.json as configuration file for your entry file and it will fail because of miss configuration.