Vite快速入门
Vite快速入门
什么是Vite
Vite是Vue的作者尤雨溪在开发Vue3.0的时候开发的一个Web开发构建工具。由于其原生ES模块导入方式,可以实现闪电般的冷服务器启动。Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:
一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。
一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。
实现原理
ESBuild
ESBuild 是基于Go语言开发的JavaScript Bundler, 它的构建速度是 webpack 的几十倍。由Figma前CTO Evan Wallace开发,并且也被Vite用于开发环境的 依赖解析和Transform.
ESBuild的实现
由Go实现并编译成本地代码:多数Bundler都是由JavaScript实现的,但是CLI应用对于JIT编译语言来说是性能表现最不好的。每次运行Bundler的时候,JS虚拟机都是以第一次运行代码的视角来解析Bundler(比如Webpack)的代码,没有优化信息.当ESBuild在解析JavaScript的时候,Node还在解析Bundler的JS代码
重度使用并行计算: Go语言本身的设计就很重视并行计算,所以ESBuild对这一点会加以利用.在构建中主要有三个环节: 解析(Parsing),链接(Linking)和代码生成(Code generation),在解析和代码生成环节会尽可能使用多核进行并行计算
ESBuild中的一切代码从零实现:通过自行实现所有逻辑来避免第三方库带来的性能问题,统一的数据结构可以减少数据转换开销,并且可以根据需要改变架构,当然最大的缺点就是工作量倍增.