vite与webpack的区别
- webpack的原理:
- 先转译打包,在启动dev server
- 热更新时,把改动过的模块的相关依赖模块全部编译一次,服务启动慢
- vite原理:
- 对于不会变动的第三方依赖,采用变异速度更快的go编写的esbuild预构建
- 对于js/jsx/css源码,转译为原生ES Module
- 直接启动dev server(不需要打包),对请求的模块按需实时编译
- 热更新时,仅让浏览器重新请求改动过的模块
webpack的启动方式
分析依赖=》编译打包=》交给本地服务器进行渲染。
- 首先会分析各个模块之间的依赖,在进行打包。模块的增多,打包出的bundle体积过大,造成热更新速度慢
vite启动方式
启动服务器=》请求模块时按需动态编译显示。
- 先启动开发服务器,请求某个模块时再对该模块进行实时编译