独创新颖的网站建设/国外网站排名 top100
Yarn 是由 Facebook (现 Meta) 开发的包管理工具。
今天,我将介绍如何使用 Yarn。
目录
Yarn 的官方网站
关于安装
版本确认
开始一个新项目(创建 package.json 文件)
安装软件包
升级包
运行脚本
执行包的命令
卸载包
总结
Yarn 的官方网站
Yarn的官方网站如下:
Home page | YarnYarn, the modern JavaScript package managerhttps://yarnpkg.com/
关于安装
Yarn官方推荐使用Corepack进行管理。Corepack是一个可以管理pnpm和Yarn等包管理器的工具。
在Node.js版本为v16.10及以上的环境中,Corepack通常已经预装。如果你还没有安装Node.js,可以参考相关安装指南来安装。
如果使用 nodebrew 安装 Node.js,在我的环境中会出现错误,导致无法使用 yarn 命令。
那么,我们可以查看是否可以使用 corepack 命令。请执行以下命令来显示帮助信息。
$ corepack -h
如果显示了命令的用法说明,那么就可以使用 corepack 命令。此外,yarn 无需通过 npm 安装,只需使用 corepack enable
命令启用即可。
接下来,请使用以下命令来启用包管理器(可能需要以管理员权限运行)。
$ sudo corepack enable
如果不以管理员权限运行,可能会出现类似以下的错误,请注意:
$ corepack enable
Internal Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
这样一来,就可以使用 yarn 命令了。
$ yarn -v
4.3.1
版本确认
刚才执行的 yarn -v
是用于检查 Yarn 版本的命令。
可以使用以下命令来确认 Yarn 的版本:
$ yarn --version
4.3.1
上面的命令可以简化为如下形式:
$ yarn -v
4.3.1
开始一个新项目(创建 package.json
文件)
开始一个新项目时,会创建 package.json
文件。package.json
文件描述了项目(即将创建的包)的相关信息。
package.json
文件中包含的信息包括:
- 项目名称(包名)
- 版本
- 项目(包)的描述
- 许可证
- 使用的依赖包
package.json
文件可以通过以下命令创建:
$ yarn init
然后会显示一些问题,您需要输入相应的信息。不过,您也可以在之后随时修改这些信息。如果您不打算公开这个包,也不需要特别在意这些问题,可以直接按下 Enter 键(Return 键)跳过。
另外,您可以使用 -y
选项,这样会默认同意所有问题,相当于每个问题都按了 Enter(Return)。
$ yarn init -y
如果您不打算公开这个包,为了防止意外公开,可以在 package.json
文件中添加 "private": true
。这可以确保包不会被意外发布。
另外,您可以使用 -p
选项,这样可以方便地将 "private": true
添加到 package.json
文件中。
$ yarn init -p
当然,您也可以同时使用 -y
和 -p
选项。这会在默认接受所有问题的同时,将 "private": true
添加到 package.json
文件中,以防止意外发布。
$ yarn init -yp
安装软件包
使用 Yarn 安装包时,可以使用 yarn add
命令。这个命令会将指定的包添加到项目中,并更新 package.json
文件和 yarn.lock
文件。具体使用方法如下:
$ yarn add [包名]
例如,要安装 bootstrap包,可以运行:
$ yarn add bootstrap
这样,Yarn 会下载并安装该包及其依赖项。
要指定安装包的版本,可以在包名后面加上 @
和版本号。例如,如果你想安装特定版本的包,例如 lodash 4.17.21,可以使用以下命令:
$ yarn add 包名@版本
例如,如果想安装 Bootstrap 的版本 5.0.2,可以使用以下命令:
$ yarn add bootstrap@v5.0.2
要安装仅在开发时使用的包,可以使用 --dev
选项。例如,如果您想安装一个开发环境中使用的工具或库,可以运行以下命令:
$ yarn add --dev sass
或者,可以简写为 -D
。这个选项同样用于安装开发时使用的包。
$ yarn add -D sass
如果环境发生变化或需要重新安装依赖,可以使用 package.json
中列出的包来批量安装。这通常在项目迁移到新环境或新的开发人员加入项目时使用。
在 package.json
文件所在的目录中,运行以下命令:
$ yarn install
或者,只需运行 yarn
命令,也可以完成相同的安装效果。这会根据 package.json
文件中的依赖项信息自动安装所有必要的包。Yarn 会检查并下载这些包的适当版本,以确保项目所需的环境正确配置。
$ yarn
升级包
要升级包,可以使用 yarn upgrade
命令。这会升级 package.json
中列出的所有包到符合其指定版本范围的最新版本。
要升级所有的包,可以使用以下命令:
$ yarn upgrade
要将所有包升级到最新版本,可以使用 --latest
选项。命令如下:
$ yarn upgrade --latest
要指定升级的包,可以使用以下命令格式:
$ yarn upgrade 包名
另外,还可以指定要升级的版本。
$ yarn upgrade 包名@版本
例如,如果您想将 Bootstrap 升级到版本 5.2.3,可以使用以下命令:
$ yarn upgrade bootstrap@v5.2.3
这样会将项目中的 Bootstrap 包升级到指定的 5.2.3 版本。
运行脚本
您可以在 package.json
中预先编写脚本,然后执行它们。
首先,将以下内容添加到您的 package.json
:
{"name": "sample_project","version": "1.0.0","main": "index.js","license": "MIT","private": true,"scripts": {"say": "echo hello"},"dependencies": {"bootstrap": "^5.2.3"},"devDependencies": {"sass": "^1.56.1"}
}
要执行脚本,请使用 yarn run
。
$ yarn run say
yarn run v4.3.1
$ echo hello
hello
✨ Done in 0.03s.
省略 run
也会执行相同的操作。
$ yarn say
yarn run v4.3.1
$ echo hello
hello
✨ Done in 0.03s.
执行包的命令
使用 yarn run
也可以执行已安装包的命令。
例如,要显示刚才安装的 Sass 的版本,请使用以下命令:
$ yarn run sass --version
省略 run
也会执行相同的操作。
$ yarn sass --version
另外,通过使用之前介绍的脚本,您可以预先编写 Sass 的命令,使执行变得更加简单。
{"name": "sample_project","version": "1.0.0","main": "index.js","license": "MIT","private": true,"scripts": {"build:sass": "sass --no-source-map src/sass/:dist/css/"},"dependencies": {"bootstrap": "^5.2.3"},"devDependencies": {"sass": "^1.56.1"}
}
可以使用以下命令来执行:
$ yarn run build:sass
或者省略run
$ yarn build:sass
卸载包
可以使用以下命令卸载包。
$ yarn remove 包名
例如,要卸载 Bootstrap,可以使用以下命令:
$ yarn remove bootstrap
总结
Yarn 是由 Facebook (Meta) 开发的,可以替代 npm 的包管理器。
通过安装 Node.js,可以使用 corepack,并通过 corepack 允许使用 Yarn。
Yarn 的使用方法与 npm 非常相似,因此学习时间很短,可以很快上手。
相关文章:

简单快捷!Yarn的安装与使用指南
Yarn 是由 Facebook (现 Meta) 开发的包管理工具。 今天,我将介绍如何使用 Yarn。 目录 Yarn 的官方网站 关于安装 版本确认 开始一个新项目(创建 package.json 文件) 安装软件包 升级包 运行脚本 执行包的命令 卸载包 总结 Yarn 的…...

【Django】前端技术-网页样式表CSS
文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器: 选择一类标签 标签{}类选择器 class: 选择所有class属性一致的表情,跨标签.类名{}ID选择器:全局唯一 #id名{} 2.层次选择器…...

openssl req 详解
一、openssl req 该命令用于创建和处理PKCS#10格式的证书请求(certificate requests CSRs),也可以用来创建自签名证书( self-signed certificates)来当作根证书(root CAs)使用 -new 该选项用来…...

mysql各种锁总结
mysql全局锁 读锁(共享锁) 阻止其他用户更新,但允许他们读取数据。 写锁(排他锁) 阻止其他用户读取和更新数据。 全局锁场景:进行数据库备份 数据库备份 背景:备份数据肯定要保证数据一致…...

SpringSecurity--DelegatingFilterProxy工作流程
什么是 DelegatingFilterProxy? DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器,它起到了桥梁的作用,可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy? 通常情况下&#x…...

GitHub每日最火火火项目(7.27)
1. 项目名称:meta - llama / llama3 项目介绍:这是 Meta Llama 3 的官方 GitHub 站点。目前尚不清楚该项目的具体功能和特点,但从名称推测,可能与 Llama 3 模型相关,或许涉及到模型的开发、训练或应用等方面。 项目地…...

git 学习总结
文章目录 一、 git 基础操作1、工作区2、暂存区3、本地仓库4、远程仓库 二、git 的本质三、分支git 命令总结 作者: baron 一、 git 基础操作 如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库. 1、工作区 存放项目代码的地方,他有两种状态 Unm…...

《如何找到自己想做的事》
Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球,并不是我真的喜欢这项运动,而是我喜欢团队竞技。我喜欢看书,并不是我真喜欢阅读,而是我想要了解世界运行逻辑。寻找热爱,探寻本…...

Vue中el的两种写法
大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法,记录下来与大家分享,希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例,并定义了 Vue 实例的数据对象,在给…...

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)
一、简介 1.1、软件简介 ELK其实是Elasticsearch,Logstash 和 Kibana三个产品的首字母缩写,这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…...

VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法
文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题,这个表示连接被对方重置了,就是说在读取数据时连接被关闭。 我首先怀疑是不是…...

充电桩浪涌保护方案—保障充电设施安全稳定运行的关键
在当今新能源汽车蓬勃发展的时代,充电桩作为电动汽车的“加油站”,其重要性不言而喻。然而,由于其复杂的电气环境和暴露于户外的特点,充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等,对充…...

Python包管理工具pip
1、安装pip cmd管理员模式打开控制台 python -m pip install --upgrade pip 2、添加pip环境变量 pip 路径 C:\Users\1\AppData\Local\Programs\Python\Python312\Scripts...

最全国内13家DNS分享 解决网页被恶意跳转或无法打开问题
腾讯 DNS (DNSPod) 腾讯 DNS 是由 DNSPod 提供的公共免费 DNS 服务。DNSPod 已被腾讯收购,现在属于腾讯公司所有。该 DNS 服务稳定性和连通性良好,经测试在海外也可以使用。 DNSPod 提供了 IPv4、IPv6 DNS 和 DoT/DoH 服务。 IPv4 地址: 119.29.29.29…...

最新站长工具箱源码,拥有几百个功能,安装教程
最新站长工具箱源码,拥有几百个功能,安装教程 在 Docker 上运行 docker run -e LAFREGIONCN -e APPLANGzh_CN --name my-miaoda -v ~/.miaoda-docker:/root/.miaoda -d -p 0.0.0.0:39899:39899 codegentoolbox/laftools-linux-x64:latestNOTE: 默认端…...

【算法/训练】:动态规划(线性DP)
一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…...

计算巨头 Azure、AWS 和 GCP 的比较
云计算领域由三大主要参与者主导:Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。每个平台都为希望利用云提供基础设施、平台服务等的企业提供强大的功能。在本文中,我们将深入探讨这些平台之间的差异,重点关注…...

Thinkphp5跨域问题常见的处理方法
在ThinkPHP5中,处理跨域问题通常涉及配置中间件或直接在控制器中设置响应头。以下是几种常见的解决跨域问题的方法: 1. 使用中间件处理跨域 你可以创建一个中间件来专门处理跨域请求。这个中间件会检查请求的来源,并设置相应的响应头来允许…...

Matlab编程资源库(9)数据插值与曲线拟合
一、一维数据插值 在MATLAB中,实现这些插值的函数是interp1,其调用格式为: Y1interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量…...

matplotlib的科研绘图辅助
matplotlib的科研绘图辅助 趁着暑假,与和鲸科技合作了一个python绘图的教程,作为暑期夏令营的一小部分,主要内容是介绍如何使用matplotlib、pandas、seaborn和plotnine进行医学科研绘图,感兴趣的可以通过如下地址进行访问&#x…...

C++内存管理(候捷)第五讲 笔记
GNU C对allocators的描述 new_allocator 和malloc_allocator,它们都没有特别的动作,无非底部调用operator new和malloc。它们没有用内存池 区别:::operator new是可重载的 智能型的allocator,使用内存池,分一大块然后…...

谷粒商城实战笔记-63-商品服务-API-品牌管理-OSS获取服务端签名
文章目录 一,创建第三方服务模块thrid-party1,创建一个名为gulimall-third-party的模块2,nacos上创建third-party命名空间,用来管理这个服务的所有配置3,配置pom文件4,配置文件5,单元测试6&…...

详细介绍BIO、NIO、IO多路复用(select、poll、epoll)
BIO、NIO、IO多路复用 BIO(Blocking IO)NIO(Non-blocking IO) 同步非阻塞IOIO多路复用selectpollepoll Redis的IO多路复用 BIO(Blocking IO) 最基础的IO模型,当进行IO操作时,线程会被阻塞,直到操作完成。 比如read和write,通常IO…...

昇思25天学习打卡营第11天|xiaoyushao
今天分享ResNet50迁移学习。 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提…...

为什么样本方差(sample variance)的分母是 n-1?
样本均值与样本方差的定义 首先来看一下均值,方差,样本均值与样本方差的定义 总体均值的定义: μ 1 n ∑ i 1 n X i \mu\frac{1}{n}\sum_{i1}^{n} X_i μn1i1∑nXi 也就是将总体中所有的样本值加总除以个数,也可以叫做总…...

编解码器架构
一、定义 0、机器翻译是序列转换模型的一个核心问题, 其输入和输出都是长度可变的序列。 为了处理这种类型的输入和输出, 我们设计一个包含两个主要组件的架构: 第一个组件是一个编码器(encoder): 它接受一…...

追问试面试系列:JVM运行时数据区
hi 欢迎来到追问试面试系列之JVM运行时数据区,在面试中出现频率非常高,并且其中还存在一些误导性的面试,一定要注意。 什么误导性呢?面试中,有的面试官本来是想问JVM运行时数据区,不过提问时难免有些让你觉得很不爽。比如:你说说java内存模型,还比如说说JVM内存模型,…...

React Native在移动端落地实践
在移动互联网产品迅猛发展的今天,技术的不断创新使得企业越来越注重降低成本、提升效率。为了在有限的开发资源下迅速推出高质量、用户体验好的产品,以实现公司发展,业界催生了许多移动端跨平台解决方案。这些方案不仅简化了开发流程…...

《操作系统》(学习笔记)(王道)
一、计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1.1.3 操作系统的目标和功能 1.2 操作系统的发展与分类 1.2.1 手工操作阶段(此阶段无操作系统) 1.2.2 批处理阶段(操作系统开始出现࿰…...

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据
带分隔符的字符串很好处理,只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为: 函数选板->字符串->附加字符串函数->分…...