Vite知识体系
1.Vite基本概要
(1)构建工具
我们为什么需要构建工具? 这里,我们先了解了前端的组成要素。简单来讲,前端项目就是由一系列的资源文件组成,浙西文件资源可以是逻辑代码,比如JS,TS,JSX,也可以是样式代码,比如说CSS,SCSS,LESS等,也可以是一些静态资源,比如说PNG文件、JPEG文件、WEBP文件等等,前端经过不断迭代,一些问题也变得越来越明显。
首先是模块化问题,所谓模块化,就是把不同的问题拆分成不同的模块,再将各个模块分别进行开发和维护,这样就能将项目分为不同的部分,然后再分而治之,再其他语言,例如Python、Go语言,都有一些模块化的规范,但是在前端的JS中,都没有统一的规范,所以再后面也形成了一些规范,到目前为止,主要包括ESM规范、CommonJS规范和UMD规范,但是并没有形成统一,所以模块化在前端仍然是一个问题
第二个问题是资源编译,浏览器并不认识JS、JSX这些语言中的高级语法,需要将他们编译为浏览器可以识别的形式,背后就涉及到一系列的工具链,所以对于各种编译工具链的认识也成了当时的一个痛点,简单讲就是浏览器的标准赶不上前端开发者的脑洞
第三个是产物质量,为了保证代码质量,就得将代码压缩会使产物质量降低
(2)前端构建的意义
在讨论完构建工具的必要性之后,我们就能得知前端构建工具的意义了(1)在模块化方案方面,可以提供模块加载方案,并且兼容不同模块规范;(2)在语法转译方面,能进行高级语法转移,如sass、TypeScript,并且可以用于资源加载,例如图片、字体、worker等;(3)对于产品质量,能进行铲平压缩、无用代码删除、语法降级;(4)对开发效率而言,能进行热更新。
2.Vite是什么?
VITE,是一套面向大型自动化测试系统的通用测试程序开发平台、运行平台。该应用环境为以S-R(激励─响应)模式工作的测试过程提供了一个通用、完备的系统解决方案。 VITE开发平台无需测试人员编程,测试人员只需根据被测对象的测试需求,在完全的图形化开发界面上填写测试流程要素,系统将根据要素自动生成的测试任务的执行脚本。
这和传统基于打包(例如 Webpack)的开发服务器有什么区别?
vite 在开发的时候没有打包的过程,ES 模块源码直接传输给浏览器,浏览器使用自带的
两大行业趋势
- 全球浏览器对原生ESM的普遍支持(目前占比92%以上)
- 基于原生语言(GO、Rust)编写的编译工具链,如GO语言写的Esbuild、Rust编写的SWC。
基于原生ESM的开发服务优势
1.无需打包项目源代码 2.天然的按需加载 3.可以利用文件的浏览器缓存内置的Web构建能力
上面的这段代码等价于下面这段代码: