前言
最近发现我们的项目构建速度越来越缓慢的,不得已,还是得稍微解决一下构建问题的。
首先我们的项目本身对浏览器兼容性要求不高,所以构建是可以省略很多内容的,首先推了一下另外一个小伙伴把错误的 .browserslistrc
改了一下。
一个常见的错误就是声明 last 2 version:
> 1%
last 2 versions
事实上你认为 last 2 version 是指浏览器最新的 2 个版本,这个 2 个版本是包含所有浏览器的。换而言之 ie 的两个版本(IE10 & IE11)都会被囊括的。
所以你需要新增两个“补充条款” ———
not dead
not ie 11
这样就把已经上路的浏览器和还算没上路 IE11 送走了。
下面就是调整一下构建。
esbuild & swc
事实上 esbuild 和 swc 区别不大,两者都可以用,对于越陈旧的项目,esbuild 的兼容性会更高一点。
我们这边也选用 esbuild。
首先我们选择安装 esbuild-loader 他同时提供了 minimizer 和 loader。由于我们使用的 vue-cli,这里相当于使用 webpack-chain 魔改。
首先需要把旧的 js 相关的 use 内容全部删除,然后追加我们自己的
然后由于使用了 ts 这里需要把 ts 相关的内容也移除,然后替换掉:
新增自己的 ts 配置
然后 tsx 也可以交给 esbuild 来解析:
由于 vue 的 h 函数和 jsx 不完全一致(内容上有差异),所以这里还的用 babel 转换,当然如果完全不写 jsx 和 tsx 这两步也可以不加。
效果
使用 esbuild 前
使用 esbuild 后
不能说没有把,反正效果不怎么好,但是总归快了不少。
cache
其实你还可以配合 webpack5 的 cache 近一步提升速度,这个就比较恐怖了,如果啥都没改就是 7 s。
本文标题:使用 esbuild 略微的提升一下老项目的构建体验
永久链接:https://iceprosurface.com/2022/esbuild-speed-up-project/
作者授权:本文由 icepro 原创编译并授权刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。