Vite知识体系 | 青训营笔记

77 阅读2分钟

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

17.jpg

一、重点内容

  • 浅谈构建工具
  • 概要介绍Vite的概念、初次使用、整体架构

二、详细知识点

为啥需要构建工具?

  • 从开发方面:避免重复造轮子;
  • 从运行方面:对代码进行处理(压缩、优化...),使文件更小;
  • 从维护方面:出现了很多模块化工具。

Vite是啥?

先在这里引用一下Vite官网的描述:下一代前端开发与构建工具。Vite是作者尤雨溪基于浏览器原生ES imports开发的服务器,所以Vite的特点为:

  • 高性能:不用打包原生ESM文件;不管应用程序有多大,热重载速度都极快。
  • 功能丰富:对于JSX、CSS、TypeScript等等都可以达到开箱就用。

Vite的初次使用

兼容性注意: Vite 需要 Node.js 版本 >= 12.0.0。

  • 使用 NPM:
$ npm init vite@latest
  • 使用 Yarn:
$ yarn create vite
  • 使用 PNPM:
$ pnpm create vite

然后就可以跟着提示操作走了! 2. 可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。假如要构建一个 Vite + Vue 项目,运行:

# npm 6.x
npm init vite@latest my-vue-app --template vue

# npm 7+, 需要额外的双横线:
npm init vite@latest my-vue-app -- --template vue

# yarn
yarn create vite my-vue-app --template vue

# pnpm
pnpm create vite my-vue-app -- --template vue

查看create vite就可以获取各个模板的更多细节。

Vite整体架构

依赖预打包

  • 为什么要进行预打包?
  1. 避免node_modules过多的文件请求
  2. 将CommonJS格式转换为ESM格式
  • 实现原理
  1. 服务启动前扫描代码中用到的依赖
  2. 用Esbuild对依赖代码进行预打包
  3. 改写import语句,指定依赖为预构建产物路径

23.png

单文件编译

用Esbuild编译TS/JSX

  • 优势:编译速度提升10-100
  • 局限性:
    • 不支持类型检查
    • 不支持语法降级到ES5

插件机制

  • 开发阶段->模拟Rollup插件机制
  • 生产环境->直接使用Rollup

三、应用参考

开始 | Vite (vitejs.net)

本文若有不足,欢迎纠正。