FastUglifyJsPlugin 多线程优化 uglify 编译构建
兼容 webpack 2
生产环境的构建,uglify 过程占了 70% 左右的时间,是一个非常耗时的过程。相对于 webpack 原生 UglifyJsPlugin,FastUglifyJsPlugin 增加了多进程和缓存。多进程可以最大限度的利用多核 cpu 的计算能力,缓存可以按需编译,减少不必要的计算。以下是一组性能测试数据,FastUglifyJsPlugin 的性能提升非常明显。
插件 | 耗时 |
---|---|
webpack.optimize.UglifyJsPlugin | 7.4 min |
FastUglifyJsPlugin without cache | 4.45 min |
FastUglifyJsPlugin with cache | 36 s |
测试样本:29 entry、2615 modules
测试环境:MacBook Pro,4 核 cpu、8g 内存
安装
npm i fast-uglifyjs-plugin --save # or yarn add fast-uglifyjs-plugin
配置
FastUglifyJsPlugin 基于 webpack.optimize.UglifyJsPlugin 修改,用法和 webpack.optimize.UglifyJsPlugin 完全一样,只是增加了几个额外的配置参数。
var FastUglifyJsPlugin = require('fast-uglifyjs-plugin'); module.exports = { entry: {...}, output: {...}, plugins: [new FastUglifyJsPlugin({ compress: { warnings: false }, // debug设为true可输出详细缓存使用信息: debug: true, // 默认开启缓存,提高uglify效率,关闭请使用: cache: false, // 默认缓存路径为项目根目录,手动配置请使用: cacheFolder: path.resolve(__dirname, '.otherFolder'), // 工作进程数,默认os.cpus().length workerNum: 2 })] };
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论