Vite知识体系 | 青训营笔记

91 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第2天

课堂内容

  • Vite的基本使用
  • 构建工具

构建工具

前端为什么需要构建工具?:前端存在许多问题:

(1)模块化:前端没有统一的规划

(2)资源编译:浏览器的标准追不上前端开发。高级语法的编译存在问题

(3)产物质量:代码体积要压缩 代码性能,兼容性

(4)开发效率:要构架工具提升体验

构建工具的解决

(1)提供模块加载方案、兼容不同模块规范

(2)高级语法转译、资源加载

(3)产物压缩、无用代码删除

(4)热更新

Vite概述

定位:新一代前端构建工具(高性能、简单易用)

当下问题

(1)缓慢的启动->项目编译等待成本高

(2)缓慢的热更新->修改代码后不能实时更新

技术瓶颈:bundle(打包)带来的性能开销、JS语言的性能瓶颈(单线程)

  • 基于原生ESM的开发服务优势:

image.png

无需打包项目源代码

天然的按需求加载

可以利用文件级的浏览器缓存

  • 基于Esbuild的编译性能优化

在Vite中被深度使用

  • Vite内置的Web构建能力

image.png

Vite初始化

(1)项目初始化

Vite结构

(1)依赖的预打包

避免node——modules过多的文件请求、将CommonJS格式转为ESM格式

(2)Esbuild编译TS/JSX

编译速度快,但是不支持类型检查、不支持语法降级到ES5

(3)代码压缩

(4)插件机制

Vite进阶路线

Vite依赖的两个构件引擎:

esbuild、rollup

为什么需要插件机制?:抽离核心逻辑、易于拓展

  • 代码分割:

拆包前:

无法进行并发请求、缓存复用率地