科技微讯

使用 esbuild 打包压缩云函数代码

Node.js 项目通常有一个体积较大的 node_modules 文件夹,它会带来以下问题:

为了解决以上问题,可使用 esbuild 打包并压缩代码,esbuild 有 tree shaking 功能,没用到的依赖不会打包进来,打包完还能 minify 一下,最后得到的代码体积将显著降低。

使用 esbuild 压缩函数代码非常简单,就一行:

esbuild ./dist/index.js --bundle --minify --platform=node --target=node14.18 --outfile=index.js

上面这条命令也适用于 typescript,当然入口文件要改一下后缀。但 esbuild 只是编译、打包、压缩代码,并不支持 type checking,所以建议先执行 tsc -noEmit。除了不支持 type checking,esbuild 打包 ts 代码还有若干其他限制,所以另一种做法是用 tsc 先编译出 js 代码,然后用 esbuild 对 js 进行打包,缺点是 tsc 速度较慢,最后得到的代码体积也大一点点。

使用 esbuild 打包后,代码体积可能会缩小 100 倍以上,函数冷启动时间也可能提高 1 ~ 2 倍


参考文章:

thumbsup0
thumbsdown0
暂无评论