初识 Vite

80 阅读2分钟

是什么

Next generation frontend tooling. It's fast!

官网:cn.vitejs.dev/

Vite(法语意为 "快速的",发音 /vit/,发音同 "veet")是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:

浏览器支持

默认的构建目标是能支持 原生 ESM 语法的 script 标签原生 ESM 动态导入import.meta 的浏览器。传统浏览器可以通过官方插件 @vitejs/plugin-legacy 支持

编辑切换为居中

添加图片注释,不超过 140 字(可选)

解决的需求(问题)

webpack 构建的问题:

  • 启动慢
  • 热更新慢

怎么用

yarn create vite
 
yarn dev

为什么快

1、Vite 通过在一开始将应用中的模块区分为 依赖 和 源码 两类,改进了开发服务器启动时间。

Vite 以 原生 ESM 方式提供源码。这实际上是让浏览器接管了打包程序的部分工作:Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

2、在 Vite 中,HMR 是在原生 ESM 上执行的。当编辑一个文件时,Vite 只需要精确地使已编辑的模块与其最近的 HMR 边界之间的链失活[1](大多数时候只是模块本身),使得无论应用大小如何,HMR 始终能保持快速更新。

3、Vite 同时利用 HTTP 头来加速整个页面的重新加载(再次让浏览器为我们做更多事情):源码模块的请求会根据 304 Not Modified 进行协商缓存,而依赖模块请求则会通过 Cache-Control: max-age=31536000,immutable 进行强缓存,因此一旦被缓存它们将不需要再次请求。

好了,以上都是官方文档自己写的,我们去看下 vite 的源代码,一探究竟。

扩展阅读

  1. vite-ssg - 服务器端生成。
  2. vitedge - 使用全栈实用程序进行边缘渲染。
  3. vite-react-tailwind-template -React 17、TypeScript、Jest、ESLint、Prettier、Husky、Tailwind CSS、PostCSS、pnpm.
  4. awesome-vite
  5. Vite Rollup 插件
  6. umi + vite:umijs.org/docs/api/co…