import webpack from 'webpack' import HtmlWebpackPlugin from 'html-webpack-plugin' import ExtractTextPlugin from 'extract-text-webpack-plugin' import AddAssetHtmlPlugin from 'add-asset-html-webpack-plugin' import config from '../../config' const isProduction = config.env === 'production' let htmlWebpackOptions = { template: `${config.path_client}/index.html`, hash: false, favicon: `${config.path_client}/static/favicon.ico`, filename: 'index.html', inject: 'body' } if (isProduction) { htmlWebpackOptions.minify = { collapseWhitespace: true } } export let plugins = [ new webpack.DefinePlugin(config.globals), new webpack.DllReferencePlugin({ context: `${config.path_client}`, manifest: require(config.path_dist + '/cw-vendors-manifest.json') }), new HtmlWebpackPlugin(htmlWebpackOptions), new AddAssetHtmlPlugin({ filename: require.resolve(`${config.path_dist}/cw-vendors.js`), includeSourcemap: false }) ] if (!isProduction) { plugins = plugins.concat([ new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin() ]) } else { plugins = plugins.concat([ new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.DedupePlugin(), new webpack.optimize.UglifyJsPlugin({ compress: { unused: true, dead_code: true, warnings: false } }), new ExtractTextPlugin('[name].css') ]) }