FastUglifyJsPlugin
compatible with webpack 2
The uglify process of building project in production environment is very time consuming. It could take up to 70% of the build time. FastUglifyJsPlugin have multi-process and cache feature comparing to webpack's UglifyJsPlugin. Multi-process can utilize multicore cpu's caculation capability. Cache can minimize the need to complie code. Below is a set of performance testing data. FastUglifyJsPlugin has a way better performace.
plugin | time |
---|---|
webpack.optimize.UglifyJsPlugin | 7.4 min |
FastUglifyJsPlugin without cache | 4.45 min |
FastUglifyJsPlugin with cache | 36 s |
test sample:29 entry,2615 modules
test environment:MacBook Pro,4 core cpu,8g memory
npm i fast-uglifyjs-plugin --save
# or
yarn add fast-uglifyjs-plugin
FastUglifyJsPlugin is base on webpack.optimize.UglifyJsPlugin. They have the same usage except for a few extra configuration.
var FastUglifyJsPlugin = require('fast-uglifyjs-plugin');
module.exports = {
entry: {...},
output: {...},
plugins: [new FastUglifyJsPlugin({
compress: {
warnings: false
},
// set debug as true to output detail cache information
debug: true,
// enable cache by default to improve uglify performance. set false to turn it off
cache: false,
// root directory is the default cache path. it can be configured by following setting
cacheFolder: path.resolve(__dirname, '.otherFolder'),
// num of worker process default ,os.cpus().length
workerNum: 2
})]
};