「Vite知识体系学习一」 | 青训营笔记

78 阅读1分钟

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

前端模块化工具的意义

  • 模块化方案
    • 提供模块加载方案
    • 兼容不同模块规范
  • 语法转译
    • 高级语法转译,如Sass、TypeScript
    • 资源加载,如图片、字体、worker
  • 产物质量
    • 产物压缩、无用代码删除、语法降级
  • 开发效率
    • 热更新

Vite是什么?

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

两大组成部分:

  • No-bundle开发服务,源文件无需打包
  • 生产环境基于Rollup 的Bundler

核心特征

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

Vite优势

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

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

image.png

基于Esbuild的编译性能优化

image.png

Esbuild ——基于Golang开发的前端工具,具备如下能力

  • 打包器Bundler
  • 编译器Transformer
  • 压缩器Minifier

性能极高,在Vite 中被深度使用

内置的Web构建能力

Vite开箱即用的能力等同于

  • webpack
  • webpack-dev-server
  • css-loader
  • style-loader
  • less-loader
  • sass-loader
  • postcss-loader
  • file-loader
  • MiniCssExtractPlugin
  • HTMLWebpackPlugin
image.png 等价于-->

image.png

使用Vite

项目初始化

  1. 初始化命令:pnpm create vite
  2. 安装依赖:pnpm install
  3. 启动项目:npm run dev

输入初始化参数

image.png

启动后 image.png 启动后ctrl + 鼠标左键单击路径地址打开即可

生产环境 Tree Shaking

image.png 优化原理:

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

Tree Shaking在Vite中无需配置,默认开启!

image.png