当前位置: 首页 > article >正文

问:webpack与vite区别

大家好,最近在面试的过程中与面试官讨论到打包工具的问题。聊到了这两个工具的区别。那么今天根据自己的一个学习,对这个问题进行一个总结,希望能对大家有所帮助。

打包工具是什么

我们最开始学习前端的时候,都是从html,js,css开始,后面又使用到了框架vue,react等,当我们去开发项目,除了框架还有包括less/Sass等预处理内容,而其中有些是浏览器不能识别的,需要编译成浏览器可以识别的语言。

(简单来说,咱们使用的框架之类浏览器不认识,浏览器只接受部分语言,需要有个工具把项目的内容变成浏览器可以接受的。webpack/vite就是这样的工具)

webpack与vite的区别

构造原理角度

webpack:又被称为模块打包工具。从入口文件开始,递归地构建一个依赖关系图(一个包含所有模块依赖关系的图),它会遍历整个项目的文件系统来查找所有相关的模块。

vite:利用浏览器原生的 ES 模块导入功能来支持。不需要像 Webpack 那样提前打包所有模块。当浏览器请求一个模块时,Vite 会根据请求的模块路径,即时地将对应的文件发送给浏览器。

热更新角度

webpack:热更新相对较慢。即使是项目中一个小模块修改了,也会重新构建整个模块图。

vite:热更新相对较快。当一个模块发生变化时,它会重新发送这个变化的模块给浏览器。

启动速度

webpack:启动相对比较慢,开始的时候需要一系列初始化工作,比如上面说的构建模块图。

vite:启动速度很快。它会启动一个简单的服务器,等待浏览器请求模块即可。

启动方式

webpack:先加载编译,后启动。

vite:先启动,再加载编译,启动快,首屏渲染速度相对较慢。

底层语言

webpack:js语言,毫秒级操作

vite:go语言,纳秒级操作,相比webpack会快很多

适用的场景

webpack:大型的、复杂的项目。webpack存在时间更长,有强大的配置和插件系统能够很好地处理这些复杂的情况,通过精细的配置来优化构建过程和输出结果

vite:适合于现代的前端项目,尤其是基于 Vue、React 等框架的项目。快速启动和热更新速度便于提高开发效率


http://www.kler.cn/a/506369.html

相关文章:

  • 【Redis】Redis 集群中节点之间如何通信?
  • Linux浅谈——管道、网络配置和客户端软件的使用
  • Android BottomNavigationView不加icon使text垂直居中,完美解决。
  • 【GIS操作】使用ArcGIS Pro进行海图的地理配准(附:墨卡托投影对比解析)
  • 当父级元素设置了flex 布局 ,两个子元素都设置了flex :1, 但是当子元素放不下的时候会溢出父元素怎么解决 (css 样式问题)
  • STC的51单片机LED点灯基于KEIL
  • gradle,adb命令行编译备忘
  • json().get() 和 json[““] 的区别
  • 【English-Book】Go in Action目录页翻译中文
  • ASP.NET Core - 选项系统之源码介绍
  • 怎么进行论文选题?有没有AI工具可以帮助~
  • Github 2025-01-16 Go开源项目日报Top9
  • 基于Jenkins + Ansible 构建CD持续部署流水线的详细指南
  • 【Git 】探索 Git 的魔法——git am 与补丁文件的故事
  • 聚焦算力、AI、安全、5G等十大领域,赛迪顾问发布2025年IT趋势
  • Spring Boot经典面试题及答案
  • 【Flink系列】3. Flink部署
  • Spring MVC拦截器完成用户登录权限验证的示例
  • 【linux命令】ip命令使用
  • 【Leetcode 每日一题】3095. 或值至少 K 的最短子数组 I
  • 【计算机体系结构、微架构性能分析】core 与 uncore 分别是哪一些部分?区分 core 和 uncore
  • 智能家居企业如何通过设计师渠道打造第二曲线?
  • 20250116如何查看联想笔记本电脑的型号
  • 利用rsync备份全网服务器数据
  • 编程工具箱(免费,离线可用)
  • 前端【3】--CSS布局,CSS实现横向布局,盒子模型