title: webpack dev server does not show the content
body: <p>I have the following problem when running the webpack dev server: 
  when I run npm start, it show the following: </p>
  
  <blockquote>
    <p>➜  directory git:(staging) ✗ npm start </p>
    
    <p>directory @1.0.0 start directory
    BUILD_DEV=1 BUILD_STAGING=1 ./node_modules/webpack-dev-server/bin/webpack-dev-server.js</p>
    
    <p><a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a></p>
    
    <p><strong>webpack result is served from /undefined/</strong></p>
    
    <p>content is served from </p>
    
    <p>directory 
    404s will fallback to /index.html</p>
    
    <p>Hash: 75773622412153d5f921</p>
    
    <p>Version: webpack 1.12.11</p>
    
    <p>Time: 43330ms</p>
  </blockquote>
  
  <p>I guess the problem might because the following line: 
  <strong>webpack result is served from /undefined/</strong></p>
  
  <p>When I open the browser at <strong><a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a></strong>, it appear as follow: </p>
  
  <blockquote>
    <p>Cannot GET /</p>
  </blockquote>
  
  <p>and there is no thing in the console. </p>
  
  <p>Do you have any ideas for this problem ? </p>
  
  <p><strong>UPDATE: WEBPACK CONFIG FILE</strong></p>
  
  <pre><code>const webpack = require('webpack');
  const path = require('path');
  const HtmlWebpackPlugin = require('html-webpack-plugin');
  const merge = require('webpack-merge');
  const nodeModulesDir = path.resolve(__dirname, 'node_modules');
  
  const deps = [
    'moment/min/moment.min.js',
    'underscore/underscore-min.js',
  ];
  
  /* Include SASS path here if you want to this in your sass files:
   *   @import 'bourbon';
   */
  const bourbon = require('node-bourbon').includePaths;
  
  const TARGET = process.env.npm_lifecycle_event;
  const ROOT_PATH = path.resolve(__dirname);
  const SASS_DEPS = [bourbon].toString();
  
  const BUILD_NUMBER = process.env.CI_BUILD_NUMBER;
  
  const common = {
    entry: path.resolve(ROOT_PATH, 'app/index.js'),
    output: {
      filename: BUILD_NUMBER + '-[hash].js',
      path: path.resolve(ROOT_PATH, 'build'),
      publicPath: `/${BUILD_NUMBER}/`,
    },
    module: {
      loaders: [
        {
          test: /\.scss$/,
          loaders: ['style', 'css', 'sass?includePaths[]=' + SASS_DEPS],
          include: path.resolve(ROOT_PATH, 'app'),
        },
        {
          test: /\.css$/,
          loaders: [
            'style',
            'css?modules&amp;importLoaders=1&amp;localIdentName=[name]__[local]___[hash:base64:5]',
            'sass?includePaths[]=' + SASS_DEPS,
            'postcss'
          ],
          include: path.resolve(ROOT_PATH),
          exclude: /(pure\/grids|Grids).*\.css$/,
        },
        {
          test: /(pure\/grids|Grids).*\.css$/,
          loaders: [
            'style',
            'css',
            'sass?includePaths[]=' + SASS_DEPS,
          ],
          include: path.resolve(ROOT_PATH),
        },
        {
          test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
          loader: 'url-loader?limit=10000&amp;minetype=application/font-woff',
        },
        { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
          loader: 'file-loader',
        },
        {
          test: /\.json$/,
          loader: 'json',
        },
      ],
    },
    plugins: [
      new HtmlWebpackPlugin({
        title: 'My App',
        template: path.resolve(ROOT_PATH, 'app/index.html'),
        inject: 'body',
        minify: {
          removeComments: true,
          collapseWhitespace: true,
        },
      }),
      new webpack.DefinePlugin({
        __DEV__: JSON.stringify(JSON.parse(process.env.BUILD_DEV || 'false')),
        __STAGING__: JSON.stringify(JSON.parse(process.env.BUILD_STAGING || 'false')),
        __API_HOST__: JSON.stringify(process.env.BUILD_STAGING ? 'my.api' : 'my.api'),
      }),
    ],
    resolve: {
      alias: {
        'styles': path.resolve(ROOT_PATH, 'app/styles'),
      },
      extensions: ['', '.js', '.jsx', '.json'],
    },
    postcss: function() {
      return [
        require('postcss-import'),
        require('autoprefixer'),
        require('postcss-cssnext'),
      ]
    }
  };
  
  if (TARGET === 'start' || !TARGET) {
    module.exports = merge(common, {
      output: {
        filename: '[hash].js',
        path: path.resolve(ROOT_PATH, 'build'),
        publicPath: '/',
      },
      devtool: 'eval-source-map',
      module: {
        loaders: [
          {
            test: /\.jsx?$/,
            loaders: [
              'react-hot',
              'babel-loader'
            ],
            include: path.resolve(ROOT_PATH, 'app'),
          },
        ],
      },
      devServer: {
        colors: true,
        historyApiFallback: true,
        hot: true,
        inline: true,
        progress: true,
      },
      plugins: [
        new webpack.HotModuleReplacementPlugin(),
      ],
    });
  } else if (TARGET === 'build' || TARGET === 'builds') {
    const config = {
      resolve: {
        alias: {},
      },
      module: {
        loaders: [
          {
            test: /\.jsx?$/,
            loader: 'babel-loader',
            include: path.resolve(ROOT_PATH, 'app'),
          },
        ],
        noParse: [],
      },
      plugins: [
        new webpack.optimize.UglifyJsPlugin({
          minimize: true,
          compressor: {
            screw_ie8: true,
            warnings: false,
          },
          compress: {
            warnings: false,
          },
          output: {
            comments: false,
          },
        }),
        new webpack.optimize.DedupePlugin(),
        new webpack.DefinePlugin({
          'process.env': { 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) },
        }),
      ],
    };
    deps.forEach((dep) =&gt; {
      const depPath = path.resolve(nodeModulesDir, dep);
      config.resolve.alias[dep.split(path.sep)[0]] = depPath;
      config.module.noParse.push(depPath);
    });
    module.exports = merge(common, config);
  }
  </code></pre>