Vite 学习笔记(二):Vite相对于Webpack的优势与Vite脚手架

webpack的工作流程

webpack构建项目会根据资源模块的依赖关系构建依赖图,根据依赖图去加载/处理各种文件。

而当我们的项目越来越大的时候,需要处理的JavaScript代码量也呈指数级增长。包含数千个模块的大型项目相当普遍。基于JavaScript开发的工具就会开始遇到性能瓶颈:通常需要很长时间(甚至是几分钟!)才能启动开发服务器,即使使用模块热替换(HMR),文件修改后的效果也需要几秒钟才能在浏览器中反映出来。此时 webpack 构建项目时的构建速度服务器的启动就会非常慢。

因为webpack为了支持多种模块化进行了统一的模块化处理。(webpack考虑的是兼容性的问题(浏览器端 + 服务端)

webpack 构建流程的示意图如下:

Vite 为什么比 webpack 快

首先我们要明白webpack应该是为了兼容性的考虑,所以webpack支持多种模块化,但是vite只是支持ESM规范,所以此时不需要去遍历依赖图文件了,进而问题就得到了解决

Vite 工作示意图如下:

webpack需要把所有的文件、依赖文件统统打包成Bundle之后,才会去启动Server,而vite一开始就启动Server,然后按需加载各种文件的。

所以基于这种特性,Vite 相较于 webpack 来说会更快

create-vite、vite、create-vue之间的区别

create-vitecreate-vue本身都是创建了一个快捷工程化项目,我们称之为clicreate-vite能够提供React等框架的模板,create-vue只是针对于vue3所存在的一个cli,他们都是基于vite来创建服务器、打包的。

总结

vite能够跟webpack一样,能够实现资源模块的打包加载,但是vite相比于webpack确实轻量了不少,他解决了webpack遍历依赖文件的问题,换句话说webpack考虑的是兼容性的问题(浏览器端 + 服务端),而vite考虑的是浏览器端的资源文件加载

相关推荐
天渺工作室15 小时前
构建完自动打包压缩,一个插件搞定 Vite / Webpack / Rollup / ESBuild
webpack·vite·rollup.js
Hello--_--World2 天前
Vite:什么是bundleless?哪些要打包,哪些不要打包?依赖预构建是什么?依赖预构建如何减少网络请求的?esbuild 又是什么?
前端·javascript·webpack·vite
VillenK2 天前
版本依赖问题:vite-plugin-dts@3.1.0 与 jiti 的兼容性
前端·typescript·vite
閞杺哋笨小孩5 天前
从脚手架到构建注入:Vue 多租户「入驻」工程实践
vue.js·vite
吴声子夜歌13 天前
Vue3——脚手架Vite
前端·javascript·vue.js·vite
DevilSeagull13 天前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
kyriewen15 天前
Webpack vs Vite:一个是“老黄牛”,一个是“猎豹”,你选谁?
前端·webpack·vite
天渺工作室20 天前
别再写改名脚本了,一个 Vite 插件搞定压缩、校验、自动哈希命名vite-plugin-pack-orchestrator
前端·vite
Sheldon一蓑烟雨任平生22 天前
Vite 深度剖析(四)
性能优化·vite·图片压缩·gzip压缩·代码压缩·摇树·dns-prefetch
Sheldon一蓑烟雨任平生23 天前
Vite 深度剖析(二)
vite·静态资源处理·hmr·css工程化处理·模块热替换·vite 插件