const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const config = require('../config');

const paths = config.utils_paths;

const vendors = [
  'fastclick',
  'promise',
  'react-redux',
  'redux',
  'redux-thunk',
  'superagent',
  'react',
  'react-dom',
  'react-router-dom',
  'history',
];

module.exports = {
  output: {
    filename: '[name]_[hash].js',
    path: paths.lib(),
    library: '[name]_[hash]',
  },
  resolve: {
    extensions: ['.web.tsx', '.web.ts', '.web.jsx', '.web.js', '.ts', '.tsx', '.js', '.jsx', '.json'],
  },
  entry: {
    lib: vendors,
  },
  plugins: [
    new webpack.DefinePlugin(config.globals),
    new CleanWebpackPlugin(['*'], {
      root: paths.lib(),
    }),
    new webpack.ProgressPlugin(),
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false,
      },
    }),
    new webpack.DllPlugin({
      path: paths.lib('manifest.json'),
      name: '[name]_[hash]',
      context: paths.lib(),
    }),
  ],
};