前端编译速度优化——ESbuild

本文旨在说明使用ESbuild提升前端编译构建的速度,降低前端编译的CPU开销。目前默认的webpack打包方式,随着工程的持续增大,编译也变得越来越慢,更有甚者,一个项目编译需要3~5分钟,风扇在疯狂的转,流水线已然崩溃……

问题现象

在前端项目编译时,会使用混淆和压缩技术,webpack默认是使用TerserPlugin,常常会发现编译执行到92%以后会等待很久

● Webpack ……chunk asset optimization (92%)
TerserPlugin
在这里插入图片描述

TerserPlugin随着产物越来越大,编译上线和 CI 的时间都越来越长,而其中 1/3 及更多的时间则是在做压缩的部分。OOM 的问题也通常来源于压缩,我们推出的 UglifyCache 和 autoExternal 方案其实大部分也是在解决产物大了之后压缩慢从而可能导致 OOM的问题。

ESbuild超神之路

「esbuild」官方的介绍:它是一个「JavaScript」Bundler 打包和压缩工具,它可以将「JavaScript」和「TypeScript」代码打包分发在网页上运行。

目前「esbuild」支持的功能:

加载器
压缩
打包
Tree shaking
Source map 生成
将 JSX 和较新的 JS 语法移植到 ES6

什么是ESbuild

ESbuild压缩速度大幅提升,来自官方的图片

在这里插入图片描述

ESbuild的用法(umi)

依赖安装

yarn add @umijs/plugin-esbuild

config.js配置esbuild,一般还是会转换为es5

  esbuild: {
    target: 'es5',
  },

使用效果
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值