vite为什么快

底层使用go语言,编译速度快

底层使用的esbuild 是由go编写,cpu密集下更具性能优势,编译速度更快,相比较其他打包工具的速度提升10~100倍的差距。

unbundle思想

  • 不用打包,一个 import 语句即代表了一个 HTTP 请求。
  • 但要使用预构建将依赖中各种其他模块化规范(CommonJS、UMD)转换成ESM,以提供给浏览器进行加载。
  • 预构建还会将第三方依赖模块的import合并,以减少 import模块请求次数。

充分利用http缓存

  • 源码模块的请求会根据 304 Not Modified 进行协商缓存,
  • 而依赖模块请求则会通过 Cache-Control: max-age=31536000,immutable 进行强缓存,因此一旦被缓存它们将不需要再次请求。