text: var path = require('path')
  var webpack = require('webpack')
  var HtmlWebpackPlugin = require('html-webpack-plugin')
  var BrowserSyncPlugin = require('browser-sync-webpack-plugin')
  
  // Phaser webpack config
  var phaserModule = path.join(__dirname, '/node_modules/phaser-ce/')
  var phaser = path.join(phaserModule, 'build/custom/phaser-split.js')
  var pixi = path.join(phaserModule, 'build/custom/pixi.js')
  var p2 = path.join(phaserModule, 'build/custom/p2.js')
  
  var definePlugin = new webpack.DefinePlugin({
    __DEV__: JSON.stringify(JSON.parse(process.env.BUILD_DEV || 'true'))
  })
  
  module.exports = {
    entry: {
      app: [
        'babel-polyfill',
        path.resolve(__dirname, 'src/App.js')
      ],
      vendor: ['pixi', 'p2', 'phaser', 'webfontloader']
    },
    devtool: 'cheap-source-map',
    output: {
      pathinfo: true,
      path: path.resolve(__dirname, 'dist'),
      publicPath: './dist/',
      filename: 'bundle.js'
    },
    watch: true,
    plugins: [
      definePlugin,
      new webpack.optimize.CommonsChunkPlugin({ name: 'vendor'/* chunkName= */, filename: 'vendor.bundle.js'/* filename= */}),
      new HtmlWebpackPlugin({
        template: './src/index.html',
        chunks: ['vendor', 'app'],
        chunksSortMode: 'manual',
        minify: {
          removeAttributeQuotes: false,
          collapseWhitespace: false,
          html5: false,
          minifyCSS: false,
          minifyJS: false,
          minifyURLs: false,
          removeComments: false,
          removeEmptyAttributes: false
        },
        hash: false
      }),
      new BrowserSyncPlugin({
        host: process.env.IP || 'localhost',
        port: process.env.PORT || 3000,
        server: {
          baseDir: ['./', './dist']
        }
      })
    ],
    module: {
      rules: [
        {
          test: /\.js$/,
          use: [{
            loader: 'babel-loader',
            options: {
              presets: ['es2015', 'stage-0']
            },
          }],
          include: path.join(__dirname, 'src')
        },
        { test: /pixi\.js/, use: ['expose-loader?PIXI'] },
        { test: /phaser-split\.js$/, use: ['expose-loader?Phaser'] },
        { test: /p2\.js/, use: ['expose-loader?p2'] },
        {
          test: /\.(jpg|png)/,
          use: [{
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'img/',
              publicPath: 'img/'
            }
          }]
        }
      ]
    },
    node: {
      fs: 'empty',
      net: 'empty',
      tls: 'empty'
    },
    resolve: {
      alias: {
        'phaser': phaser,
        'pixi': pixi,
        'p2': p2
      }
    }
  }
  