vite --- 搭建开发环境

news2024/9/17 7:08:41

目录

下载安装和初始化VSCode

安装Node.js

yarn 使用

pnpm 安装与使用

搭建第一个Vite项目

使用 PNPM创建项目

项目目录解读


下载安装和初始化VSCode

1、访问网站

Visual Studio Code - Code Editing. Redefined

2、选择平台版本

选择符合自己操作系统的安装包下载完毕,根据安装向导安装。限于篇幅,不再赘述。

3、安装一个VSCode插件

  • Chinese Simplified
  • Live Server

4、安装主题 Monokai

安装Node.js

1、访问网站

Node.js

Node.js 官网默认监测你的电脑操作系统,给出相应版本,建议安装LTS版本。点击按钮下载安装包,根据安装向导安装即可。

yarn 使用

打开Vscode,输入 Ctrl+~, 打开集成终端工具,在命令行里输入命令:

$ npm install yarn -g

全局安装 yarn,这是 facebook 出品的快速、可靠、安全的 Node.js 包管理工具,用来代替 npm。

安装好 yarn后,设置国内源镜像:

$ yarn config set registry https://registry.npm.taobao.org

yarn常用命令

  • 安装yarn命令: npm install -g yarn
  • 查看版本号yarn version
  • 初始化项目yarn init , 根据提示输入项目相关信息即可。
  • 查看全部配置项 yarn config list
  • 显示某配置项yarn config get <key>
  • 删除某配置项yarn config delete <key>
  • 设置配置项yarn config set <key> <value> [-g|--global]
  • 安装包命令:yarn install ,该命令会根据packge.json文件安装依赖包,生成node_modules文件夹。
  • 强制重新下载所有包 yarn install --force
  • 添加包yarn add [package],该命令会自动更新package.json和yarn.lock
  • 删除包yarn remove <packageName> 该命令会自动更新package.json和yarn.lock
  • 发布包yarn publish
  • 查看缓存yarn cache
  • 运行脚本yarn run 该命令执行在 package.json 中 scripts 属性下定义的脚本。
  • yarn build 该命令将源码编译成dist目录下发行文件。

3、安装pnpm

pnpm,目前 GitHub 已经有 star 9.8k,现在已经相对成熟且稳定了。它由 npm/yarn 衍生而来,但却解决了 npm/yarn 内部潜在的 bug,并且极大了地优化了性能,扩展了使用场景。

打开Vscode,输入 Ctrl+~, 打开集成终端工具,在命令行里输入命令:

$ npm install pnpm -g

pnpm 安装与使用

安装

通过npm安装,也可以在官网查看其他安装方式

npm install -g pnpm

通过下述命令查看已安装的pnpm的版本

pnpm -v

使用

  1. 初始化,生成package.json文件
pnpm init
  1. 安装依赖
pnpm install xxx
  1. 运行package.json中定义的scripts脚本,启动服务即可
pnpm run xxx

示例:创建一个vue3项目

通过pnpm create使用vite套件新建一个vue3的项目,直达vue官方链接

# 使用pnpm create 启动套件(vite,只有存在的套件才可以)创建模板项目
pnpm create vite <project-name> -- --template vue
cd <project-name>
pnpm install
pnpm dev

通过上述操作,我们学到了pnpm项目的初始化、安装依赖、启动服务等,可以运行起来,感受一下它和npm运行速度的差异。

常用命令

官网查看更多命令

设置源

  • 查看源:pnpm config get registry

  • 切换源:pnpm config set registry <淘宝源或其他源地址>

初始化

  • 初始化package.json:pnpm init

注意:pnpm init只能一键快速生成package.json文件,如果要一步一步填写每个属性的值生成package.json文件,则需要通过npm init生成,如果要一键快速生成,需要增加-y参数npm init -y来生成。

管理依赖

  • 安装依赖包到 dependenciespnpm add <pkg>

  • 安装依赖包到devDependenciespnpm add -D <pkg>

  • 安装依赖包到optionalDependenciespnpm add -O <pkg>

  • 全局安装依赖包:pnpm add -g xxx

  • 安装项目全部依赖:pnpm install,别名pnpm i

  • 更新依赖包:pnpm update,别名pnpm up

  • 删除依赖包:pnpm remove,别名pnpm rm/uninstall/un

查看依赖

  • 查看本地安装的依赖:pnpm list,别名pnpm ls

  • 查看全局安装的依赖:pnpm list --global,别名pnpm ls --g

  • 检查过期的依赖:pnpm outdated

运行脚本

  • 运行自定义脚本:pnpm run xxx,别名pnpm xxx

  • 运行test测试脚本:pnpm test

  • 启动套件创建项目: pnpm create

  • 运行start启动命令:pnpm start

发布依赖包

  • 发布依赖包:pnpm publish

管理node环境

可实现nvmnnode版本管理工具,安装并切换node.js版本的功能。

  • 本地安装并使用:pnpm env use <node版本号>

  • 全局安装并使用:pnpm env use --global <node版本号>

搭建第一个Vite项目

兼容性注意

Vite 需要 Node.js 版本 >= 12.0.0。

使用 PNPM创建项目

 

$ pnpm create vite

项目目录解读

1.gitignore

git项目忽略传到我们git仓库里的一些配置,这里会有一些缺省的配置

2.package.json

这里出了定义我们最基本的name版本,以及所谓的生产的依赖和开发的依赖,还定义了三个所谓的npm的脚本

生产以来装的vue版本好为3.2.25

在开发以来里面,它去安装了我们vitejs的一个plugin-vue,也就是基于vue的一个插件,然后又装了vite是2.7.2

scripts这里的npm脚本,一个是dev,其事实上就是运行的vite这个命令,当然我们也可以通过build,来去构建一个基于vite的一个项目,我们可以打包我们的项目放到生产环境里,打完包以后呢,我们可以通过preview来去浏览我们打包好的静态资源

那关于这个package.json,大家如果熟悉nodejs的同学,应该不陌生

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

3.pnpm-lock.yaml

如果大家知道npm的lock以及yarn的lock,应该也不陌生,这就是我们的pnpm所依赖的一些关系,这个yaml文件大家不要手动修改他

4.README.md

这个不用说,就是我们当前项目的所谓的帮助文档

5.vite.config.js

这个文件很重要,是我们vite项目的一个最基本的配置文件,刚才我们在package.json里边我们看到,在本地的vite环境里边,已经安装好了Vite以及Vite的Vue插件,那我们就可以通过,从Vite里边解构出defineConfig这样的一个函数,以及Vue这样的一个对象,然后我们就可以暴露一个defineConfig来定义一个配置,里边定义一个对象,定义一个plugins,来去定一个数组,里边可以把我们的插件放进去,这里我们运行了一下vue的这个对象,所以我们这个插件就可以用了

mport { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()]
})

6、index.html与项目根目录

如果你通过webpack去构建vue项目的时候,我们有个vue-cli,你应该知道,我们的index.html不是放在我们项目的根目录下面的,它是放在public这个目录下面的,而现在呢,这个index.html被放在了我们项目的根目录上,这就说明我们vite是基于index.html作为我们的入口文件的。那我们再仔细观察一下index.html这个文件。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

除了我们最简单的一个link加载我们public这个静态资源目录下的这个href的icon图标以外,大家发现在body下面又一个script标签,这个标签呢,它去引入了一个js文件,其实如果按照正常的我们去理解,引用js文件没有问题,但是当我们真正的去查看一下src/main.js,使用了所谓的 es module ,也就是es的模块import语法,这个语法如果直接在浏览器上使用的话呢,会有问题,我们可以做个实验,把index.html里面script的标签的type去掉,作为一个最一般的js的引用,浏览器查看项目,打开控制台console,你会发现这里提示我们有语法错误,我们不能通过import语法来导入我们的模块,这里有一个提示说 outside a module,也就是不要在module的外侧,其事实上就是告诉我们,我们得需要去符合浏览器的这个es模块定义方法,这个呢是属于我们原生js以及浏览器或者是es的一个基本知识,我们可以在script里头加一个 type module,如果这个知识点大家之前不知道,那你就可以把它做作一个新的知识点get到就可以了。也就是说你想要去通过所谓的es6的或者是es其他本本的import这种方式去导入一个模块,那么你得需要在引入这个js文件的时候,或者是引入js入口文件的时候,你得需要加一个type module,当然了也可以在这个script里头写import,去加载一个模块,也是没有问题的。

这是我们所谓的vite去加载模块的一个非常重要的依赖的一个点,保存代码,发现浏览器迅速更新,不知比webpack快了多少倍。

接下来浏览一下vite的这个目录,在src下面,这里有一个main.js ,也就是vue实例化的一个页面,如果你用过vue,或者vue3的 话,对这个语法应该不陌生,这个实例化的所谓的vue,已经载入了一个组件叫App.vue。

src/App.vue这是一个最普通的vue的单文件组件,关于vue单文件组件的知识,可以去vue3官网上看一眼

src/components文件夹下有一个HelloWorld.vue,是一个vue的组件,因为在App.vue里,我们通过import载入过这个组件,但是大家仔细看一下我们scripts标签里的这句话,它使用的也是import的方式去载入的,也就是我们可以放心的去使用es module去完成我们模块的管理了

# App.vue
<script setup>
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
import HelloWorld from './components/HelloWorld.vue'
</script>

src/assets是通过vite去管理的静态资源目录

public目录这个大家应该都了解,这里边我们去创建的一些基本的文件,比方说我们通过一个index-2.html,我们去构建一个html文件,构建一个html模块,放到public里下的文件,我们在浏览器上或者在server里,我们可以直接访问 http://localhost:3000/index-2.html, 放到src里的文件不具备这样的能力

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  test.html
</body>
</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 来指定一个替代的根目录。

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

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

相关文章

接口测试及接口抓包常用的测试工具有哪些?

目录 接口 接口测试的重要性 常用抓包工具 01、F12 02、Fiddler抓包工具 03、Charles抓包工具 04、Firebug抓包工具 05、httpwatch抓包工具 06、Wireshark抓包工具 07、SmartSniff抓包工具 常用接口测试工具 01、Postman 02、Jmeter 03、RESTClient 04、WireMock…

655. 汽车大甩卖2 etiger.vip 答案

题目描述 有n辆车大甩卖&#xff0c;第i辆车售价a[i]元。有m个人带着现金来申请购买&#xff0c;第i个到现场的人带的现金为b[i]元&#xff0c;只能买价格不超过其现金额的车子。你是大卖场总经理&#xff0c;希望将车和买家尽量多地进行一对一配对&#xff0c;请问最多卖出多…

Qt 开发环境搭建

一、Qt下载与安装 1、qt下载网站https://download.qt.io/ 其中各个目录含义如下&#xff1a; 目录说明snapshots/预览版&#xff0c;最新开发测试的Qt库和开发工具online/在线安装源official_releases/正式发布版&#xff0c;是与开发版相对应的稳定版Qt库和开发工具&#x…

利用哨兵简化实现难度

首先先回顾一下链表的插入和删除&#xff0c;如果需要在一个结点p后边插入一个结点&#xff0c;那么只需要下边两行代码&#xff1a; new_node->next p->next; p->next new_node;但是当往链表插入第一个结点时候&#xff0c;上边的代码就不能用了。需要进行下边的处…

【vue2】vue框架学习前置必备基础知识

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;数组 | 字符串中常用方法、对象解构语法、function |箭头函数this指向、展开运算符、原型…

为了会做题而学习期权合约

基本术语 买入期权&#xff1a;按照固定价格购买特定物品的期权。卖出期权&#xff1a;按照固定价格出售特定物品的期权。执行价格&#xff1a;期权合约中约定的固定价格。到期日&#xff1a;在其后期权不再被执行的日期。欧式期权&#xff1a;期权只能在到期日当日被执行。美…

python带你采集热点事件,让你第一时间掌握全发展

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 开发环境: python 3.8: 解释器 pycharm: 代码编辑器 requests: 发送请求 parsel: 解析数据 jieba pandas stylecloud 实现流程: 一. 思路分析 找到数据来源 network 记录网页数据 请求 二…

windows下djaongo项目移植至centos7系统并启动

概述&#xff1a;在windows下开发完成的django项目需要移植至centos系统并启动。 文章目录1,在django项目目录下生成requirements.txt文件2,下载FileZilla安装并连接Linux系统3,本地传输文件至linux系统3.1,可用vim修改settings.py的参数4,安装requirements.txt依赖包5,启动项目…

pwn小白入门 装载 笔记

所看视频奉上&#xff1a;5、装载与汇编_哔哩哔哩_bilibili笔记如下&#xff1a;1.查看文件类型&#xff1a;file 文件名其中&#xff1a;add&#xff1a;文件名ELF&#xff1a;文件格式64-bit&#xff1a;64位LSB&#xff1a;端序 lsb&#xff1a;小端序 msb:大端序x86-64:架构…

sqlserver2012数据库,日志文件损坏修复

背景 服务器突然断电&#xff0c;导致数据库日志文件损坏&#xff0c;数据库无法启动。 本方案也同样适用于不小心删除数据库日志文件的情况。 相关报错 master数据库日志异常&#xff0c;导致数据库无法启动&#xff1a; 无法在数据库“master”(数据库 ID 为 1)的分配单元 …

windows下生成自签证书并配置到chrome

Windows自签证书生成工具&#xff1a;XCA – X Certificate and Key Management 简称&#xff1a;XCA 下载地址&#xff1a; https://github.com/chris2511/xca/releases 或者 http://sourceforge.net/projects/xca/files/latest/download 界面&#xff08;1.4.1版本&#xff0…

从0开始学python -19

Python3 字典 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key2 : value2, key3…

剑指Offer 第23天 数组中出现次数超过一半的数字 数组中数字出现的次数 I 数组中数字出现的次数 II(异或运算)

剑指 Offer 39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 来源&#xff1a;力扣&a…

Python自动化测试实战篇(2)unittest实现批量接口测试,并用HTMLTestRunner输出测试报告

代码已上传Python接口项目实战篇&#xff08;2&#xff09;源码 项目场景&#xff1a; 由于关于接口的测试用例任务越来越多&#xff0c;单纯靠人工手敲的方式输入和校验&#xff0c;速度上已经不能够满足项目的进行速度&#xff0c;而且都是针对登录的框框进行用例测试&…

一站式轻监控轻运维系统nezha(下篇)

本文软件由网友 114514 推荐&#xff1b; 命令行安装 docker安装所需要的文件都能在 https://github.com/naiba/nezha/tree/master/script 找到&#xff0c;config.yaml 和 docker-compose.yml 老苏都做了调整 你可以在 data 目录中新建一个空的 config.yaml 文件&#xff0c;…

基于“Doris”的type2拉链表的Mysql实现

基于“Doris”的type2拉链表的Mysql实现 需求说明 基于Doris实现Type2、拉链表。主要对上游系统里的面积字段进行监控&#xff0c;如果发现变化则跟踪记录到维度表里。 解决方案 type2相关概念见如下链接: SCD缓慢变化维拉链表 这里特别需要注意的是&#xff1a; 1、因为…

scrapy_redis原理分析并实现断点续爬以及分布式爬虫

scrapy_redis原理分析并实现断点续爬以及分布式爬虫 学习目标 了解 scrapy实现去重的原理了解 scrapy中请求入队的条件掌握 scrapy_redis基于url地址的增量式单机爬虫掌握 scrapy_redis分布式爬虫 1. 下载github的demo代码 clone github scrapy-redis源码文件 git clone http…

WPF TotalSummary汇总栏设置鼠标点击事件和显示格式修改

文章目录最开始的提示汇总有两种Summary Panel的设置参考这里Fixed Summary Panel的设置参考这里代码中都用到了DXBinding多个汇总项&#xff0c;对某一项进行控制设置鼠标点击事件整体的xaml代码如下总结最开始的提示 WPF毕竟是微软的东西&#xff0c;且用的人不多&#xff0…

虚函数的复杂(继承)内存布局

文章目录单继承&#xff08;无虚函数覆盖&#xff09;单继承&#xff08;有虚函数覆盖&#xff09;多继承&#xff08;无虚函数覆盖&#xff09;多继承&#xff08;有虚函数覆盖&#xff09;菱形继承&#xff08;有虚函数覆盖&#xff09;菱形虚拟继承&#xff08;有虚函数覆盖…

浅析git

目录 git 的历史 git 的感性认识 git 在Linux下的操作 git三板斧 git 的历史 雷纳斯托瓦兹&#xff0c;想必大家对这个名字并不陌生&#xff0c;他是Linux内核的最早作者&#xff0c;随后发起了这个开源项目&#xff0c;担任Linux内核的首要架构师与项目协调者&#xff0c…