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

140 阅读2分钟

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

一.为什么需要构建工具

前端工程的痛点

模块化:ESM、CommonJS、UMD 资源编译:高级语法的编译 产物质量:代码体积、代码性能 开发效率:热更新

前端构建工具的意义

模块化方案

  1. 提供模块加载方案
  2. 兼容不同模块规范

语法转译

  1. 高级语法转译
  2. 资源加载

产物质量

1.产物压缩 2.无用代码删除 3.语法降级

开发效率

热更新

二.新一代构建工具vite

vite是什么

vite是新一代前端构建工具 它有两大组成部分: 1.No-bundle 开发服务,源文件无需打包 2.生产环境基于Rollup的Bundler 这极大的简化了我们的开发流程 它的核心特征是: 1.高性能,dev启动速度和热更新快 2.简单易用,开发者体验好

原生ESM的优势

无需打包项目源代码 天然的按需加载 可以利用文件级的浏览器缓存

三.vite上手使用

# 全局安装pnpm包管理工具
npm install -g pnpm
# 创建vite项目
pnpm create vite
# 安装依赖
pnpm install
# 开发环境下运行vite项目
pnpm run dev

vite项目引入scss也十分便捷,并且无需额外配置,自动支持HMR。而且无需配置Tree shaking,vite项目初始化时已经配置好了。

四.vite整体架构

1.依赖预打包

避免node_modules过多的文件请求 将CommonJS格式转换为ESM格式

2.单文件编译

使用esbuild编译ts/jsx时可以将编译速度提升10到100倍,缺点就是不支持类型检测和语法降级。

3.代码压缩

使用压缩性能最高,效率最快的esbuild作为打包工具,极大的加快了打包速度,提高了开发效率。

4.插件机制

在开发阶段可以模拟rollup插件机制,生产阶段能直接使用rollup

五.vite进阶路线

在可以熟练使用vite后就可以对他的打包构建工具rollup和esbuild进行深入学习,再继续探索vite插件开发,可以在vite的开源社区里找到很多有用的插件借鉴学习。