关于 Vite 的浅显学习 - 总览

news2024/11/25 20:38:12

大部分内容来源于vite官网,部分内容来自于 自己测试和总结
Vite 官方中文文档

总览

Vite 是一种新型前端构建工具,能够显著提升前端开发体验。(vue 官网打造的,旧一代是 webpack)
它主要由两部分组成:

  • 一个开发服务器,它基于 原生 ES 模块 提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR)。
  • 一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。

Vite 是一种具有明确建议的工具,具备合理的默认设置。通过插件,Vite 支持与其他框架或工具的集成。

Vite 还提供了强大的拓展性,并提供完整的类型支持。

浏览器支持

默认的构件目标是能支持原生 ESM 语法的 script 标签、原生 ESM 动态导入和 import.meta 的浏览器。传统浏览器可以通过官方插件 @vitejs/plugin-legacy 支持。

在线试用 Vite

你可以通过 StackBlitz 在线试用 vite。它直接在浏览器中运行基于 Vite 的构建,因此它与本地开发几乎无差别,同时无需在你的机器上安装任何东西。你可以浏览 vite.new/{template} 来选择你要使用的框架。

目前支持的模板预设如下:

JavaScriptTypeScript
vanillavanilla-ts
vuevue-ts
reactreact-ts
preactpreact-ts
litlit-ts
sveltesvelte-ts
solidsolid-ts
qwikqwik-ts

搭建第一个 Vite 项目

兼容性注意
Vite 需要 Node.js 版本 14.18+,16+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

使用 NPM:

npm create vite@latest

使用Yarn:

yarn create vite

使用 PNPM:

pnpm create vite

然后按照提示操作即可!

实战操作:
在这里插入图片描述
代表:创建了一个使用 JavaScript 的 Vue 项目,名字叫做 vite-project

cd vite-project
npm install
npm run dev

在这里插入图片描述
运行成功!!!

在这里插入图片描述

你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个 Vite + Vue 项目,运行:

# npm 6.x
npm create vite@latest my-vue-app --template vue

# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue

# yarn
yarn create vite my-vue-app --template vue

# pnpm
pnpm create vite my-vue-app --template vue

查看 create-vite 以获取每个模板的更多细节:vanilla,vanilla-ts, vue, vue-ts,react,react-ts,react-swc,react-swc-ts,preact,preact-ts,lit,lit-ts,svelte,svelte-ts,solid,solid-ts,qwik,qwik-ts。

社区模板

create-vite 是一个快速生成主流框架基础模板的工具。查看 Awesome Vite 仓库的 社区维护模板,里面包含各种工具和不同框架的模板。你可以用如 degit 之类的工具,使用社区模版来搭建项目。

npx degit user/project my-project
cd my-project

npm install
npm run dev

如果该项目使用 main 作为默认分支, 需要在项目名后添加 #main

npx degit user/project#main my-project

`index.html` 与项目根目录

你可能已经注意到,在一个 Vite 项目中,index.html 在项目最外层而不是在 public 文件夹内。这是有意而为之的:在开发期间 Vite 是一个服务器,而 index.html 是该 Vite 项目的入口文件。

Vite 将 index.html 视为源码和模块图的一部分。Vite 解析 <script type="module" src="..."> ,这个标签指向你的 JavaScript 源码。甚至内联引入 JavaScript 的 <script type="module"> 和引用 CSS 的 <link href> 也能利用 Vite 特有的功能被解析。另外,index.html 中的 URL 将被自动转换,因此不再需要 %PUBLIC_URL% 占位符了。

与静态 HTTP 服务器类似,Vite 也有 “根目录” 的概念,即服务文件的位置,在接下来的文档中你将看到它会以 <root> 代称。源码中的绝对 URL 路径将以项目的 “根” 作为基础来解析,因此你可以像在普通的静态文件服务器上一样编写代码(并且功能更强大!)。Vite 还能够处理依赖关系,解析处于根目录外的文件位置,这使得它即使在基于 monorepo 的方案中也十分有用。

Vite 也支持多个 .html 作入口点的 多页面应用模式。

在这里插入图片描述

指定替代根目录

vite 以当前工作目录作为根目录启动开发服务器。你也可以通过 vite serve some/sub/dir 来指定一个替代的根目录。注意 Vite 同时会解析项目根目录下的 配置文件(即 vite.config.js),因此如果根目录被改变了,你需要将配置文件移动到新的根目录下。

命令行界面

在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,或者直接使用 npx vite 运行它。下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:

{
  "scripts": {
    "dev": "vite", // 启动开发服务器,别名:`vite dev``vite serve`
    "build": "vite build", // 为生产环境构建产物
    "preview": "vite preview" // 本地预览生产构建产物
  }
}

可以指定额外的命令行选项,如 --port--https。运行 npx vite --help 获得完整的命令行选项列表。

**使用未发布的功能

如果你迫不及待想要体验最新的功能,可以自行克隆 vite 仓库 到本地机器上然后自行将其链接(将需要 pnpm):

git clone https://github.com/vitejs/vite.git
cd vite
pnpm install
cd packages/vite
pnpm run build
pnpm link --global # 在这一步中可使用你喜欢的包管理器

然后,回到你的 Vite 项目并运行 pnpm link --global vite(或者使用你的其他包管理工具来全局链接 vite)。重新启动开发服务器来体验新功能吧!

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

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

相关文章

ASPICE标准快速掌握「4.2. 过程能力等级与过程属性」

过程能力等级 0 级:不完整的过程 过程未实施、或未能实现其过程目的。在这个等级只有很少或没有系统化实现过程目的的证据。 过程能力等级 1 级:已执行的过程 已执行的过程实现其过程目的。以下过程属性证明这个等级的实现: PA 1.1 过程实施过程属性 <成就> 过程…

【Redis】Redis中的数据结构和内部编码

Redis中的数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型&#xff0c;它们分别是&#xff1a;string&#xff08;字符串&#xff09;、list&#xff08;列表&#xff09;、hash&#xff08;哈希&#xff09;、set&#xff08;集合&#xff09;、zset&#xf…

文件批量改名:大量文件重命名,不再烦恼

在日常生活和工作中&#xff0c;我们常常会遇到大量的文件需要重命名的情况。例如&#xff0c;整理照片、整理网络下载图片、整理音频和视频文件等等。如果一个一个地手动修改文件名&#xff0c;不仅费时费力&#xff0c;而且容易出错。那么&#xff0c;如何快速高效地批量修改…

Shell 解释器,帮你解析一条Shell语句到底是什么意思

使用Linux系统的朋友&#xff0c;几乎每天都在使用Shell命令&#xff0c;比如 # 新建一个.sh脚本&#xff1a; vim 脚本名.sh # 运行一个.sh脚本&#xff1a; ./脚本名.sh ​​​​​​​Shell语句是一种用于与计算机操作系统交互的文本命令。Shell是计算机操作系统的命令行…

如何在逍遥模拟器上加载Magisk模块

本机环境&#xff1a;win7 64位&#xff0c;Python3.8.10&#xff0c;逍遥模拟器版本9.0.6&#xff0c;安卓版本9&#xff08;手机里的设置-系统-关于平板电脑-Android版本&#xff09;。 已经安装了Magsik&#xff0c;现在需要加载一个新模块。 一、电脑上下载需要安装的模块…

15.(开发工具篇vscode)vscode保存操作后,代码发生变化

问题描述&#xff1a;:visible.sync会自动变成v-model:visible 解决方案&#xff1a; 一&#xff1a;打开设置 二&#xff1a;关键字&#xff08;保存&#xff09;&#xff0c;打开settings.json 三&#xff1a;修改配置项source.fixAll.eslint为false

漏洞复现--Juniper Networks Junos OS EX远程命令执行漏洞(CVE-2023-36845)

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

学习记录——StyleGAN2+SA-UNet

SA-UNet for Retinal Vessel improvment using StyleGAN2 作者提出了一种改进视网膜图像分割的方法,通过创建图像及其相应的分割地图来实现。作者的解决方案包括使用DRIVE数据集1对StylGAN2进行训练,并使用目前在分割DRIVE图像方面取得最先进结果的SA-UNet模型对新合成的图像…

软件测试面试常常遇到的6大“套路”!

前言 面试中&#xff0c;如何回答HR提出的问题很大程度上决定了面试能不能成功。 下面是软件测试人员在面试过程中经常被问到的6个问题&#xff0c;告诉你怎么回答才不会被面试官套路.. 01、请你做一个自我介绍 误区&#xff1a; 一般人回答这个问题过于平常&#xff0c;只…

(2021|NIPS,VQ-VAE,精度瓶颈松弛,三明治层归一化,CapLoss)CogView:通过转换器掌握文本到图像的生成

CogView: Mastering Text-to-Image Generation via Transformers 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 0. 摘要 通用领域中的文本到图像生成长期以来一直是一个悬而未决的问题&#…

接口测试及常用接口测试工具

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给你…

c语言动态内存分布

前言&#xff1a; 随着我们深入的学习c语言&#xff0c;之前使用的静态内存分配已经难以满足我们的实际需求。比如前面我们的通讯录功能的实现&#xff0c;如果只是静态内存分配&#xff0c;那么也就意味着程序开始的内存分配大小就是固定的&#xff0c;应该开多大的空间呢&am…

重启Oracle数据库命令列表逐步操作

&#x1f495;欢迎来到 Oracle 数据库重启教程&#x1f495; &#x1f3af;第一步&#xff1a;以 oracle 身份登录数据库&#x1f3af; su - oracle &#xff08;如果是WINdows系统的CMD窗口&#xff09;直接从第二步开始&#xff01; &#x1f3af;第二步&#xff1a;进入…

【MySQL】视图特性

目录 MySQL视图特性 基本使用 准备测试表 创建视图 修改视图影响基表 修改基表影响视图 删除视图 视图规则和限制 MySQL视图特性 视图的概念 视图是一个虚拟表&#xff0c;其内容由查询定义&#xff0c;同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。…

vue,前端打包项目、部署上线

前端项目是在本地的IDE开发的。流程是&#xff1a;开发》打包》上线到生产环境》使用。 vue脚手架只是开发过程中,协助开发的工具,当真正开发完了&#xff0c;脚手架不参与上线。 这时候要用到打包了。 打包后,可以生成,浏览器能够直接运行的网页>就是需要上线的源码! 打…

一个基于人工智能的视频分析和管理工具——Chat Video

Chat Video是一个基于人工智能的视频分析和管理工具&#xff0c;致力于帮助用户高效学习和管理视频。在这个视频泛滥的时代&#xff0c;Chat Video 凭借其独特的AI技术&#xff0c;为用户节省大量时间&#xff0c;真正释放视频的价值。 Chat Video 通过语音识别技术&#xff0…

C语言快捷键+一堆宝藏技巧,全网最全~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

10.8流水灯

.text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R0,0X50000A28 LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1 ORR R1,R1,#(0x1<<4) 第4位设置为1 STR R1,[R0] 写回1.设置GPIOF寄存器的时钟使能 R…

Linux通过QQ邮箱账号使用mailx发送邮件

Linux通过QQ邮箱账号使用mailx发送邮件 第一步&#xff1a;安装mailx 第二步&#xff1a;获取邮箱的授权码 第三步&#xff1a;配置mailx服务 第四步&#xff1a;添加数字证书 第五步&#xff1a;发送邮件测试&#xff01; 第一步&#xff1a;安装mailx # 安装mailx yum…

1688商品详情数据接口,1688商品详情API接口申请指南

1688商品详情通常包括以下几个部分1&#xff1a; 商品主图&#xff1a;商品的展示图片&#xff1b;商品标题&#xff1a;商品的名字&#xff1b;价格&#xff1a;商品的价格&#xff1b;销量&#xff1a;商品的销量&#xff1b;商品描述&#xff1a;对商品功能的介绍&#xff…