一文详解新一代高效前端构建工具VITE-达观数据

news2024/11/24 9:18:51

Vite 是一个快速、简单且高效的前端构建工具,它的出现为前端开发者带来了新的构建体验。在本文中,我们将探讨 Vite 的技术原理、优点和使用方法。

Vite 的技术原理

Vite 的核心技术是基于 ES Modules 和浏览器原生模块系统的构建工具。Vite 的构建过程是基于 ES Modules 实现的,这是一种浏览器原生支持的模块系统,它能够在运行时动态加载依赖,从而避免了传统构建工具的静态打包和编译。Vite 的构建过程分两步:首先它会启动一个本地服务器,监听文件变化并动态编译和打包代码,然后将代码通过浏览器原生的 ES Modules 加载到浏览器中。由于浏览器原生支持 ES Modules,因此可以在浏览器中直接运行未打包的代码,从而提高了开发效率和构建速度。

Vite 的优点

01快速的开发体验

Vite 的构建速度非常快,由于采用了浏览器原生的模块化系统,因此可以避免传统构建工具的静态打包和编译,从而提高了开发效率和构建速度。同时,Vite 还支持 Hot Module Replacement(HMR)和快速刷新等功能,可以实时更新代码和预览修改效果,让开发者专注于开发过程中的实际需求。

02简单易用的配置

Vite 的配置非常简单易用,通常只需要一个配置文件即可完成项目的构建和部署。Vite 的配置文件是一个 JavaScript 模块,允许开发者自定义构建和部署的方式,同时也提供了一些默认配置选项,如端口号、代理、压缩等。

03支持多种前端框架和语言

Vite 不仅支持常见的前端框架如 Vue、React 和 Angular 等,还支持多种前端语言,如 TypeScript、CoffeeScript 和 Sass 等。这使得开发者可以更加灵活地选择自己熟悉的技术栈,并且能够快速地集成各种框架和语言,提高了开发效率和代码质量

相比传统构建工具的优势

相比传统构建工具,Vite有以下优势:

01构建速度快

Vite使用类似浏览器工作方式的模块机制,大大加速了构建速度。首次打开页面需要的时间比Webpack和Rollup少80%~95%。

02构建结果小

Vite 只会编译你改动的模块,最终打包结果比 Webpack 和 Rollup 小几十倍。

03开发调试快

多亏快速构建速度,Vite支持实时增量重新编译。你只需保存修改文件,浏览器就会实时刷新。

04配置少

Vite基于 ES modules,支持大部分现代浏览器原生支持的JS特性,无需做太多配置就能工作。

05易于集成

Vite能很容易地支持Vue、React、Preact等主流前端框架,并提供原生SSR功能。

06互联网企业百强榜单

Vite已经发展成一个覆盖大部分需求的完整解决方案,拥有庞大且活跃的社区用户。所以,如果你想拥有一个开箱即用、配置少、生产力高的前端工作环境,Vite绝对是一个不错的选择。

Vite 的使用方法

01安装 Vite

可以通过npm或者yarn安装Vite:

02创建项目

使用 Vite 创建一个新项目:

这将会创建一个新的 Vue3 项目,包含了一些默认的配置和依赖项。

03启动开发服务器

进入项目目录并启动开发服务器:

这将会启动一个本地服务器,并自动打开浏览器进入开发模式。

04构建项目

使用 Vite 构建项目:

这将会构建项目并生成静态文件,可以直接部署到生产环境中。

05Vite 配置

Vite 提供了一个名为 vite.config.js 的配置文件,用于自定义 Vite 的行为。以下是一个简单的配置示例:

在此配置文件中,我们导入了 @vitejs/plugin-vue 插件,用于支持 Vue.js。此外,我们还配置了别名、构建输出目录、资源目录、源映射和开发服务器的选项。要了解更多关于 Vite 配置的信息,请参考官方文档:https://vitejs.dev/config/。

05Vite 插件

Vite 支持 Rollup 插件,可以借助插件实现诸如 CSS 预处理、图片优化等功能。以下是一些常用的 Vite 插件:

  • @vitejs/plugin-vue:Vue.js 支持插件

  • @vitejs/plugin-react-refresh:React 支持插件,提供 Fast Refresh 功能

  • vite-plugin-svelte:Svelte 支持插件

  • vite-plugin-windicss:用于支持 Windi CSS 的插件

  • vite-plugin-svg-icons:用于按需引入 SVG 图标的插件

要使用 Vite 插件,只需将插件导入配置文件并添加到 plugins 数组中即可。例如,使用 Vue.js 插件:

   总结    

Vite 是一个快速、简单且高效的前端构建工具,它的出现为前端开发者带来了新的构建体验。Vite 基于 ES Modules 和浏览器原生模块系统实现,避免了传统构建工具的静态打包和编译,从而提高了开发效率和构建速度。同时,Vite 的配置简单易用,支持多种前端框架和语言,具有很高的灵活性和扩展性。在实际开发中,Vite 可以帮助开发者快速搭建项目、提高开发效率、优化代码质量和提升用户体验。不仅如此,Vite 还提供了丰富的插件和工具来拓展其功能,如 PWA、自动化测试、代码分析等,使得开发者能够更加轻松地构建高质量的 Web 应用程序。总之,Vite 是一个非常优秀的前端构建工具,它的技术原理和优点让它成为了当前前端开发领域中备受关注和推崇的工具之一。如果你还没有尝试过 Vite,不妨给它一个机会,相信它一定会让你的开发体验更加愉悦和高效!

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

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

相关文章

多态的基本使用

这部分的内容主要是记住使用方法,原理在之后会讲。 多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 比如说买票,普通人买票就是正常买&…

WTM框架页面被其他网站引用免登录

用ASP.NET CORE开发通常都会有这样一个需求,自己框架开发的页面,要被其他网站嵌套引用,但其他网站通过链接到自己的开发页面的时候,通常会有一个登录页面,有的时候网站无缝集成的时候,这就会要求跳过这个WT…

前端实现 DIV 高度只有100px,宽度只有100px ,我要在这个DIV放一个宽度200的DIV,左右拉动滚动条显示

<!DOCTYPE html> <html> <head><title>点击监听两组span标签</title><style>.outer-div {width: 100px;height: 100px;overflow-x: scroll;background-color: #abc1ee;}.inner-div {width: 200px;}/* 自定义滚动条样式 */.outer-div::-web…

Java 的集合

一、Collection 1、ArrayList 底层采用数组实现&#xff0c;操作大多基于对数组的操作。 在添加和删除时需要做 System.arraycopy(native层方法) 拷贝工作。 添加元素时可能会扩容&#xff0c;这要大量的拷贝工作&#xff0c;删除元素时&#xff0c;会把后面的元素向前拷贝。…

剑指oferr68-II.二叉树的最近公共祖先

为什么这道题的难度是easy&#xff0c;我感觉挺难的啊&#xff0c;我想了挺久没有一点思路就直接看题解了。题解有两种解法&#xff0c;先看第一种存储父节点 class Solution {Map<Integer,TreeNode> parent new HashMap<Integer,TreeNode>();Set<Integer>…

ffmpeg2段视频合成一段

查看分辨率 帧率和编码器 ffprobe -v error -select_streams v:0 -show_entries streamcodec_name,width,height,avg_frame_rate -of defaultnoprint_wrappers1 rs2.mp4得到&#xff0c;编码器&#xff0c;分辨率&#xff0c;还有帧率 codec_nameh264 width1920 height1080 avg…

小白到运维工程师自学之路 第五十二集 (三剑客之awk)

一、概述 awk命令是一种在Unix或类Unix系统上使用的文本处理工具。它以行为单位读取输入文件&#xff0c;按照预定义规则对每一行进行处理并生成输出。 通过使用一种简单的编程语言&#xff0c;awk提供了对文本数据进行过滤、处理和转换的强大能力。它可以轻松地提取文本中的…

实验四 交换机 VLAN 配置

文章目录 实验目的实验原理实验内容实验总结 实验目的 理解 VLAN 的概念、原理&#xff1b;掌握基于交换机端口的 VLAN 划分方法&#xff1b;掌握 Cisco2950 交换机的单交换机和跨交换机 VLAN 配置方法。 实验原理 &#xff08;1&#xff09;VLAN 的概念 VLAN&#xff08;Vi…

CQ 社区版 2.2.0 发布 | 配置要求降为 4 核 16G!!!

&#x1f389;&#x1f389;&#x1f389; 喜大普奔&#xff01;&#xff01;&#xff01; 经过我们研发团队的不断努力&#xff0c;CloudQuery 终于「瘦身」成功啦&#xff01;&#xff01;&#xff01; 本次发布的 v2.2.0 版本&#xff0c;推荐配置降为&#xff1a; CPU&a…

【iOS内存管理-内存的几大区域】

前言 iOS内存管理的第一篇章&#xff0c;了解iOS内存的五大分区。 总览 iOS中&#xff0c;内存主要分为五大区域&#xff1a;栈区&#xff0c;堆区&#xff0c;全局区/静态区&#xff0c;常量区和代码区。总览图如下。 如上图所示&#xff0c;代码区是在低地址段存放&#x…

关于AWS MSK Connector Execution Role的解释

尽管在创建AWS MSK Connector时&#xff0c;Execution Role是一个必填项&#xff0c;就像下面这样&#xff1a; 并且在官方文档中给出的Execution Role样例&#xff1a; https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html 中也…

基于JSP+Servlet的学生信息管理系统

用户类型&#xff1a;三角色&#xff08;学生、教师、管理员&#xff09; 项目架构&#xff1a;B/S架构 设计思想&#xff1a;MVC 开发语言&#xff1a;Java语言 前端技术&#xff1a;Layui、HTML、CSS、JS、JQuery、Ajax等技术 后端技术&#xff1a;JSP、Servlet、JDBC、…

基于JSP+Servlet的医药药品管理系统

用户类型&#xff1a;双角色角色&#xff08;患者、管理员[医生]&#xff09; 设计模式&#xff1a;MVC&#xff08;jspservletjavabean) 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 主要技术&#xff1a;jsp、servlet、jdbc、jsp、html5、jquery、css、js…

【哈希表/字符串-简单】LeetCode 205 同构字符串 Java

需要判断s和t每个位置上的字符是否都一一对应&#xff0c;即s的任意一个字符被t中唯一的字符对应&#xff0c;同时t的任意一个字符被s中唯一的字符对应。这也被称为【双射】的关系。 以示例二为例&#xff0c;t中的字符a和r虽然有唯一的映射o&#xff0c;但对于s中的字符o来说…

Vim批量注释与反注释

在使用vim编写代码的时候&#xff0c;经常需要用到批量注释与反注释一段代码。下面简要介绍其操作。本文记录在mac/linux下的vim批量注释。 一开始我想让vim配置ctrl/快捷键&#xff0c;快速批量注释&#xff0c;但是vim的文档中不支持这样的快捷键。 如果实在要弄也能弄&…

集群基础2——LVS负载均衡httpd服务(nat模式)

文章目录 一、环境说明一、配置调度器网卡二、配置后端服务器三、配置调度器四、验证五、设置https负载均衡 一、环境说明 使用lvs中的nat模型&#xff0c;对http负载均衡集群。 主机IP角色安装服务真实IP&#xff1a;192.168.161.129VIP&#xff1a;192.168.161.130调度服务器…

深信服 网络工程师面试题(二)

指针函数和函数指针的区别 指针函数是指带指针的函数&#xff0c;即本质是一个函数&#xff0c;函数返回类型是某一类型的指针。 首先它是一个函数&#xff0c;只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受&#xff0c;也就是说&#xff0c;指…

牛客HJ99 - 自守数【暴力 + 换位取模】

原题传送门 原题描述 首先我们来看一下原题是怎么描述的&#xff0c;题面很简单&#xff0c;输入n&#xff0c;然后让我们去统计从1 ~ n之间的自守数有几个&#xff0c;那什么是【自守数】呢&#xff0c;上面也说到了&#xff0c;即一个数在平方之后该数的尾数等于该数自身的自…

榜单!高精定位模块/系统「争夺战」,份额Top5供应商都有谁

以当前国内车企落地高速NOA采用的主流方案为例&#xff0c;普遍采用了「高精定位高精地图车端传感器」的多源融合定位策略。其中&#xff0c;在高精定位部分&#xff0c;大部分采用GNSSIMURTK的方案。 从目前的智驾系统演进来看&#xff0c;主流的仍是在L2基础上&#xff0c;通…

k8s 基础命令和常用命令等

通过kubectl命令可以操作和管理K8S资源&#xff0c;对于初学者可以在掌握K8S基础命令的基础上再去学习K8s的原理和架构&#xff0c;那么K8S常用的命令有哪些呢&#xff1f; 01 K8S命令概述 在学习K8s基础命令前&#xff0c;了解和学习docker命令是很有必要的&#xff0c;kub…