<> 关于缩减 Node 镜像的体积 >
最近在用 Node 写点东西,想缩减最终构建出来的 Docker image 的体积。除了用常规的 multi-stage build [1],让最终镜像基于 node-alpine 之外,还可以考虑用 bundler 打成单文件(没错,跟 Web 前端项目一样)。
因为大多数情况下项目只会用到依赖里的某些代码,bundler 可以把没用到的部分 tree shaking 掉。比如用 tsup[2],把所有依赖都挪到 devDependencies 之后,tsup 就会把所有外部依赖打包到一个文件里了,这个 js 单文件除了 Node 之外没有任何依赖。
[1]: http://t.cn/Ree2tuQ
[2]: http://t.cn/A6MeCa20
