Esbuild的一些缺点
Esbuild 作为打包工具速度快,性能好,但也有一些缺点:
- 不支持降级到
ES5
的代码。这意味着在低端浏览器代码会跑不起来。 - 不支持
const enum
等语法。这意味着单独使用这些语法在 esbuild 中会直接抛错。 - 不提供操作打包产物的接口,像
Rollup
中灵活处理打包产物的能力(如renderChunk钩子)在Esbuild
当中完全没有。 - 不支持自定义
Code Splitting
策略。传统的Webpack
和Rollup
都提供了自定义拆包策略的 API,而 Esbuild 并未提供,从而降级了拆包优化的灵活性。
尽管 Esbuild
作为一个社区新兴的明星项目,有如此多的局限性,但依然不妨碍 Vite
在开发阶段使用它成功启动项目并获得极致的性能提升,生产环境处于稳定性考虑当然是采用功能更加丰富、生态更加成熟的 Rollup
作为依赖打包工具了。