新一代构建工具Vite-xyphf

一、什么vite?

vite:是一款思维比较前卫而且先进的构建工具,他解决了一些webpack解决不了的问题——在开发环境下可以实现按需编译,加快了开发速度。而在生产环境下,它使用Rollup进行打包,提供更好的tree-shaking、代码压缩和性能优化;

vite主要解决了现有工具(如webpack、rollup)在大型项目开发过程中存在的启动慢、热更新慢等问题。vite致力于为现代前端工作流提供一个更快、更轻的解决方案。

vite是Vue团队的官方出品,背靠超级生态,Vue-cli会在下面两个版本中将vite作为预设构建工具;

未来使用vue-cli去构建vue项目的时候你要写的vue.config.js,不再是webpack的配置而是vite的配置;

它主要由两部分组成:

1、一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。

2、一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。

二、vite能做什么?

、分环境构建

我们在开发的时候通常会分开发环境、测试环境、预发布环境、灰度环境、生产环境等,一般不同环境请求API不一样,而且一般要求开发环境代码不压缩,生产环境代码压缩等,可以根据不同的环境来进行不同的构建。

、模块化开发

支持直接从node_modules里引入代码 + 多种模块化支持

、兼容性处理

利用babel实现语法降级,将高版本的ES语法转换成大多数浏览器都支持的低版本ES语法,将TS语法转换成JS语法,将less、scss等css预处理器转化成css;自动添加如webkit等css头等;

、性能优化

如实现构建速度优化、按需加载、代码压缩、动态导入、CDN加速等等;

、优化开发体验

实现前端mock数据、浏览器热更新、本地开发跨域代理等等。

三、vite和webpack的区别?

webpack 4.x介绍

Webpack通过先将整个应用打包,再将打包后代码提供给dev server

Vite直接将源码交给浏览器,实现dev server秒开,浏览器显示页面需要相关模块时,再向dev server发起请求,服务器简单处理后,将该模块返回给浏览器,实现真正意义的按需加载

webpack与vite的区别

Webpack

Vite

基础概念不同

webpack是一个模块打包器,它可以把许多不同类型的模块和资源文件打包为静态资源。它具有高度的可配置性,可以通过插件和loader扩展其功能。

vite由Vue.团队溪开发并维护,是一个基于浏览器原生 ES imports 的开发服务器。它能够提供丰富的功能,如快速冷启动、即时热更新和真正的按需编译等。

编译方式不同

webpack在编译过程中,会将所有模块打包为一个bundle.js文件,然后再运行这个文件。

vite在开发模式下,没有打包的步骤,它利用了浏览器的ES Module Imports特性,只有在真正需要时才编译文件。在生产模式下,vite使用Rollup进行打包,提供更好的tree-shaking,代码压缩和性能优化。

开发效率不同

webpack的热更新是全量更新,即使修改一个小文件,也会重新编译整个应用,这在大型应用中可能会导致编译速度变慢。

vite的热更新是增量更新,只更新修改的文件,所以即使在大型应用中也能保持极快的编译速度。

扩展性不同

webpack有着成熟的插件生态,几乎可以实现任何你想要的功能,扩展性非常强。

vite虽然也支持插件,但相比webpack的生态,还有一些距离。

应用场景不同

webpack由于其丰富的功能和扩展性,适合于大型、复杂的项目。

vite凭借其轻量和速度,更适合于中小型项目和快速原型开发。

优点

相对健全的生态,webpack的loader和plugin已经很成熟

1、vite使用esbuild预构建依赖,esbuild使用go语言编写,并且比以javascript编写的打包器构建依赖快10-100倍。

2、vite采用的是按需动态编译的模式,当浏览器请求需要的模块时,再对模块进行编译,这种处理模式极大的缩短了编译时间,当项目越大,文件越多,vite的开发时优势越明显;

3、vite的热更新比webpack快。vite在HRM方面(HMR是指当你对代码进行修改并保存后,webpack对代码重新打包,并将新的模块发送到浏览器端,浏览器通过替换旧的模块,在不刷新浏览器的前提下,就能够对应用进行更新),当改动了一个模块后,vite仅需让浏览器重新请求该模块即可,不像webpack那样需要把该模块的相关依赖模块全部编译一次,效率更高。

4、由于现代浏览器本身就支持ES Module,会自动向依赖的Module发出请求。vite充分利用了这点,将开发环境下的模块文件,就作为浏览器要执行的文件,而不是像webpack那样进行打包合并。

缺点

热更新效率低下。webpack的热更新需要打包构建,而vite直接响应。

1、生态不及webpack,加载器、插件不够丰富

2、项目的开发浏览器要支持ESmodule, 而且不能识别CommonJS语法

3、实践较少,可能存在好多问题还未暴漏出来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/112592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于tpshop开发多商户源码支持手机端+商家+门店 +分销+淘宝数据导入+APP+可视化编辑

tpshop多商户源码,tpshop商城源码,tpshop b2b2c源码-支持手机端商家门店 分销淘宝数据导入APP可视化编辑 tpshop商城源码算是 thinkphp框架里做的比较早 比较好的源码了,写法简明 友好面向程序猿。 这是一款前几年的版本 虽然后台看着好了些,丝毫不影响…

云安全与容器安全: 探讨在云环境和容器化应用中如何保护数据和工作负载的安全。

在当今数字化时代,云计算和容器化应用已经成为了企业业务的主要组成部分。这两项技术的普及,极大地提高了开发和部署的效率,但也带来了新的安全挑战。在本文中,我们将探讨云安全和容器安全的重要性,以及如何有效地保护…

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消 安装后,我们再打开终端,就会自动出现了(base) 就会出现这样子的,让人头大, 所以我们要解决它 具体原因是 安装了anac…

外网远程登录之 NAT server

案例: 外网远程登录内网SW: 需求 1.内网的PC都可以访问Server1 2.外网的R2可以远程登录SW1, 用户名和密码是:HCIE/hehe 需求 1.内网的PC都可以访问Server1 2.外网的R2可以远程登录SW1, 用户名和密码是:HCI…

Centos下用nodejs实现一个简单的web服务器

WebRTC是音视频直播中最常用的一个框架,在使用的过程中,我们就需要实现一个服务器端。本文以nodejs实现一个服务器为例,讲述一下在centos下如何用nodejs实现一个简单的web服务器。 一、安装nodejs 在linux环境下安装nodejs有多重方式&#x…

C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C奇数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C奇数求和 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 计算非负整数 m 到 n(包括m 和 n &#xff…

CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局

一、概述 操作系统是计算机系统的核心软件,它管理和控制着计算机的硬件和软件资源,为用户和应用程序提供了一个统一、高效、安全的运行环境。操作系统的发展历史也是计算机技术的发展历史的重要组成部分,它见证了计算机从单机到网络&#xf…

2、NLP文本预处理技术:词干提取和词形还原

一、说明 在上一篇文章中,我们解释了文本预处理的重要性,并解释了一些文本预处理技术。在本文中,我们将介绍词干提取和词形还原主题。 词干提取和词形还原是两种文本预处理技术,用于将单词还原为其基本形式或词根形式。这些技术的…

Linux 命令速查

Network ping ping -c 3 -i 0.01 127.0.0.1 # -c 指定次数 # -i 指定时间间隔 日志 一般存放位置: /var/log,包含:系统连接日志 进程统计 错误日志 常见日志文件说明 日志功能access-logweb服务访问日志acct/pacct用户命令btmp记录失…

目标检测 图像处理 计算机视觉 工业视觉

目标检测 图像处理 计算机视觉 工业视觉 工业表盘自动识别(指针型和数值型)智能水尺识别电梯中电动车识别,人数统计缺陷检测(半导体,电子元器件等)没带头盔检测基于dlib的人脸识别抽烟检测和睡岗检测/驾驶疲…

百度 | 文心一言也开始收费了

好久没用文心一言了 之前一直用ChatGPT的 今天打开文心一言一看,好家伙 出了文心大模型4.0,想体验一下来着 可惜是收费的 看下价格,没买 50块钱一个月,对比ChatGPT4来说,确实不算贵 毕竟gpt4一个月20美刀 ,…

C++ 赋值运算重载,const成员,取地址及const取地址操作符重载

C 赋值运算重载,const成员,取地址及const取地址操作符重载 1. 赋值运算符重载1.1 运算符重载1.2 赋值运算符重载1.3 前置/--和后置/--重载 2. const成员3. 取地址及const取地址操作符重载 所属专栏:C“嘎嘎" 系统学习❤️ 🚀…

R语言在生态环境领域中的实践技术应用

R语言作为新兴的统计软件,以开源、自由、免费等特点风靡全球。生态环境领域研究内容广泛,数据常多样而复杂。利用R语言进行多元统计分析,从复杂的现象中发现规律、探索机制正是R的优势。为此,以鱼类、昆虫、水文、地形等多样化的生…

[Machine Learning][Part 7]神经网络的基本组成结构

这里我们将探索神经元/单元和层的内部工作原理。特别是,与之前学习的回归/线性模型和逻辑模型进行比较。最后接介绍tensorflow以及如何利用tensorflow来实现这些模型。 神经网络和大脑的神经元工作原理类似,但是比大脑的工作原理要简单的多。大脑中神经元的工作原理…

LLMs之Agent之AutoGen:AutoGen的简介、安装、使用方法之详细攻略

LLMs之Agent之AutoGen:AutoGen的简介、安装、使用方法之详细攻略 目录 AutoGen的简介、安装、使用方法 1、多Agent对话框架 2、AutoGen的对话流程 3、增强的LLM推理 AutoGen的安装 1、安装 2、快速测试 AutoGen的使用方法 1、基础用法 (1)、启动两个代理之…

进口跨境电商商城源码(海关179接口+支持多平台搭建+提供多终端支持)

海关179接口 进口跨境电商商城源码提供了与海关179接口的集成,实现了便捷的报关操作。海关179接口是跨境电商进口的关键链接,通过该接口可以快速准确地完成商品的报关手续。进口商可以通过商城源码直接与海关进行数据交互,减少了繁琐的人工操…

SpringMVC Day 11 : 零 xml 配置

前言 欢迎来到《Spring MVC Day 11: 零XML配置》!在之前的学习中,我们已经掌握了如何使用Spring MVC框架构建灵活、高效的Web应用程序。然而,我们可能还记得那些繁琐的XML配置文件,它们是我们在过去几天中使用的方式。 好消息是…

虚拟人运营系统介绍丨支持实时互动/直播/短视频创作,赋能元宇宙营销

2023年,以虚拟人为代表的元宇宙营销成为品牌营销黑马。 品牌通过虚拟人IP运营,形成具有一定影响力的品牌效应,围绕“内容持续输出——粉丝沉淀——优质运营——商业变现”的创新模式,打破同质化营销形式,利用虚拟人IP以…

chatgpt生成文本的底层工作原理是什么?

文章目录 🌟 ChatGPT生成文本的底层工作原理🍊 一、数据预处理🍊 二、模型结构🍊 三、模型训练🍊 四、文本生成🍊 总结 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN…

ElasticSearch搜索技术深入与聚合查询实战

ES分词器详解 基本概念 分词器官方称之为文本分析器,顾名思义,是对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 分词发生时…
最新文章