简单快捷!Yarn的安装与使用指南

Yarn 是由 Facebook (现 Meta) 开发的包管理工具。

今天,我将介绍如何使用 Yarn。

目录

Yarn 的官方网站

 关于安装

版本确认

开始一个新项目(创建 package.json 文件)

安装软件包

升级包

运行脚本

执行包的命令

卸载包

 总结


Yarn 的官方网站

Yarn的官方网站如下:

Home page | YarnYarn, the modern JavaScript package managericon-default.png?t=N7T8https://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 非常相似,因此学习时间很短,可以很快上手。

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

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

相关文章

低代码平台在采购管理中的革新与应用

引言 随着企业数字化转型的不断推进,传统的企业软件开发模式面临着诸多挑战。开发周期长、成本高、需求变更频繁等问题使得企业在快速变化的市场中难以保持敏捷性。低代码平台作为一种新的开发模式,凭借其“低代码”甚至“零代码”的特性,极大…

钉钉小程序如何通过setdate重置对象

在钉钉小程序中,通过setData方法来重置对象(即更新对象中的数据)是一个常见的操作。然而,需要注意的是,钉钉小程序(或任何小程序平台)的setData方法在处理对象更新时有一些特定的规则和最佳实践…

APT 安装软件详细教程

文章目录 APT 安装软件详细教程APT 概述APT 的基本命令APT 命令详解安装软件包更新和升级软件包删除软件包搜索和查找软件包管理软件包依赖清理软件包缓存APT 配置软件源配置自定义软件源常见问题及解决方案解决软件包依赖问题处理软件源错误其他常见问题使用 APT 的最佳实践总…

词的向量化和文本向量化

词的向量化和文本向量化 向量化one-hot编码提前准备词表不提前准备词表one-hot缺点 词向量简介词向量的定义和目标word embedding和word vector的区别onehot编码与词向量关系构建 训练方式1(基于语言模型)训练方式2(基于窗口)CBOW…

Pthread条件变量同步

前面说到用互斥量做同步结果不怎么理想。因为OS系统对线程调度随机的。自己实现的resume/yield 原语不是原子的。操作系统可以扣住原语中的一部分语句搁置起来。这可以导致实际运行中,两个原语对sched互斥量的上锁、解锁,以逆序的方式出现。这时&#xf…

选择排序思路和算法实现

选择排序 在未排序的数组中,用第一个数去和后面的数比较,找出最小的数,和第一个数交换。第一个数已为已排序的数。 相当于0~7 从0~7中找到最小的数放在0 从1~7中找到最小的数放在1 从2~7中找到最小的数放在2 ...以此类推 从6~7中找到最…

JAVA学习-练习试用Java实现“最长有效括号”

问题: 最长有效括号 给定一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "(…

从简单到复杂:9款画底纹软件让设计更生动

底纹不知道怎么画?快来试一试这9款软件吧,可以让你的设计作品更加出彩,相信我,用了就是赚到,分别是即时设计、Adobe Illustrator、CorelDRAW、Photoshop、AutoCAD、Inkscape、GIMP、ZebraDesigner、LabelJoy。 1、即时…

软件定义AI算力:解锁AI算力的新时代

从1964年发明CPU——即IBM System 360发布的那一年算起,已经过去60年,我们已经从传统的CPU算力时代跨越到了以GPU算力为代表的加速计算时代。尤其是随着大模型的广泛应用和AIGC技术的崛起,行业对GPU等AI算力的需求呈现出爆炸式的增长。据华为…

7.29爬虫修复

1、加密算法sha、与时间加密。f12前端页面,所有文件中查询到指定字段。 2、加锁维护token或jwt之类的凭证,双if嵌套判断 3、熟悉公司整体项目框架,前端、nginx服务器,后端服务器 4、scrapy的爬虫过滤,注意重复url在src…

微短剧出海CPS分销推广影视平台系统搭建思维逻辑介绍

随着国内短剧市场的蓬勃发展,其独特的魅力与影响力已跨越国界,成为海外观众的新宠。这一趋势不仅推动了短剧内容的全球化传播,也为海外市场的CPS(按销售分润)分销模式提供了广阔舞台。连接内容创作者、平台运营者、系统…

HIVE调优方式及原因

3.HIVE 调优: 需要调优的几个方面: 1.HIVE语句执行不了 2.HIVE查询语句,在集群中执行时,数据无法落地 HIVE执行时,一开始语句检查没有问题,生成了多个JOB, …

VMware 的网络模式详解

VMware 的网络模式详解 使用 VMware 创建虚拟机,配置虚拟机网络时,主要有三个选项,分别是桥接模式、NAT 模式、仅主机模式 这三个模式到底有什么含义? VMware 是通过虚拟网络,即虚拟交换机,来连接物理机&…

泥球代码是什么,如何预防?typescript例

“泥球代码”(Spaghetti Code)通常是指结构混乱、复杂度高且难以理解或维护的代码。这样的代码往往缺乏清晰的设计和规划,看起来就像一团乱糟糟的意大利面,因此得名。 在软件开发中,避免产生泥球代码是非常重要的&…

angular入门基础教程(五)父子组件的数据通信

组件之间的通信是我们业务开发中少不了的,先了解下父子组件的通信 父组件传数据给子组件 前面,我们学会会动态属性的绑定,所以在父组件中给子组件绑定属性,在子组件中就可以使用这个属性了。 父组件中声明然后赋值 export class AppCompon…

设计模式-备忘录

备忘录(Memento)设计模式是为了保存对象当前状态,并在需要的时候恢复到之前保存的状态。以下是一个简单的C#备忘录模式的实现: // Originator 类,负责创建和恢复备忘录 class Originator {private string state;publi…

智能开关助力酒店管理提升

随着科技的迅猛跃进,智能化浪潮席卷全球,酒店业亦不例外地迎来了智能化转型的新纪元。智能开关,作为这股浪潮中的先锋,凭借其尖端的通信技术和智能控制逻辑,正深刻改变着酒店的运营模式与顾客体验。 它不仅赋予了酒店远…

如何理解tcp的三次握手?

TCP(传输控制协议)是一种网络通信协议,用于可靠地传输数据。它是互联网协议套件(TCP/IP)中的一部分,负责将数据分割成小块(称为数据包),通过网络传输,然后在接…

IP地址证书签发之后可以绑定到指定端口访问吗?

IP地址证书概述 IP地址证书,也称为IP SSL证书,是为互联网协议(IP)地址提供安全认证的一种证书。它包含公钥、所有者信息以及由可信的证书颁发机构(CA)签发的数字签名。通过使用公钥基础设施(PKI),IP地址证书确保了网络实体之间的信任和验证。…

语音合成大模型汇总

https://www.speechhome.com/blogs/news/1810969234071752704 阿里CosyVoice: https://github.com/FunAudioLLM/CosyVoice NeuCo v2声音克隆首发,一键AI翻唱,无需训练!在线版SoVITS,在线使用,只需10秒音频…