forked from guardian/frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.prod.js
40 lines (37 loc) · 1.27 KB
/
webpack.config.prod.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* eslint-disable import/no-extraneous-dependencies */
const webpack = require('webpack');
const webpackMerge = require('webpack-merge');
const Visualizer = require('webpack-visualizer-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
.BundleAnalyzerPlugin;
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const config = require('./webpack.config.js');
module.exports = webpackMerge.smart(config, {
output: {
filename: `[chunkhash]/graun.[name].js`,
chunkFilename: `[chunkhash]/graun.[name].js`,
},
devtool: 'source-map',
plugins: [
new webpack.optimize.AggressiveMergingPlugin({
// delicate number: stops enhanced-no-commercial and enhanced
// being merged into one
minSizeReduce: 1.6,
}),
new Visualizer({
filename: './webpack-stats.html',
}),
new BundleAnalyzerPlugin({
reportFilename: './bundle-analyzer-report.html',
analyzerMode: 'static',
openAnalyzer: false,
}),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production'),
}),
new UglifyJSPlugin({
parallel: true,
sourceMap: true,
}),
],
});