[ Vite知识体系 | 青训营笔记]

167 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

为什么需要前端构建工具

前端模块化 提供一个统一的模块方案 兼容不同的模块规范

语法转译

高级语法转译。如果 sass、TypeScript 资源加载,如图片、字体、worker

产物压缩、无用代码删除、语法降级

支持热更新

Vite是什么

  • vite 是新一代前端构建工具,No-bundle开发,源文件不需要打包,生成环境基于 rollup ,它的特点是:高性能,dev和热更新都很快,简单易用

  • vite 使用 go 开发的 esbuild 工具,摒弃了原生js开发的弊端

  • vite 内置了很多webpack的基础设置,包括 css 的解析,html 插件等等

  • vite 基于原生ESM开发服务 vite dev serve,无需打包项目源码,天然按需加载,可以利用文件级的浏览器缓存

使用Vite

`#提前安装pnpm npm i -g pnpm

#初始化命令 pnpm create vite

#安装依赖 pnpm install

#启动项目 npm run dev`

生产环境

基于ESM的import/export语句依赖关系,与运行时状态无关 在构建阶段未使用到的代码进行删除 tree shaking会默认自动开启

实现原理:

服务器启动前扫描代码中用到的依赖

用Esbuild对依赖代码进行滚预打包

改写import语句,指定依赖为预构建产物路径

关键技术:单文件编译 用Esbuild编译TS/JSX

优势: 编译速度提升10-100x

插件机制

Vite 由于在开发环境中使用的不是 Rollup,因此 Vite 有一个 Plugin Container 来模式 Rollup 插件机制,使得 Vite 可以支持一些 Rollup 插件。而在生产环境,Vite 直接使用 Rollup。

Vite进阶

  • esbuild、rollup两个底层编译工具
  • vite插件开发:抽离逻辑,易于拓展。通过hook在不同阶段插入自定义逻辑。
  • 代码分割:并发请求,提高缓存命中率。
  • SSR:优化首屏渲染和SEO优化。
  • 深度底层标准

标题:Vite 基本概要 - 掘金

网址:juejin.cn/course/byte…