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
进行强缓存,因此一旦被缓存它们将不需要再次请求。