FastUglifyJsPlugin 多线程优化 uglify 编译构建

发布于 2021-09-20 16:55:06 字数 1379 浏览 1485 评论 0

兼容 webpack 2

生产环境的构建,uglify 过程占了 70% 左右的时间,是一个非常耗时的过程。相对于 webpack 原生 UglifyJsPlugin,FastUglifyJsPlugin 增加了多进程和缓存。多进程可以最大限度的利用多核 cpu 的计算能力,缓存可以按需编译,减少不必要的计算。以下是一组性能测试数据,FastUglifyJsPlugin 的性能提升非常明显。

插件耗时
webpack.optimize.UglifyJsPlugin7.4 min
FastUglifyJsPlugin without cache4.45 min
FastUglifyJsPlugin with cache36 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

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

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文