webpack.prod.config.js
1.22 KB
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
41
42
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const merge = require('webpack-merge');
const webpackBaseConfig = require('./webpack.base.config.js');
const fs = require('fs');
const path = require('path');
fs.open('./src/config/env.js', 'w', function(err, fd) {
const buf = new Buffer('export default "production";');
fs.write(fd, buf, 0, buf.length, 0, function() {});
});
module.exports = merge(webpackBaseConfig, {
output: {
path: path.join(__dirname, '../../web/src/main/webapp/html/fore/'),
filename: 'js/[name].[hash].js',
chunkFilename: 'js/[name].[hash].chunk.js'
},
plugins: [
new CleanWebpackPlugin(['web/src/main/webapp/html/fore'], {
root: path.join(__dirname, '../../')
}),
new webpack.DefinePlugin({
PRODUCTION: 'true'
}),
new ExtractTextPlugin({
filename: 'css/[name].[hash].css',
allChunks: true
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendors',
filename: 'js/vendors.[hash].js',
minChunks: 2
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
]
});