Vite 为什么这么火?

大家好,我是前端宝哥。

1eb3feaed7844db302b2d474a76205ba.png

最近,Vite 真是火得不行,几乎每天都能看到关于它的讨论。这个工具到底有多厉害?它为什么这么火?

自从 2020 年 4 月发布以来,Vite 的人气一路飙升。在 GitHub 上已经获得了 64k+ 的星标,每周的下载量更是超过了 1200 万次! 现在很多热门的框架,比如 Nuxt, SvelteKit, Astro, SolidStart 还有 Remix 等等,都用 Vite 作为构建工具。

a3e14e821a0ca6abd3353b8c3a7e8585.png
Vite downloads

就连 StackBlitz 这种牛逼的在线开发平台,也从 2021 年起就坚定地支持 Vite,并且他们的核心团队里还包括了 Vite 的核心维护者 patak。StackBlitz 还举办了 ViteConf,专门展示 Vite 生态系统。

如果想了解 Vite 的历史,可以看看 Evan You 在 ViteConf 2022 的主题演讲,讲得非常精彩!

好了,回到正题,Vite 到底是什么?

Vite 是什么?

Vite 在法语里是 “快速” 的意思,它确实做到了!

简单来说,Vite 就是一个现代的 JavaScript 构建工具,它能让你快速构建 Web 应用。它支持常见的 Web 开发模式,并且结合了 Rollup 的灵活性和 esbuild 的速度,让你体验流畅的开发体验。

Vite 是 Vue.js 的创始人 Evan You 创建的,他就是想让构建过程更简单,解决开发人员在启动开发服务器和更新代码时遇到的瓶颈。

Vite 的核心功能

Vite 的开发服务器启动速度简直快到飞起!你可以在 vite.new 上感受一下。这是因为 Vite 采用了一种按需加载的方式,它不会一次性加载所有代码,而是根据浏览器的请求,实时地将代码转化成浏览器可以理解的格式。

Vite 自带了很多实用的功能,例如:

  • 支持 TypeScript、PostCSS、CSS 预处理器、JSON、WASM 等等。

  • 支持各种框架和工具,并且拥有不断增长的插件生态系统。

每次修改代码时,Vite 都会通过模块图,只更新需要更新的部分,这就是我们常说的热重载 (HMR)。 速度快到让你怀疑人生!

Vite 还会预先打包依赖项,使用 esbuild 将依赖项捆绑成一个包,并进行缓存,这样下次启动服务器的速度会更快。

当你准备部署应用时,Vite 会使用 Rollup 来构建你的应用程序。它会自动执行 CSS 代码拆分、添加预加载指令,优化异步块的加载,而且不需要任何配置!

使用 Vite 的优势

Vite 有很多优势,下面是几个我最喜欢的:

  • 开源且独立:  Vite 由一个庞大的开源社区开发和维护,这确保了它能够持续更新,不断改进。

  • 快速本地开发:  每次保存代码后,几乎是瞬间刷新,这对于大型项目来说非常重要。

  • 广泛的生态系统支持:  很多框架和工具都默认使用 Vite,因为它确实很强大!

  • 易于扩展:  Vite 使用 Rollup 的插件 API,可以方便地添加各种功能,例如 vite-plugin-pwa 和 vite-imagetools 等等。

Vite 是框架构建的关键

Vite 已经成为了很多现代框架的基础,例如:

  • Volar:一个帮助我们在编辑器中更方便地开发 Vue、MDX、Astro 等语言项目的工具。

  • Nitro:用于创建全功能 Web 服务器的工具包。

  • UnJS:一系列框架无关的库,包括 Nitro。

开始你的第一个 Vite 项目

想要体验 Vite 的速度和便捷,最简单的方法就是亲自动手试试! StackBlitz 提供了对 Vite 的全面支持,你可以直接在线创建一个项目,并体验它的强大功能!

https://vite.new/vue-ts

使用 Vite 开发

在开发过程中,你可以运行这三个命令:

  • vite dev 启动 Vite 开发服务器

  • vite build 构建生产环境代码

  • vite preview 预览构建好的网站或应用程序

记住,在运行 vite preview 之前,需要先运行 vite build 来构建代码。

Vite 的未来

Evan 在最近的 ViteConf 主题演讲 中,分享了 Vite 的进展,但也提到了项目面临的一些挑战。

目前,Vite 使用 Rollup 来构建生产环境代码,而 Rollup 的速度不如 esbuild 或者 Bun 这些原生打包工具。Vite 尽力减少开发和生产环境的差异,但是由于 Rollup 和 esbuild 的不同,一些差异是无法避免的。

Evan 现在正在领导一个团队开发 Rolldown,一个基于 Rust 的 Rollup 移植版本,目标是用它来替换 Vite 中的 Rollup 和 esbuild。 Rolldown 已经取得了不错的进展,而且现在是开源的,欢迎大家一起参与!

同时,Vite 团队也在不断改进 Vite,例如:

  • 推出了新的 环境 API,这个 API 非常强大,可以帮助开发者在不同环境中使用 Vite 插件,比如 workerd、RSC 等等。

Vite 正在成为 JavaScript 生态系统中不可或缺的一部分,相信未来会越来越强大!

快去试试 https://vite.new ,体验一下 Vite 的魅力吧!


往期推荐

Vue 单页面应用中,不要在 onMount 里添加事件监听器!

38个Vue、Nuxt 和 Vite 技巧、窍门和实践的合集

Vue 如何处理异步组件加载错误

Vue 3 响应式状态揭秘:ref() 函数的魔法

Vue 3 将推出新特性,可以抛弃虚拟DOM了!

Vue 小技巧:何时使用可组合函数

最后,如果你觉得宝哥的分享还算实在,就给我点个赞,关注一波。分享出去,也许你的转发能给别人带来一点启发。

关注我,明天见!

d23cc09167edd12f8ea4023566d34dfd.png

⭐星标前端开发博客,好内容不错过

觉得好看,请关注我,点“在看”0c68fef8a8f3e12f38436fcc1dd93316.gif

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

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

相关文章

VUE之重定向redirect

VUE之路由和重定向redirect 这个小知识点是在学习做项目的时候遇到的一个问题,借鉴了一个他人的项目,是一个酒店管理系统,拿到源码之后导到我的vscode里。 参考链接 导的过程比较顺利,正常安装,加依赖,没有…

PHP调用快递地址解析接口助力项目优化

快递地址智能解析是日常开发中一个重要的工具,可以帮助快递公司提高效率,减少错误,进行数据分析。也可以帮助网购用户快速输入收货地址,提升用户体验。 看完以下操作文档,可以让你在开发中以最快时间完成这个功能&…

一维信号的时频分析(Python)

代码较为简单,很容易读懂。 Importing the required libraries import os import numpy as np import pywt import pandas as pd import pickle as pkl from matplotlib import pyplot as plt Parameters or Required Variables DATA_POINTS_PER_FILE 2560 TIM…

Elasticsearch搜索引擎(初级篇)

1.1 初识ElasticSearch | 《ElasticSearch入门到实战》电子书 (chaosopen.cn) 目录 第一章 入门 1.1 ElasticSearch需求背景 1.2 ElasticSearch 和关系型数据库的对比 1.3 基础概念 文档和字段 索引和映射 第二章 索引操作 2.0 Mapping映射属性 2.1 创建索引 DS…

观测云告警集成 PagerDuty 最佳实践

简介 PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告…

网络安全在2024好入行吗?

前言 024年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建立…

使用winscp 通过中转机器(跳板机、堡垒机)密钥远程连接服务器,保姆级别教程

1.winscp下载地址 winscp下载 2.安装自己选择位置 3.连接服务器 到这里,基本就是没有壁垒机的就可直接连接,传递文件 4.配置中转服务器(壁垒机、跳板机) 选择高级选项 配置utf-8的编码格式 配置中转服务器(壁垒机、跳板机) 设置中专机的密码或者私钥 配置私钥

百问网全志V853开发板烧录开发板系统教程

烧录开发板系统 注意:此方式烧录进的文件系统是ubifs文件系统,如果操作 需要网络文件系统挂载或者使用TF卡,不推荐使用。 准备工作 1.100ASK-V853-Pro开发板 x1 2. 下载全志线刷工具AllwinnertechPhoeniSuit 3. TypeC线 X2、12V电源线X1 4…

【iOS】UI学习(三)

目录 前言步进器和分栏控制器警告对话框和等待提示器UITextField登陆界面案例UIScrollView基础滚动视图的高级功能总结 前言 本篇博客是我在学习UI部分内容的学习笔记,希望对你有所帮助,如有错误,还请指出! 步进器和分栏控制器 …

宁波磁材商会×蓝卓 | 共同打造“稀磁产业平台”,赋能产业数字化转型

日前,蓝卓与宁波市磁性材料商会(以下简称:宁波磁材商会)共同打造的“稀磁产业平台”正式启动,宁波磁材商会秘书长吴玥臻、蓝卓副总经理陈挺等领导出席战略签约仪式。 宁波是全国磁性材料产业创新高地和全球重要磁性材料…

nginx优化与防盗链【☆☆☆】

目录 一、用户层面的优化 1、隐藏版本号 方法一:修改配置文件 方法二:修改源码文件,重新编译安装 2、修改nginx用户与组 3、配置nginx网页缓存时间 4、nginx的日志切割 5、配置nginx实现连接超时 6、更改nginx运行进程数 7、开启网…

Echarts饼图,自定义饼图图例的排列方式, formatter使用语法

🌈🌈​​​​​​​🌈文章目录 一、饼图图例的排列方式 1.引入饼图 2.水平顶部(底部)排列 3.垂直左右排列 二、formatter使用语法 以图例后面拼接占比百分比为例 1.上下左右排列占比百分比 2.两端排列占比百分比 一、饼图图例的排列方…

刚刚苹果发布了「Android18」,还有29999的新机

大伙儿端午好啊,刚刚过去端午节。 苹果就在本周二凌晨 1 点召开了 WWDC2024 大会开幕。 果子最近很活跃啊,看来是被上半年的财报深深刺痛了。 此次大会没有硬件,基本都是涵盖各个产品未来的系统更新,果粉们期待的 iOS18、Mac OS…

交流负载箱的使用场景和应用范围是什么?

交流负载箱模拟实际用电设备运行状态的电力测试设备,主要用于对各种电气设备、电源系统、发电机组等进行性能测试、质量检验和安全评估。交流负载箱的使用场景和应用范围非常广泛,涵盖了电力、通信、能源、交通等多个领域。 1. 电力行业:在电…

Linux 中 “ 磁盘、进程和内存 ” 的管理

在linux虚拟机中也有磁盘、进程、内存的存在。第一步了解一下磁盘 一、磁盘管理 (1.1)磁盘了解 track( 磁道 ) :就是磁盘上的同心圆,从外向里,依次排序1号,2号磁盘........等等。…

中国首家!全球第二!沃飞长空AE200取得关键技术突破

近日,沃飞长空全自研战略产品AE200电动垂直起降航空器(eVTOL)验证机顺利完成全尺寸、全重量、全包线倾转过渡飞行,成为中国首个、全球第二完成该类试验科目的eVTOL企业,标志着中国eVTOL发展实现历史性突破,…

【JavaScript】简单数据类型 与 复杂数据类型 ② ( 简单数据类型参数传递 | 复杂数据类型参数传递 )

文章目录 一、简单数据类型参数传递1、值传递2、代码示例 二、复杂数据类型参数传递1、引用传递2、代码示例 一、简单数据类型参数传递 1、值传递 简单数据类型 的 参数传递时 , 将 该类型的比变量 或 值 作为 实参 传递给 函数形参 时 , 其本质是 将 栈内存 中存储的 数据值 …

meilisearch的索引(index)的最佳实践

官网的第一手资料学新技术:meilisearch官方文档 安装的官网地址:meilisearch安装的官网 部署在生产环境的指导:meilisearch部署在生产环境的指导 Elasticsearch 做为老牌搜索引擎,功能基本满足,但复杂,重…

基于springboot实现问卷调查系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现问卷调查系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,问卷信息因为其管理内容繁杂,管理数…

【数据结构】第十五弹---C语言实现直接插入排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、排序的概念及其运用 1.1、排序的概念与分类 1.2、排序运用 1.3、常见的排序算法 1.4、常见的排序算法性能测试 2、常见排序算法的实现 2…