简单快捷!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://xiahunao.cn/news/3270293.html

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

相关文章

【MySQL进阶之路 | 高级篇】简述Bin Log日志

1. 日志类型 MySQL有不同类型的日志文件,用来存储不同类型的日志,分为二进制日志、错误日志、通用查询日志和慢查询日志,这也是常用的4种。MySQL 8又新增两种支持的日志:中继日志和数据定义语句日志。使用这些日志文件,可以查看M…

exo-tinggrad 架构解析

目录 exo-tinggrad 架构解析 8B 模型配置 70B 模型配置 exo-tinggrad 架构解析 这个项目目录包含了一系列与Python相关的文件和文件夹,它们共同构成了一个可能的项目或库。这些文件和文件夹按照特定的命名和组织方式被放置在了一起,以便于管理、开发和维护。 tinygrad: 这…

解决:Nacos无法获取远程配置数据,导致项目启动各种配置异常

解决:Nacos无法获取远程配置数据,导致项目启动各种配置异常 一问题描述:1.项目pom依赖版本:2.bootstrap.yml配置信息3.远程配置:默认public命名空间4.启动报异常,显示没有配置数据源,实际远程已…

金字塔监督在人脸反欺骗中的应用

介绍 论文地址:https://arxiv.org/pdf/2011.12032.pdf 近年来,人脸识别技术越来越普及。在智能手机解锁和进出机场时,理所当然地会用到它。人脸识别也有望被用于管理今年奥运会的相关人员。但与此同时,人们对人脸欺骗的关注度也…

邦布带你从零开始实现图书管理系统(java版)

今天我们来从零开始实现图书管理系统。 图书管理系统 来看我们的具体的实现,上述视频。 我们首先来实现框架,我们要实现图书管理系统,首先要搭框架。 我们首先定义一个书包,在书包中定义一个书类和一个书架类,再定义…

51单片机15(直流电机实验)

一、序言:我们知道在单片机当中,直流电机的控制也是非常多的,所以有必要了解一些这个电机相关的一些知识,以及如何使用单片机来控制这个电机,那么在没有学习PWM之前,我们先简单的使用GPIO这个管脚来控制电机…

女人内裤怎么洗才是最干净?内衣裤洗衣机怎么样?哪个牌子更好?

最近刚好用到一款比较好用的洗内衣裤洗衣机!如果你也和我一样有洗内衣裤烦恼的,或者可以看看! 内衣裤作为贴身穿的衣服,我是不会把它和外衣一起清洗的,而家里面的大洗衣机已经担起了清洗外衣的工作! 朋友们…

jdk的major version和minor version是啥意思?

写在前面 1:正文 major version是大版本号,minor version是小版本号,但目前minor version都是0(也可能是我没有发现😅),如jdk8就是52,如下表: 可以看到jdk版本号和ma…

优思学院:六西格玛黑带的价值仍在吗?

六西格玛自20世纪80年代由摩托罗拉提出以来,已经深刻地影响了全球的质量管理实践。六西格玛方法论中的一个关键角色就是“黑带”,这些人经过培训,能够领导问题解决项目。随着进入数字化时代,自动化和数据分析在商业运营中变得越来…

【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能

审核看清楚了 ! 这是以太坊测试网络!用于学习的测试网络!!! 有关web3 和区块链的内容为什么要给我审核不通过? 别人凭什么可以发! 目标成果: 实现功能分析: 显示账户信…

第N8周:图解NLP中的注意力机制

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、前期知识储备 注意力机制是一种模拟人类大脑注意力分配方式的计算模型,它能够在处理大量信息时,聚焦于重要的部分,而忽…

打卡第二十五天:递增子序列、全排列、全排列II、重新安排行程、N皇后、解数独

1、递增子序列 题目 文章 视频 这个递增子序列比较像是取有序的子集。而且本题也要求不能有相同的递增子序列。在子集一题中通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自…

数据结构:(1)线性表

一、基本概念 概念:零个或多个数据元素的有限序列 元素之间是有顺序了。如果存在多个元素,第一个元素无前驱,最后一个没有后继,其他的元素只有一个前驱和一个后继。 当线性表元素的个数n(n>0&am…

NzN的C语言全解析--C语言常见概念

目录 1. C语言是什么? 2. C语言的历史 3. 编译器的选择--VS2022 (1) 编译和链接 (2) VS2022 的优缺点 4. VS项目和源文件、头文件介绍 5. 第一个C语言程序 6. main函数 7. printf和库函数 8. 关键字 9. 字符和ASCII编码 10. 字符串和\0 11. 转义字符 …

文件系统基础(一)

目录 一 . 文件的基本概念文件的结构文件的属性文件的分类 二. 文件控制块和索引节点文件控制块(FCB)索引节点磁盘索引节点内存索引节点 三. 文件的操作文件的基本操作文件的打开与关闭文件打开文件关闭文件名与文件描述符的应用 四. 文件的保护访问类型…

用PyTorch从零开始编写DeepSeek-V2

DeepSeek-V2是一个强大的开源混合专家(MoE)语言模型,通过创新的Transformer架构实现了经济高效的训练和推理。该模型总共拥有2360亿参数,其中每个令牌激活21亿参数,支持最大128K令牌的上下文长度。 在开源模型中&…

Godot入门 02玩家1.0版

添加Node2D节点,重命名Game 创建玩家场景,添加CharacterBody2D节点 添加AnimatedSprite2D节点 从精灵表中添加帧 选择文件 设置成8*8 图片边缘模糊改为清晰 设置加载后自动播放,动画循环 。动画速度10FPS,修改动画名称idle。 拖动…

数据结构之探索“堆”的奥秘

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 堆的概念 堆的创建 时间复杂度分析: 堆的插入与删除 优先级队列 PriorityQ…

学习大数据DAY23 Linux基本指令4与ngnix安装以及Shell,python编写环境配置

目录 其他扩展类 echo 输出字符串 date 显示当前日期 (用于日期转字符串) date -d 日期解析(用于字符串转日期) date 设置日期 linux 网络对时 cal 查看日历 wget 命令 seq 命令 Linux 定时执行计划 特殊符号说明 linux 添加硬盘分区挂载 上…

【QT】QT 系统相关(事件、文件、多线程、网络、音视频)

一、Qt 事件 1、事件介绍 事件是应用程序内部或者外部产生的事情或者动作的统称。在 Qt 中使用一个对象来表示一个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制…