Vite知识体系| 青训营笔记

60 阅读2分钟

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

知识要点

  • Vite基本概要
  • Vite上手实战
  • Vite进阶路线

前端工程不同的问题

  • 模块化
  • 资源编译
  • 产物质量
  • 开发效率

前端构建工具的意义

  1. 模块化方案
    • 提供模块加载方案
    • 兼容不同模块规范
  2. 语法转译
    • 高级语法转移
    • 资源加载
  3. 产物质量
    • 产物压缩
    • 无用代码删除
    • 语法降级
  4. 开发效率
    • 热更新

Vite概览

定位:新一代前端构建工具

两大组成部分

  1. No-Bundle开发服务,源文件无需打包
  2. 生产环境基于Rollup的Bundler

核心特征

  1. 高性能,dev启动速度和热更新速度非常快
  2. 简单易用,开发者体验好

项目初始化

提前安装pnpm,在终端输入以下代码

npm i -g pnpm

初始化命令

pnpm create vite

安装依赖

pnpm install

启动项目

npm run dev

生产环境 Tree Shaking

优化原理

  1. jiyuESM的import/export语句依赖关系,与运行时状态无关
  2. 在构建阶段将未使用到的代码进行删除

关键技术 单文件编译

用Esbuild编译TS/JSX

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

局限性:

  1. 不支持类型检查
  2. 不支持语法降级到ES5

关键技术 代码压缩

Esbuild作为默认压缩工具,替换传统的Terser、Uglify.js

关键技术 插件机制

开发阶段 -> 模拟Rollup插件机制

生产环境 -> 直接使用Rollup

深入双引擎

esbuild和rollup

参考资料:

  1. Esbuild官方文档
  2. Rollup官方文档

推荐学习顺序:

  1. 先了解基本使用,动手尝试各项常用配置
  2. 然后学习其插件开发

为什么需要插件机制

  • 抽离核心逻辑
  • 易于拓展

Vite插件开发

先看文档,过一遍插件钩子的功能,然后多学习其他插件的实现,掌握套路

个人感悟

Vite是目前比较多人使用的前端构建工具,掌握这个能对以后工作有挺大的帮助