深入了解 Vite:快速、简洁、高效的前端构建工具(上)

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

  • 一、引言
    • 介绍 Vite 的背景和诞生原因
  • 二、Vite 的基本概念和工作原理
    • 解释什么是 Vite
    • 描述 Vite 的主要特点和优势
    • 探讨 Vite 的工作原理和架构
  • 三、Vite 的安装和配置
    • 提供详细的安装步骤和配置指南
    • 介绍 Vite 的开发服务器和构建命令

一、引言

介绍 Vite 的背景和诞生原因

Vite 是一种构建工具,旨在为现代 Web 项目提供更快、更精简的开发体验

它由两个主要部分组成:

  • 一个开发服务器,在原生 ES 模块上提供丰富的功能增强,例如极快的热模块替换(HMR)
  • 将代码与 Rollup 捆绑在一起的构建命令,预配置为输出高度优化的静态资产用于生产

Vite 诞生的背景是:开发者使用 JavaScript 开发工具时,需要较长时间才能启动开发服务器,即使使用 HMR,文件修改后的效果也需要几秒钟才能在浏览器中反映出来,而 Vite 就是为了解决这些问题而诞生的。

二、Vite 的基本概念和工作原理

解释什么是 Vite

Vite 是一个由 Vue.js 作者尤雨溪开发的构建工具,旨在提高开发效率和性能。它采用 ES modules 和原生 ES modules 作为入口,支持多种静态资源类型,如 JavaScript、CSS、HTML 等。Vite 旨在为用户提供一个快速、高效、简洁的构建流程,以提高开发效率和应用程序性能。

描述 Vite 的主要特点和优势

Vite 具有以下特点:

  1. 快速构建:Vite 使用 ES modules 和原生 ES modules 作为入口,减少了构建时间。同时,它使用了优化过的构建器,可以快速地构建和优化应用程序。

  2. 高效:Vite 使用了优化过的构建器,可以减少构建时间和运行时内存占用。它还支持多种静态资源类型,如 JavaScript、CSS、HTML 等,可以减少静态资源的加载时间。

  3. 简洁:Vite 的配置非常简洁,可以轻松地配置和定制。它还提供了一个易于使用的 CLI,可以轻松地创建和管理 Vite 项目。

  4. 社区支持:Vite 拥有庞大的社区支持,有许多开源项目和插件可供使用,可以满足用户的不同需求。

总的来说,Vite 是一个快速、高效、简洁的构建工具,旨在为用户提供一个更好的开发体验,提高开发效率和应用程序性能。

探讨 Vite 的工作原理和架构

Vite 的工作原理和架构可以大致分为以下几个部分:

  1. 入口文件处理器:入口文件处理器负责处理入口文件,将入口文件转换为 ES modules

  2. 构建器:构建器负责对 ES modules 进行构建和优化。

  3. 模块缓存:模块缓存负责将构建好的模块缓存到内存中,以便在应用程序运行时快速加载。

  4. 静态资源处理器:静态资源处理器负责对静态资源进行处理,如 CSS 预处理器、图片处理等。

  5. 页面渲染器:页面渲染器负责根据入口文件生成页面,并将页面渲染到浏览器中。

  6. 动态资源加载器:动态资源加载器负责根据请求的资源类型动态加载。

总的来说,Vite 的工作原理和架构旨在提高开发效率和应用程序性能,通过使用 ES modules、原生 ES modules 和优化过的构建器,实现快速、高效、简洁的构建流程。

三、Vite 的安装和配置

提供详细的安装步骤和配置指南

以下是 Vite 的安装和配置步骤:

  1. 安装 Node.js:Vite 需要 Node.js 的支持,因此首先确保你已经安装了 Node.js。你可以在 Node.js 的官方网站上下载并安装适合你操作系统的版本。

  2. 全局安装 Vite:在终端或命令提示符中运行以下命令来全局安装 Vite:

npm install -g vite
  1. 创建新项目:使用终端或命令提示符进入你希望创建项目的目录,然后运行以下命令来创建一个新的 Vite 项目:
vite create <project-name>

其中,<project-name>是你的项目名称。Vite 将创建一个新的项目目录,并在其中生成基本的项目结构。

  1. 进入项目目录:使用终端或命令提示符进入新创建的项目目录。

  2. 启动开发服务器:在终端或命令提示符中运行以下命令来启动开发服务器:

npm run dev

这将启动一个本地开发服务器,默认监听 http://localhost:3000。你可以在浏览器中访问该地址,查看项目的运行结果。

  1. 配置 Vite:Vite 的配置文件是 vite.config.ts(如果使用 TypeScript)或 vite.config.js(如果使用 JavaScript)。你可以根据需要修改配置文件来定制 Vite 的行为。例如,你可以配置端口号、CSS 预处理器、别名等。

  2. 构建项目:在终端或命令提示符中运行以下命令来构建项目的生产版本:

npm run build

这将生成优化后的静态文件,用于生产环境部署。

以上是 Vite 的安装和配置步骤的基本概述。你可以根据具体项目需求进一步定制和配置 Vite。此外,Vite 还提供了许多其他功能和命令,例如热模块替换(HMR)、预览环境等,可以查阅 Vite 的官方文档以获取更多详细信息。

介绍 Vite 的开发服务器和构建命令

Vite 的开发服务器支持热更新,可以在开发过程中实时查看修改的效果。其构建命令如下:

  • npm run dev:启动开发服务器,默认监听http://localhost:3000。
  • npm run build:构建项目,将项目中的代码进行优化和压缩,并生成用于生产环境的文件。
  • npm run serve:在生产环境中,启动一个本地服务器,以验证项目在生产环境中的表现。

你可以根据实际需求,选择合适的构建命令。如果你想了解更多关于 Vite 的开发服务器和构建命令的信息,可以访问Vite的官方文档。

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

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

相关文章

HackTheBox - Medium - Linux - BroScience

BroScience BroScience 是一款中等难度的 Linux 机器&#xff0c;其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力&#xff0c;攻击者可以深入了解帐户激活码的生成方式&#xff0c;从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后&a…

鸿蒙原生应用/元服务开发-Serverless账户验证码的问题

在应用/元服务早期使用过程中&#xff0c;-Serverless账户验证码的格式是[AGC][应用/元服务名称]&#xff0c;如下图。 但是&#xff0c;在最近&#xff0c;[应用/元服务]名称直接变成了【default】,用户收到这种验证码后&#xff0c;心里存有疑虑的&#xff0c;这是哪里配置…

【Spring】16 ApplicationContextAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架提供了许多回调接口&#xff0c;用于在 Bean 的生命周期中执行特定的操作。ApplicationContextAware 接口是其中之一&#xff0c;它允许 Bean 获取对 A…

Python-1-字符串类型及方法

众所周知&#xff0c;Python面向对象&#xff0c;功能强大 | ू•ૅω•́)ᵎᵎᵎ

常见的并查集题目

总结 并查集逻辑实现的优化有两种&#xff0c;第一种是查找时路径压缩&#xff0c;第二种是按秩合并&#xff0c;合并时将高度较小的树作为较高树的子树,从代码量来看&#xff0c;推荐使用路径压缩&#xff0c;可以参考lc 547. 省份数量的两种UnionFind写法 题目 1 LC990. 等…

气膜篮球馆——智能场馆助力篮球梦想

篮球&#xff0c;作为青少年热爱的运动之一&#xff0c;不仅锻炼身体、塑造良好体态&#xff0c;更为结交朋友提供了丰富机会。如今&#xff0c;随着气膜篮球馆的兴起&#xff0c;这一运动在智能场馆中展现出更为舒适的一面&#xff0c;为篮球梦想的实现提供了强大助力。 随着人…

c语言:用结构体求平均分|练习题

一、题目 用c语言的结构体&#xff0c;求4位学生成绩的平均分 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> float aver();//声明平均分函数 void printScore();//声明打印函数 //设置结构体&#xff0c; struct student { …

【Linux Shell】4. 数组

文章目录 【 1. 数组的定义 】【 2. 读取数组 】【 3. 关联数组 】【 4. 获取数组中的所有元素 】【 5. 获取数组的长度 】 数组中可以存放多个值。 Bash Shell 只支持一维数组&#xff08;不支持多维数组&#xff09;&#xff0c;初始化时不需要定义数组大小。与大部分编程语言…

linux释放交换空间-Swap

确保剩余内存比swap内存空间大&#xff0c;再执行以下操作&#xff0c;否则会宕机&#xff01; 查看swap分区 swapon -s 会查看到你的swap分区位置 停止swap分区 停止swap分区是将swap内存释放到实际内存中 swapoff /dev/dm-1开启swap分区 swap分区内存成功释放到实际内…

年末汇总⭐️ 我是如何从学生切换到职场人身份的

目录 今日天气 阴 温度较低 一、Learning 二、Working 三、Living 章末 今日天气 阴 温度较低 小伙伴们大家好&#xff0c;冬已至 年将末 身为逮虾户的我看到大家的年末总结心中也不由得涌起一股创作热情&#xff0c;奈何没文化&#xff0c;只能按照…

linux中最常用的目录导航命令

文章目录 Linux中最常用的目录导航命令探索未知世界的cd进入刚才的目录快速返回家目录进入某用户的家目录结合CDPATH的妙用!$用shopt –s cdspell自动纠正cd命令的目录名输入错误 最常用的且没有之一的 ls命令格式不加任何参数使用-l显示更多细节使用-t按照时间排序使用-r按照时…

JAVA的引用与C++的指针有什么区别

JAVA的引用与C的指针有什么区别 1. Java值类型与引用类型1.1 变量初始化1.2 变量赋值1.3 函数传参 2. Java数据存储方式2.1 Java局部变量&&Java方法参数2.2 Java数组类型引用和对象2.3 String类型数据 3. Java引用类型3.1 强引用3.2 软引用3.3 弱引用3.4 虚引用 4. JAV…

关于TypeScript Interface你需要知道的10件事

TypeScript接口的10种使用场景——可能只有20%的web开发人员完全掌握它们 TypeScript中的接口是一个非常灵活的概念。除了抽象类的部分行为外&#xff0c;它还经常用于描述“对象的形状”。 必需的属性 在定义接口时&#xff0c;需要使用 interface 关键字: interface Use…

prometheus基本介绍

官网&#xff1a;https://prometheus.io/docs/introduction/overview/ 中文&#xff1a; https://www.prometheus.wang/ Prometheus 选择 Prometheus 并不是偶然&#xff0c;因为&#xff1a; • Prometheus 是按照 《Google SRE 运维之道》的理念构建的&#xff0c;具有实用…

css sourcemap 源代码映射

vue.config.js css: {// Enable CSS source maps.sourceMap: process.env.NODE_ENV ! production, }重新运行&#xff1a;yarn serve 效果&#xff1a;

基于sy3130光感入耳检测功能成功实现

基于sy3130光感入耳检测功能成功实现 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 芯片介绍 2 电路实现 3 寄存器列表

部署清华ChatGLM-6B(Linux版)

引言 前段时间,清华公布了中英双语对话模型 ChatGLM-6B,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。因为条件特殊,实验室网络不通,那么如何进行离线部署呢? 「部署环境」:CUDA Version 11.0,…

41.使用@Autowired注解自动装配的过程是怎样的?

使用@Autowired注解自动装配的过程是怎样的? 记住:@Autowired 通过Bean的后置处理器进行解析的 在创建一个Spring上下文的时候,在构造函数中进行注册AutowiredAnnotationBeanPostProcessor在Bean的创建过程中进行解析在实例化后预解析(解析@Autowired标注的属性、方法 比如…

【MySQL】数据库之MHA高可用

目录 一、MHA 1、什么是MHA 2、MHA 的组成 3、MHA的特点 4、MHA的工作原理 二、有哪些数据库集群高可用方案 三、实操&#xff1a;一主两从部署MHA 1、完成主从复制 步骤一&#xff1a;完成所有MySQL的配置文件修改 步骤二&#xff1a;完成所有MySQL的主从授权&#x…

MySQL检索距离当前最近的7个小时内,靠近每个时间点数据信息

MySQL检索距离当前最近的7个小时内&#xff0c;靠近每个时间点数据信息 如果你想在最近7个小时内找到每个时间点最接近的数据&#xff0c;即使某些时间点没有数据&#xff0c;你可以使用子查询和窗口函数。以下是一个示例查询&#xff1a; sqlCopy codeSELECTt.time_point,CO…