简单快捷!Yarn的安装与使用指南
Yarn 是由 Facebook (现 Meta) 开发的包管理工具。
今天,我将介绍如何使用 Yarn。
目录
Yarn 的官方网站
关于安装
版本确认
开始一个新项目(创建 package.json 文件)
安装软件包
升级包
运行脚本
执行包的命令
卸载包
总结
Yarn 的官方网站
Yarn的官方网站如下:
Home page | YarnYarn, the modern JavaScript package manager
https://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…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...
