Skip to content

项目中的业务代码是否支持commonjs写法

在技术上是支持的,但是建议使用原生的ESM写法。因为,vite底层的解析是用的esbuild,而esbuild在解析时,会将 commonjs 模块转换为 ESM 模块。以便更好的使用Tree Shaking优化。使用ESM写法可以加快项目打包时的时间。

既然浏览器已经支持ESM模块,为什么生产环境依旧需要打包?

因为,开发中可能有使用commonjs、amd、umd等模块化规范的第三方库,而浏览器是不支持的。所以,需要将第三方库也打包成ESM模块,以便浏览器可以正常使用。 并且打包时,vite会对代码进行混淆加密以及速度优化,以便尽最大可能的优化代码速度,减少代码体积。