vite与webpack有什么不同?为什么vite比webpack快?

Vite 与 Vue Cli 对比 - 尤雨溪: Vite 会取代 vue-cli 吗? 尤雨溪在发布 Vite 之后写了一条推,感觉不会在用 webpack 了(Vue-cli 基于 Webpack 开发,并配置了 Webpack 打包规则),Sean 是 Webpack 核心开发者,会一些中文,在尤大这条下面直接感叹。 Vue-cli 一直是 Vue 2 默认官方脚手架工具,Vue-cli 基于 Webpack 开发。Vue 3 发布后,尤大同时发布了 Vite ,那么 Vue 3 同时有两个前端打包工具 Vite 和 Vue CLI,那么他们俩应该怎么选呢? 阅读详情

1. 定位

webpack、rollup、esbuild 都是打包工具,对代码进行压缩、合并、转换、分割、打包等操作,都需要打包工具去完成

vue-cli、umi 是基于 webpack 的上层封装,通过简单配置能快速搭建起一个项目(用 webpack 去搭建项目需要配置很多东西

vite 开发环境依赖 esbuild 进行预构建,生产环境依赖 rollup 进行打包,并且充分利用浏览器特性,比如 http2、ES module,是站在众多巨人肩膀上的一个产物

2. 运行原理

webpack 启动项目时,它会根据配置文件 webpack.config.js 中的入口文件 entry,分析项目的依赖关系,然后打包成一个文件 bundle.js,交给浏览器去加载渲染

问题:项目越大,需要打包的东西就越多,启动的时间也就越长


vite 运行项目时,会用 esbuild 进行预构建,将所有模块转换成 es module,不需要对整个项目进行编译打包,而是在浏览器需要加载某个模块时,拦截请求,根据请求进行按需编译,然后再返回给浏览器

绝大多数浏览器已经支持 ES Modules,在 script 标签中添加 type=“module”,就可以使用了

这样一来,首次启动项目(冷启动)时就把 webpack 快很多,并且项目大小对 vite 启动速度的影响很小


Q:什么是 ES Modules?

ES Modules 是个模块化方案,在浏览器端和 node.js 环境中组织和管理代码,有以下特点:

(1)允许将代码分割成多个模块,每个模块可以独立定义自己的作用域和功能,通过使用 import 和 export 语句,来实现模块之间的依赖关系和数据交互

(2)采用静态加载机制,模块的依赖关系在编译时就已经确定了,模块的加载是同步的

3. 构建方式

webpack 是基于 node.js 运行的,但 js 只能单线程运行,无法利用多核 CPU 的优势


vite 预构建和按需编译过程,都是使用 esbuild 完成的

esbuild 是用 go 语言编写的,可以充分利用多核 CPU 的优势


Q:什么是预构建依赖?

在项目启动或构建之前,对项目所需的依赖进行预先的处理或构建

好处:在实际运行时,直接使用已经构建好的依赖,提高运行速度

4. http2

http1 的时候,浏览器对同一个域名的请求有并发限制,一般为 6 个,超过 6 个就会造成阻塞,所以要减少打包数量,减少并发请求,来提高速度

http2 就可以并发发送多个请求,没有并发限制,将打包产物分为多个小模块,并行去加载,反而更快

vite 充分利用 http2 可以并发请求的优势,对项目进行合理拆分,访问时同时加载多个模块,来提高速度

5. 热更新 HMR

热更新 HMR:在程序运行过程中,替换、添加或删除模块,而无需重新加载整个页面

每次修改文件,webpack 都会对整个项目进行重新打包,对大项目来说很不友好。即使有缓存机制,也不能根本解决问题


vite 项目中,监听到文件变更后,会用 websocket 通知浏览器,重新发送新的请求,只对该模块进行重新编译,然后进行替换

并且基于 es module 的特性,vite 利用浏览器的缓存机制,针对源码模块进行协商缓存,针对依赖模块进行强缓存,这样访问速度更快了

6. 生产环境

vite 生产环境下用 rollup 打包,它是一款 ES module 打包器,与 webpack 相比,rollup 要小巧得多,打包生成的文件更小

esbuild 打包速度要比 rollup 快,但 vite 目前的插件 API 与使用 esbuild 作为打包器并不兼容,用 rollup 打包更加稳定,所以使用 vite 可能存在开发环境和生产环境打包结果不一致的问题

7. 优缺点

webpack:

优点:可以更灵活地配置优化项目;拥有庞大的插件生态,适用于复杂项目

缺点:构建速度较慢;配置复杂


vite:

优点:极快的开发构建速度;零配置启动;原生 ES 模块启动,适合小型项目和快速原型开发

缺点:插件生态较小;不适合复杂项目

前端工程化 webpack vite 优化方法 阅读详情

相关推荐

vite打包流程和原理

vite打包原理

程序媛的梦工厂 3138

vite 和 webpack 优缺点对比

内置支持 Vue.js:Vite 是由 Vue.js 团队开发的构建工具,因此它默认支持 Vue.js 和单文件组件,可以快速搭建 Vue.js 项目。简单的配置:Vite 的配置非常简单,只需要一个 vite.config.js 配置文件即可实现大多数功能。不支持所有类型的项目:Vite 主要面向 Vue.js 项目,因此在其他类型的项目中可能无法发挥出最佳效果。快速的开发者体验:Vite 可以实现快速的冷启动和热更新,使开发者可以迅速地获取反馈并进行调试。

CS304961760的博客 1578

WHAT - Vite 凭什么比 Webpack 快

本分根据Vite官方文档分析了vite比Webpack等传统打包工具快的原因,以及将来即将推出的基于rust的rolldown工具。

weixin_58540586的博客 1487

webpack和Vite的优缺点和区别

本文讲了webpack和Vite的优缺点和区别哦

qq_50260510的博客 5440

网格自适应实战 | 攻克超弹性体大变形不收敛难题

本文针对超弹性体(如橡胶)在大变形仿真中因网格严重扭曲导致计算不收敛的难题,提供了基于ANSYS网格自适应技术的实战解决方案。文章详细阐述了从问题诊断、模型准备到核心参数设置的完整流程,并介绍了结合混合U-P单元技术的进阶组合策略,有效攻克了材料压缩等场景下的仿真收敛问题。

week9的博客 522

Vue3 与 Bpmn-js:打造现代化 BPMN 流程设计器

随着业务流程的复杂化,流程设计器成为企业级应用中不可或缺的一部分。BPMN(Business Process Model and Notation)是一种标准的业务流程建模语言,广泛应用于业务流程管理。本文将介绍如何使用 Vue3 和 Bpmn-js 打造一个现代化的 BPMN 流程设计器。

九天的专栏 2118

Webpack 和 Vite

Webpack 和 Vite 是两种主流的现代前端构建工具,主要区别在于架构理念和开发体验。Webpack 采用传统打包模式,适合复杂定制化需求但启动较慢;Vite 利用原生 ES 模块和按需加载,提供极速的冷启动和热更新,更适合现代前端项目。Webpack 生态成熟但配置复杂,Vite 开箱即用但兼容性稍弱。根据项目类型选择:新项目推荐 Vite,老项目或微前端场景适合 Webpack。

FAN的博客 1397

LangChain + Milvus Lite:从零搭建本地RAG知识库

本文详细介绍了如何利用LangChain、Milvus Lite和gte-large-zh模型,在本地从零搭建一个完整的RAG知识库系统。文章涵盖了环境配置、文档处理与向量化、本地向量库构建以及检索问答实现的全流程,重点突出了完全本地化部署带来的数据隐私安全和成本优势,为开发者提供了一条实践性极强的技术路径。

weixin_29044713的博客 445

webpack和vite的区别

Webpack:优点:灵活、强大、适用于复杂场景、庞大的插件生态。缺点:构建速度较慢、配置复杂、开发体验不如Vite流畅。

weixin_43502666的博客 3253

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 578

ArcGIS基于DEM提取微流域单元(附练习数据下载)

流域作为一个相对独立的地理单元,与行政区的划分有着本质上的区别。流域的划分更注重自然因素,流域作为一个综合的自然整体,在其内部形成了一个天然的物质与能量流动的场所,并通过水流的作用,与周围的区域进行物质和能量的交换。流域的精确划分作为一个研究的基础工作,那么接下来给大家说一下利用DEM提取小流域的案例教程——以贵州省遵义市正安县为例。 1 数据获取 地理空间数据云(http://www.gscloud.cn/),数据分辨率为30m。也可直接点击这篇直接下载→全国30m90mDEM下载。 若想要获得更高精度.

qq_43173805的博客 4835

终于搞明白,vite为什么比webpack快了!运行原理、构建方式等方面到底有什么不同!

1.前端常见工具之间的定位与联系,如webpack、rollup、vite、esbuild、vue-cli等。 2.从运行原理、构建方式、HMR热更新机制、使用成本等方面逐一去分析,vite与webpack之间的差异。

SmileLife123的博客 699

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

webpack和vite的区别,为什么vite启动速度比webpack快?

总的来说,Vite 之所以比 Webpack 快,主要是因为它采用了不同的开发模式、充分利用了现代浏览器的 ES Modules 支持、使用了更高效的底层语言,并优化了热更新的处理。这些特点使得 Vite在大型项目中具有显著的优势,能够快速启动和构建,提高开发效率。如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

林恒的博客 1125

Moveit +Gazebo:搭建单臂机械臂仿真平台

Moveit +Gazebo:搭建单臂机械臂仿真平台

magic_invaid的博客 5293

YOLOv8+SAM强强联合:用分割“喂“检测,复杂背景下作物AP从72%干到77.7%,杂草误检降60%

目标与背景高度相似:如农业(作物vs杂草)、工业(零件vs台面)、医学(病灶vs正常组织);遮挡严重的场景:如密集人群(人被遮挡)、森林(树木被枝叶遮挡);小目标密集场景:如无人机航拍(远处小目标易混背景)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 793

vite和webpack

特性vue-cli构建工具ViteWebpack开发速度启动快,HMR 快启动和 HMR 相对较慢配置简洁,基于和.env灵活,基于插件生态Vite 插件系统,适用于多种框架Vue CLI 插件系统,专为 Vue 设计适用场景现代浏览器、小型至中型项目大型项目、多浏览器支持需求项目模板支持多框架模板(Vue、React 等)Vue 专属项目模板总体来说,更适合快速构建现代前端应用,尤其是在开发速度和热更新上体验更佳。而vue-cli。

weixin_44719499的博客 1330

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Vite 5.x 与 Webpack 5.x 架构对比:从 Bundle 到 ESM 的 3 大核心差异

本文深入对比了Vite 5.x与Webpack 5.x在前端构建工具领域的三大核心差异,包括模块处理机制、开发服务器架构和生产构建流水线。通过分析静态依赖分析与动态编译、打包器与原生ESM的较量,以及设计哲学的分野,帮助开发者理解两者的优劣及适用场景,提升开发效率。

weixin_33736048的博客 384

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Bundler,Vite是什么

Vite 并非完全替代 Bundler,而是通过创新开发模式提升体验,生产环境仍依赖 Bundler 的优化能力。两者互补,满足不同阶段的需求。:Webpack(配置灵活但复杂)、Rollup(适合库打包)。:Vue、React、Svelte 等。

Tipriest的博客 459

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

React 构建工具对比与推荐(适用于 React 19)

在React开发中,Webpack、Vite、Rollup和Turbopack是常见的构建工具,各有其适用场景。Webpack功能强大但配置复杂,启动慢,React 19已不推荐使用。Vite基于原生ESModules和Rollup,启动快,热更新体验佳,配置简单,是React 19的推荐选择。Rollup适合构建React组件库,生成体积小、模块化友好的代码,但不推荐用于大型Web应用。Turbopack由Vercel开发,用Rust编写,速度极快,目标是替代Webpack,目前仍处于实验阶段,Next.

weixin_43991457的博客 1372

Vite为什么比Webpack快

本文作者为 360 奇舞团前端开发工程师一.引言Vite和Webpack作为两个主流的前端构建工具,在近年来备受关注。它们的出现使得前端开发变得更加高效和便捷。然而,随着前端项目规模的不断增大和复杂度的提升,构建工具的性能优化也成为了开发者关注的焦点。在性能方面,Vite相比于Webpack表现出了明显的优势,尤其是在本地开发时冷启动速度、HMR性能和构建速度等方面。本文将深入解析Vite为什么比...

奇舞周刊 1812

开发环境下,vite为什么比webpack快

Vite 在开发环境下通过减少不必要的全量编译、高效的语言工具链以及充分利用浏览器特性,有效提升了前端开发者的开发效率和响应速度。而在生产环境打包时,Vite 可以集成 Rollup 或者 Webpack 进行优化打包,以满足生产环境的性能要求。

大剑师兰特的GIS世界 1708

Vite 为什么比 Webpack 快?

前端之所以需要类似于 Webpack 这样的构建工具,是为了提高项目的开发效率,Webpack 通过分析 js 中的 require 语句,分析出当前 js 文件所有的依赖文件,通过递归的方式层层分析后,得到整个项目的依赖关系图,对图中不同的文件执行不同的 loader,比如使用 css-loader 解析 css 代码,最后基于这个依赖关系图读取到整个项目中的所有文件代码,进行打包处理之后交给浏览器执行。这些已经预构建好的依赖,而无需再进行实时的编译或构建,从而提高了应用程序的运行速度和效率。

When you can't win by being better, you can win by being different. 1678

浅谈vite与webpack的区别及Vite为什么那么快

Vite,webpack

qq_873366938的博客 3455

Vite 为什么比 Webpack 快?原理深度分析

Hi,我是布兰妮甜!在现代前端开发中,构建工具性能直接影响开发体验。Webpack 长期主导构建领域,而 Vite 凭借出色的启动和热更新速度迅速崛起。本文将分析 Vite 比 Webpack 快的核心原理,揭示两者架构设计的本质差异。

chaosweet的博客 1575
上一篇: 计算机网络
下一篇: git 基本使用
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值