跳到主要内容

vite

Vite 为什么比 Webpack 快

对于 Webpack

项目启动时,webpack 对项目进行全量的打包,然后开启一个 node 服务供浏览器访问

对于 Vite

Vite 使用 ESBuild 对项目的依赖进行一个构建,ESBuild 是基于 Go 语言编写的自身具有多线程自然性能比 JS 快,而 Webpack 使用的是 JS 构建。Vite 开启 Node 服务提供项目模块。Vite 利用浏览器的自身对模块加载的能力实现按需加载,Vite 只对浏览器请求到的模块进行一个编译返回给浏览器,而不是全量打包,并且编译后的模块会利用浏览器的协商缓存对结果进行缓存(利用网络 304)。

总的来说

  • 最主要的原因是 Vite 不用全量大包构建,而是按需构建。利用浏览器支持 ESM 按需加载模块,当模块被加载时才进行编译构建
  • 使用 esbuild 将第三方依赖进行构建,esbuild 用 Go 语言编写,Go 支持多线程性能远高于 JS
  • 利用浏览器缓存将构建后的数据缓存

Vite 相比 Webpack 的缺点

  • 首屏变慢,首屏时需要构建相关模块
  • 目前生态不如 Webpack
网站备案:蜀ICP备2023001425号👏 Powered By Docusaurus, Semi Design