FastUglifyJsPlugin 多线程优化 uglify 编译构建 - 文章教程

FastUglifyJsPlugin 多线程优化 uglify 编译构建

发布于 2021-09-20 字数 1601 浏览 1004 评论 0

兼容 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
  })]
};

项目地址:https://github.com/youzan/fast-uglifyjs-plugin

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2512 文章
30 评论
82839 人气
更多

推荐作者

qianbiandeboy

文章 0 评论 0

少女净妖师

文章 2 评论 0

zangqw

文章 0 评论 0

qq_7HKsl

文章 0 评论 0

伪装你

文章 1 评论 0