一、webpack和vite
- 都是现代化打包工具
二、为什么Vite启动快
2.1 底层语言
- 从底层原理上来说,Vite是基于esbuild预构建依赖。而esbuild是采用go语言编写,因为go语言的操作是纳秒级别,而js是以毫秒计数,所以vite比用js编写的打包器快10-100倍。
2.2 webpack和vite的启动方式
-
webpack原理图
-
vite原理图
-
webpack
: 分析依赖=> 编译打包=> 交给本地服务器进行渲染。首先分析各个模块之间的依赖,然后进行打包,在启动webpack-dev-server
,请求服务器时,直接显示打包结果。webpack
打包之后存在的问题:随着模块的增多,会造成打出的 bundle 体积过大,进而会造成热更新速度明显拖慢。 -
vite
: 启动服务器=> 请求模块时按需动态编译显示。是先启动开发服务器,请求某个模