Vite 知识体系 | 青训营笔记

35 阅读1分钟

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

构建工具的意义

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

Vite 概览介绍

  • 新一代前端构建工具
  • 组成部分
    • No-bundle开发服务,源文件无需打包
    • 生产环境基于Rollup 的Bundler
  • 核心特征
    • 高性能, dev启动速度和热更新速度非常快
    • 简单易用,开发者体验好
  • 前端瓶颈
    • bundle带来的性能开销
    • JavaScript语言的性能瓶颈
  • 行业趋势
    • 全球浏览器对原生ESM的普遍支持(目前占比92%以上)
      • 优势
        • 无需打包项目源代码
        • 天然的按需加载
        • 可以利用文件级的浏览器缓存
    • 基于原生语言(Go、Rust)编写前端编译工具链,如Go语言编写的Esbuild、Rust编写的Swc

Vite 上手实战

  • 初始化

    image.png

  • 使用Sass/Scss & CSS Modules

    image.png

    image.png

  • 使用静态资源

    image.png

  • 使用HMR

    image.png

  • 生产环境Tree Shaking

    image.png

Vite 整体架构

image.png

关键技术

  • 单文件编译

image.png

  • 代码压缩

image.png

  • 插件机制

    image.png

Vite 进阶路线

  • 深入双引擎

    image.png

  • 为什么需要插件机制

    • 抽离核心逻辑
    • 易于拓展
  • Vite插件开发

    image.png

    • 实例

      image.png

    • 参考资料

      image.png

  • 代码分割(拆包)

    image.png

  • JS编译工具(Babel)

    image.png

  • 语法安全降级

    image.png

image.png

  • 服务端渲染(SSR)

    image.png

  • 深入了解底层标准

    image.png

  • Vite社生念

    image.png