vite为什么比webpack快

文章类型:Javascript

发布者:admin

发布时间:2023-02-20

一:原理上:

1:webpack将所有文件文件打包成一个文件,先识别入口文件,逐级递归识别依赖,构建依赖图谱->转化AST语法树->处理代码->转换为游览器可识别的代码,再启动服务器。

2:vite启动服务器后,基于游览器原生ES Module,利用浏览览器解析import,按需加载模块,进行编译,按需动态编译极大的缩减了时间。

二:底层上:

1:webpack基于node实现。

2:vite基于Esbuild 预构建依赖。基于go语言

三:HMR上:

1:webpack需要重新将该模块的所有依赖重新编译。

2:vite直接重新请求需要改变的模块。

webpack图

vite图

vite相比较webpack来说:

1:生态不及webpack、加载器、插件不够丰富

2:生产环境esbuild构建对于css和代码分割不够友好

3:项目开发游览要支持ES Module,不能识别CommonJS语法