title: Webpack, html-webpack-plugin, Error: Child compilation failed
body: <p>I 've got a problem with my webpack configuration. After implementing html-webpack-plugin I got an Error, there's whole error stack from generated <code>index.html</code>.</p>
  
  <p>Error Stack:
  Html Webpack Plugin:<pre>
    Error: Child compilation failed:
    Conflict: Multiple assets emit to the same filename index.html:
    Error: Conflict: Multiple assets emit to the same filename index.html</p>
  
  <ul>
  <li><p>compiler.js:76 
  [Pre-build]/[html-webpack-plugin]/lib/compiler.js:76:16</p></li>
  <li><p>Compiler.js:291 Compiler.
  [Pre-build]/[webpack]/lib/Compiler.js:291:10</p></li>
  <li><p>Compiler.js:494 
  [Pre-build]/[webpack]/lib/Compiler.js:494:13</p></li>
  <li><p>Tapable.js:138 next
  [Pre-build]/[tapable]/lib/Tapable.js:138:11</p></li>
  <li><p>CachePlugin.js:62 Compiler.
  [Pre-build]/[webpack]/lib/CachePlugin.js:62:5</p></li>
  <li><p>Tapable.js:142 Compiler.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:142:13</p></li>
  <li><p>Compiler.js:491 
  [Pre-build]/[webpack]/lib/Compiler.js:491:10</p></li>
  <li><p>Tapable.js:131 Compilation.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:131:46</p></li>
  <li><p>Compilation.js:645 self.applyPluginsAsync.err
  [Pre-build]/[webpack]/lib/Compilation.js:645:19</p></li>
  <li><p>Tapable.js:131 Compilation.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:131:46</p></li>
  <li><p>Compilation.js:636 self.applyPluginsAsync.err
  [Pre-build]/[webpack]/lib/Compilation.js:636:11</p></li>
  <li><p>Tapable.js:131 Compilation.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:131:46</p></li>
  <li><p>Compilation.js:631 self.applyPluginsAsync.err
  [Pre-build]/[webpack]/lib/Compilation.js:631:10</p></li>
  <li><p>Tapable.js:131 Compilation.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:131:46</p></li>
  <li><p>Compilation.js:627 sealPart2
  [Pre-build]/[webpack]/lib/Compilation.js:627:9</p></li>
  <li><p>Tapable.js:131 Compilation.applyPluginsAsyncSeries
  [Pre-build]/[tapable]/lib/Tapable.js:131:46</p></li>
  <li><p>Compilation.js:575 Compilation.seal
  [Pre-build]/[webpack]/lib/Compilation.js:575:8</p></li>
  <li><p>Compiler.js:488 
  [Pre-build]/[webpack]/lib/Compiler.js:488:16</p></li>
  <li><p>Tapable.js:225 
  [Pre-build]/[tapable]/lib/Tapable.js:225:11</p></li>
  <li><p>Compilation.js:477 _addModuleChain
  [Pre-build]/[webpack]/lib/Compilation.js:477:11</p></li>
  <li><p>Compilation.js:448 processModuleDependencies.err
  [Pre-build]/[webpack]/lib/Compilation.js:448:13</p></li>
  <li><p>next_tick.js:73 _combinedTickCallback
  internal/process/next_tick.js:73:7</p></li>
  <li><p>next_tick.js:104 process._tickCallback
  internal/process/next_tick.js:104:9
  </pre></p></li>
  </ul>
  
  <p>My webpack configuration code:</p>
  
  <pre><code>var webpack = require('webpack'),
      path = require('path');
  
  
  var CopyWebpackPlugin = require('copy-webpack-plugin'),
      ExtractTextWebpackPlugin = require('extract-text-webpack-plugin'),
      HtmlWebpackPlugin = require('html-webpack-plugin'),
  
  const sourcePath = path.resolve(__dirname, './src');
  const staticPath = path.resolve(__dirname, './static');
  
  module.exports = function (env) {
  
      const nodeEnv = env &amp;&amp; env.prod ? 'production' : 'development';
      const isProd = nodeEnv === 'production';
  
      const postcssLoader = {
          loader: 'postcss-loader',
          options: {
              plugins: function () {
                  return [
                      require('autoprefixer')
                  ];
              }
          }
      }
  
      const plugins = [
          new webpack.optimize.CommonsChunkPlugin({
              name: 'vendor',
              minChunks: Infinity,
              filename: 'vendor.bundle.js'
          }),
          new webpack.EnvironmentPlugin({
              NODE_ENV: nodeEnv,
          }),
          new HtmlWebpackPlugin({
              template: 'index.html',
              minify: {
                  removeComments: true,
                  collapseWhitespace: true,
                  removeAttributeQuotes: true
              },
              chunksSortMode: 'dependency'
          })
      ];
  
      if(isProd) {
          plugins.push(
              new webpack.LoaderOptionsPlugin({
                  minimize: true,
                  debug: false
              }),
              new webpack.optimize.UglifyJsPlugin({
                  compress: {
                      warnings: false,
                      screw_ie8: true,
                      conditionals: true,
                      unused: true,
                      comparisons: true,
                      sequences: true,
                      dead_code: true,
                      evaluate: true,
                      if_return: true,
                      join_vars: true,
                  },
                  output: {
                      comments: false,
                  },
              })
          );
      } else {
          plugins.push(
              new webpack.HotModuleReplacementPlugin()
          );
      }
  
      return {
          devtool: isProd? 'source-map' : 'eval',
          context: sourcePath,
  
          entry: {
              app: './app/entry.ts',
              vendor: './app/vendor.ts'
          },
  
          output: {
              path: staticPath,
              filename: '[name].bundle.js',
          },
  
          module: {
              rules: [
                  {
                      test: /\.html$/,
                      exclude: /node_modules/,
                      use: {
                          loader: 'file-loader',
                          query: {
                              name: '[name].[ext]'
                          },
                      },
                  },
                  {
                      test: /\.css$/,
                      exclude: /node_modules/,
                      use: [
                          'style-loader',
                          'css-loader',
                          'postcss-loader'
                      ]
                  },
                  {
                      test: /\.scss$/,
                      exclude: /node_modules/,
                      use: [
                          'style-loader',
                          'css-loader',
                          'postcss-loader',
                          'sass-loader'
                      ]
                  },
                  {
                      test: /\.ts$/,
                      exclude: /node_modules/,
                      use: [
                          'ts-loader'
                      ],
                  },
              ],
          },
  
          resolve: {
              alias: {
                  Public: path.resolve(__dirname,'src/public'),
                  Style: path.resolve(__dirname,'src/styles')
              },
              extensions: ['.ts','.js', '.html'],
              modules: [
                  path.resolve(__dirname, 'node_modules'),
                  sourcePath
              ]
          },
  
          plugins,
  
          performance: isProd &amp;&amp; {
              maxAssetSize: 100,
              maxEntrypointSize: 300,
              hints: 'warning'
          },
  
          stats: {
              colors: {
                  green: '\u001b[32m'
              }
          },
  
          devServer: {
              contentBase: './src',
              historyApiFallback: true,
              port: 3000,
              compress: isProd,
              inline: !isProd,
              hot: !isProd,
              stats: {
                  assets: true,
                  children: false,
                  chunks: false,
                  hash: false,
                  modules: false,
                  publicPath: false,
                  timings: true,
                  version: false,
                  warnings: true,
                  color: {
                      green: '\u001b[32m'
                  }
              },
          }
      };
  };
  </code></pre>
  
  <p>I couldn't find any source of that Error, maybe I am little bit tired, but I would like to finish it up, so I hope for your help guys.</p>
  
  <p>Maybe should I use some <code>raw-loader</code> to load <code>.html</code>(?), which does not make me happy.</p>