47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
// NOTE: this configuration file MUST NOT be loaded with `-p` or `--optimize-minimize` option.
|
|
// This option includes an implicit call to UglifyJsPlugin and LoaderOptionsPlugin. Instead,
|
|
// an explicit call is made in this file to these plugins with customized options that enables
|
|
// more control of the output bundle in order to fix unexpected behavior in old browsers.
|
|
const webpack = require('webpack');
|
|
const merge = require('webpack-merge');
|
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
|
const baseConfig = require('./webpack.base.config.js');
|
|
|
|
module.exports = merge(baseConfig, {
|
|
mode: 'production',
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
__IN_DEV__: JSON.stringify(false),
|
|
__ENV__: JSON.stringify('prod')
|
|
})
|
|
],
|
|
optimization: {
|
|
minimizer: [
|
|
new UglifyJsPlugin({
|
|
cache: false,
|
|
parallel: true,
|
|
sourceMap: true,
|
|
uglifyOptions: {
|
|
keep_fnames: true,
|
|
output: {
|
|
ascii_only: true,
|
|
beautify: false
|
|
}
|
|
}
|
|
}),
|
|
new OptimizeCSSAssetsPlugin({
|
|
cssProcessorOptions: {
|
|
zindex: false,
|
|
reduceIdents: false,
|
|
autoprefixer: {
|
|
remove: false,
|
|
add: true,
|
|
browsers: ['> 1%']
|
|
}
|
|
}
|
|
})
|
|
]
|
|
}
|
|
});
|