Vite 下一代的前端工具链,前端开发与构建工具

一、Vite 简介

官方中文网站:Vite | 下一代的前端工具链

官方定义:

Vite,下一代的前端工具链,为开发提供极速响应。

Vue3.4版本,Vue新版本使用Vite构建、开发、调试、编译。

Vite的优势

极速的服务启动
使用原生 ESM 文件,无需打包!
轻量快速的热重载
无论应用程序大小如何,都始终极快的模块热替换(HMR)
丰富的功能
对 TypeScript、JSX、CSS 等支持开箱即用。
优化的构建
可选 “多页应用” 或 “库” 模式的预配置 Rollup 构建
通用的插件
在开发和构建之间共享 Rollup-superset 插件接口。
完全类型化的API
灵活的 API 和完整的 TypeScript 类型。

二、前端程序员定义

Vite是一种新型的前端构建工具,它能显著改善前端开发体验。


Vite由两个主要部分组成:

dev server:利用浏览器的ESM能力来提供源文件,具有丰富的内置功能并具有高效的HMR
生产构建:生产环境利用Rollup来构建代码,提供指令用来优化构建过程

Vite作为一个基于浏览器原生ESM的构建工具,它省略了开发环境的打包过程,利用浏览器去解析imports,在服务端按需编译返回。同时,在开发环境拥有速度快到惊人的模块热更新,且热更新的速度不会随着模块增多而变慢。因此,使用Vite进行开发,至少会比Webpack快10倍左右。
 

三、Vite的主要特性
Instant Server Start —— 即时服务启动
Lightning Fast HMR —— 闪电般快速的热更新
Rich Features —— 丰富的功能
Optimized Build —— 经过优化的构建
Universal Plugin Interface —— 通用的Plugin接口
Fully Typed APIs —— 类型齐全的API

四、为什么要使用Vite

开发环境⚡️速度的提升

我们详细对比了开发环境中的Vite和Webpack,发现主要有如下不同:

WebpackVite
先打包生成bundle,再启动开发服务器先启动开发服务器,利用新一代浏览器的ESM能力,无需打包,直接请求所需模块并实时编译
HMR时需要把改动模块及相关依赖全部编译HMR时只需让浏览器重新请求该模块,同时利用浏览器的缓存(源码模块协商缓存,依赖模块强缓存)来优化请求
内存高效利用-

因此,针对开发环境中的启动慢问题,Vite开发环境冷启动无需打包,无需分析模块之间的依赖,同时也无需在启动开发服务器前进行编译,启动时还会使用esbuild来进行预构建。而Webpack 启动后会做一堆事情,经历一条很长的编译打包链条,从入口开始需要逐步经历语法解析、依赖收集、代码转译、打包合并、代码优化,最终将高版本的、离散的源码编译打包成低版本、高兼容性的产物代码,这可满满都是 CPU、IO 操作啊,在 Node 运行时下性能必然是有问题。

更多:

Vue3富文本组件UEditor ,vue-ueditor-wrap@3.x

基于Vue的移动端UI框架整理

Vue2报错opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024PMP考试新考纲-近年PMP真题练一练和很详细解析(3)

今天华研荟继续为您分享和解析PMP真题,一方面让大家感受实际的PMP考试和出题形式,另一方面是通过较详细的解题思路和知识讲解帮助大家最后一个多月有效备考,一次性3A通过2024年PMP考试。 2024年PMP考试新考纲-近年真题随机练一练 (注&#x…

企业邮箱是什么?企业邮箱百科

本文将为大家讲解:1、企业邮箱的定义;2、企业邮箱的主要功能特点;3、企业邮箱如何选择和部署;4、企业邮箱的运营与维护;5、企业邮箱在实际工作中的应用与挑战;6、2024年最新五大企业邮箱盘点   下面提到的…

Redis——面试+思想+应用

文章目录 简介Redis基本介绍:性能:持久性和复制:补充——重点:Redis额外支持的操作: 使用场景:与Java的集成:Redis集群Redis Sentinel优点:缺点:适用场景: Re…

qt在pro文件中设置utf-8编码

在 Qt 的 .pro 文件中设置使用 UTF-8 编码,可以通过在 .pro 文件中添加以下内容来实现: QMAKE_CXXFLAGS -source-charset UTF-8 QMAKE_CXXFLAGS -execution-charset UTF-8这样设置后,Qt 会将源代码和执行时的字符集都设置为 UTF-8 编码。这…

Redis缓存高可用集群

Redis集群方案 哨兵集群 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各…

大语言模型训练数据集(1)

CLUECorpusSmall CLUECorpusSmall包含新闻、社区互动、维基百科、评论语料。原始数据和细节描述在这里 语料 链接 CLUECorpusSmall---- https://share.weiyun.com/sC6PMhxx CLUECorpusSmall (BERT格式)---- https://share.weiyun.com/9SPPGUOK News Commentary v13 (ZH-EN) Ne…

sql非查询知识点(增删改-crud没有r)

1.建库 create database database_name 2.使用该数据库 use database_name 3.建表 3.1普通建表 create table if not exists actor(actor_id smallint(5) not null primary key comment "主键id",first_name varchar(45) not null comment "名字",last…

双非本科准备秋招(18.1)—— 力扣二叉树

1、404. 左叶子之和 方法一: 可以在父节点判断一下,如果左子树不为null,并且左子树没有左右子树,说明这是个左叶子节点。 class Solution {public int sumOfLeftLeaves(TreeNode root) {if(root null) return 0;int LV sumOfL…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Rating组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Rating组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Rating组件 提供在给定范围内选择评分的组件。 子组件 无。 接口 Rating(opt…

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

我在namesilo买的域名,coludflare做的解析,华为云的SSL,用宝塔部署的SSL,访问https报错,http却正常: 报错:此网站无法提供安全连接www.hongkong.ioyunxin.top 使用了不受支持的协议。 ERR_SSL_…

Cocos creator 3.x 刚体组件碰撞无效

Cocos creator 3.x 刚体组件碰撞无效 问题描述:只有一个circleCollider2D时,可以在碰撞时正确输出结果,但是当我在外围加了一个circle之后,期望character进入圆圈范围时就触发方法,此时原代码失效 import { _decorat…

gcore服务器设置root账号密码登录

这个厂商很奇怪,默认只能用centos用户与公钥登录,但是这样有时候很麻烦。 他默认开启了SELinux,和强制ssh密钥登录。 下面所有操作在root模式下进行 SELinux设置为兼容模式 setenforce 0vi /etc/selinux/config然后将文件中的SELINUXenfo…

k8s-configMap

概念 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap 将环境配置信息和容器镜像解耦,便于应用配置的修改,官网建议保存的数据…

Vue+Koa项目完整上线流程中遇到的问题

程序员有时候 “提笔忘字”, 以下是此次过程中遇到的问题流水账, 按顺序记录的, 不再细分什么前端后端了. 有些问题可能过于简单, 勿喷! 1, Koa 的 get, post 请求怎么获取参数 get 类请求: 直接使用 ctx.query 来获取前端传递来的参数 post 类请求: 需要使用到 koa-bodypar…

阿里云服务器centos_7_9_x64位,3台,搭建k8s集群

目录 1.环境信息 2.搭建过程 2.1 安装Docker源 2.2 安装Docker 2.3 安装kubeadm,kubelet和kubectl 2.4 部署Kubernetes Master(node1) 2.5 安装Pod网络插件(CNI) 2.6 加入Kubernetes Node 2.7 测试kubernetes集群 3.部署 Dashboard…

pytorch tensor维度变换

目录 1. view/reshape2. squeeze/unsqueeze3. expand 扩展4. repeat5 .t转置6. transpose7. permute 1. view/reshape view(*shape) → Tensor 作用:类似于reshape,将tensor转换为指定的shape,原始的data不改变。返回的tensor与原始的tensor…

【Linux系统学习】1.初识Linux

初识Linux 操作系统概述 初识Linux 虚拟机介绍 VMware WorkStation安装 1.操作系统概述 了解操作系统的作用 了解常见的操作系统 1.1 硬件和软件 计算机由哪两个主要部分组成? 硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的…

小红的字符串中值

题目描述: 小红定义一个长度为奇数的字符串的“中值”为中间那个字符。例如"kou"的中值是o。 现在小红拿到了一个字符串,她想知道某个字符是多少个子串的中值。你能帮帮她吗? 输入描述: 输出描述: 一个整数,代表中值为chr的连续子串…

2024/02/06

画出TCP三次握手和四次挥手的示意图 三次握手 四次挥手 并且总结TCP和UDP的区别 TCP: TCP提供面向连接的,可靠的数据传输服务传输过程中,数据无误、数据无丢失、数据无失序、数据无重复 TCP会给每个数据包编上编号,该编号称之为序列号每个序…

DDoS攻击激增,分享高效可靠的DDoS防御方案

当下DDoS攻击规模不断突破上限,形成了 "网络威胁格局中令人不安的趋势"。专业数据显示,对比2022年上半年与2023年上半年,所有行业的DDoS攻击频率增加了314%。其中零售、电信和媒体公司遭受的攻击规模最大,三个垂直行业的…