首页 > 其他分享 >Yarn基础概念和使用

Yarn基础概念和使用

时间:2024-12-28 23:29:17浏览次数:7  
标签:npm 依赖 项目 基础 yarn 概念 Yarn 安装

目录


Yarn简介

历史背景

Yarn 作为一个包管理器,最初是由 Facebook 在 2016 年 3 月发布的。它的诞生主要是为了解决 npm(Node Package Manager)在大规模项目和组织中遇到的一些性能和可靠性问题。随着 JavaScript 生态系统的迅速增长,npm 成为了最流行的包管理器之一,但在处理大型项目或在缓慢的网络环境下,npm 的安装速度和一致性成为了瓶颈。

与npm的区别

Yarn 和 npm 在功能上有许多相似之处,因为它们都是用于管理 JavaScript 项目依赖的工具,但是 Yarn 在设计上做了几个关键的改进:

  1. 并行安装:Yarn 支持并行安装依赖,这意味着它可以在同一时间安装多个包,显著加快了安装速度。
  2. 确定性安装:Yarn 引入了 yarn.lock 文件,确保在任何地方安装的依赖都是一致的,解决了 npm 中由于版本差异导致的不一致问题。
  3. 离线模式:Yarn 会缓存已安装的包,因此即使在网络不稳定的情况下,也可以快速地从本地缓存中安装依赖。
  4. 更快的恢复:Yarn 的恢复速度比 npm 快,因为它可以跳过已经安装的包,只安装那些尚未安装的。
  5. 更好的用户体验:Yarn 提供了更详细的命令行输出,以及一些额外的命令,如 yarn why 和 yarn outdated,帮助开发者更好地理解和管理他们的依赖。
核心特性与优势
  1. 性能:Yarn 的并行安装和缓存机制极大地提升了安装速度,特别是在大型项目中表现突出。
  2. 一致性:通过 yarn.lock 文件,Yarn 确保了所有开发者在任何环境下的依赖安装结果都相同,避免了版本混乱的问题。
  3. 离线模式:即使没有网络连接,Yarn 也能从本地缓存中恢复和安装依赖。
  4. 可预测性:Yarn 的安装过程是可预测的,这有助于避免由于依赖版本差异导致的生产环境和开发环境之间的差异。
  5. 易用性:Yarn 的命令行界面设计得更加直观,提供了丰富的命令和选项,帮助开发者更高效地管理项目。
  6. 兼容性:Yarn 兼容 npm 的 package.json 文件,意味着现有的 npm 项目可以无缝迁移到 Yarn。

安装与配置

安装 Yarn

1. 通过 npm 安装
对于大多数用户来说,最简单的方式是通过 npm 来安装 Yarn。首先,确保你的系统上已经安装了 Node.js 和 npm。然后,打开终端或命令行工具,运行以下命令:

npm install -g yarn

这将全局安装 Yarn。安装完成后,可以通过运行 yarn --version 来验证是否成功安装。

2. 通过其他方式安装
如果你的系统中没有 npm 或者出于某些原因无法使用 npm,还可以通过以下方式安装 Yarn:

  • 直接下载二进制文件:访问 Yarn 的 GitHub 仓库或官方网站,下载适用于你操作系统的二进制文件,然后手动安装。
  • 使用包管理器:在 Linux 系统上,可以使用 APT、YUM 或其他包管理器来安装 Yarn。
  • Docker 容器:如果是在 Docker 环境下,可以直接在 Dockerfile 中添加 RUN npm install -g yarn 来安装。
配置 Yarn

1. 配置全局路径
默认情况下,Yarn 会将全局包安装在 /usr/local/lib/node_modules 目录下(在 macOS 和 Linux 上)。如果你的系统不允许普通用户写入这个目录,或者你希望自定义全局包的安装位置,可以修改 .yarnrc文件。

创建或编辑用户主目录下的 .yarnrc 文件,添加以下内容:

globalFolder: "/path/to/your/custom/global/folder"

2. 配置缓存目录
Yarn 默认会将缓存的包放在 /Users/<username>/.yarn 目录下(在 macOS 和 Linux 上)。如果你想改变缓存的位置,同样在 .yarnrc 文件中进行配置:

cacheFolder: "/path/to/your/custom/cache/folder"

3. 配置镜像源
如果你所在的网络环境访问 npm 仓库速度较慢,可以配置 Yarn 使用国内的镜像源,例如淘宝的 npm 镜像:

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

4. 配置私有仓库
如果你的项目需要使用私有仓库中的包,可以配置 Yarn 连接到私有仓库。假设你的私有仓库 URL 是 http://my.private.registry/,则配置如下:

yarn config set registry http://my.private.registry/

同时,如果私有仓库需要认证,还需要配置用户名和密码:

yarn config set username <your-username>
yarn config set password <your-password>

5. 配置并行安装
Yarn 默认会并行安装依赖,但你可以通过配置来调整并行度。例如,设置最大并行安装数为 4:

yarn config set concurrent 4
使用 Yarn

1. 初始化项目
使用 Yarn 初始化一个新的项目,会创建一个 package.json 文件:

yarn init

2. 添加依赖
添加一个依赖到项目中:

yarn add <package-name>

3. 查看依赖
列出当前项目的所有依赖:

yarn list

4. 升级依赖
升级一个依赖到最新版本:

yarn upgrade <package-name>

5. 删除依赖
从项目中移除一个依赖:

yarn remove <package-name>
高级配置

Yarn 还提供了许多高级配置选项,包括但不限于:

  • Workspaces:用于管理多项目仓库。
  • Plugins:扩展 Yarn 的功能。
  • Hooks:在 Yarn 执行某些操作前后执行自定义脚本。

通过编辑项目根目录下的 yarnrc.yml 文件,可以进行更详细的配置。

基础命令

初始化项目

yarn init
使用此命令可以初始化一个新的项目,生成 package.json 文件。这一步通常在项目开始时进行。

yarn init
添加依赖

yarn add
这是最常用的命令之一,用于向项目添加新的依赖。你可以指定版本号或范围,如果没有指定,默认添加最新的稳定版。

yarn add <package-name> # 添加最新稳定版
yarn add <package-name>@<version> # 添加特定版本
yarn add <package-name>@latest # 添加最新版本
yarn add <package-name>@next # 添加下一个版本
移除依赖

yarn remove
用于从项目中移除不再需要的依赖。

yarn remove <package-name>
升级依赖

yarn upgrade
用于将现有依赖升级到最新版本或指定版本。

yarn upgrade <package-name> # 升级到最新版本
yarn upgrade <package-name>@<version> # 升级到指定版本
降级依赖

yarn downgrade
将现有依赖降级到指定版本。

yarn downgrade <package-name>@<version>
查看依赖

yarn list
显示项目中所有依赖的列表,包括版本信息。

yarn list
检查依赖

yarn check
检查项目中的依赖是否正确安装,确保 yarn.lock 文件与实际安装的依赖匹配。

yarn check
清理缓存

yarn cache clean
清除 Yarn 的缓存,通常在遇到安装错误或想要强制重新下载依赖时使用。

yarn cache clean
查看包信息

yarn info
获取指定包的详细信息,包括版本历史、作者、许可证等。

yarn info <package-name>
运行脚本

yarn <script-name>
执行 package.json 文件中定义的脚本。

yarn start # 如果 `package.json` 中定义了 `start` 脚本
查看过期依赖

yarn outdated
列出所有过期的依赖,即有可用更新的依赖。

yarn outdated
去重依赖

yarn dedupe
减少重复的依赖项,优化依赖树。

yarn dedupe
查找依赖来源

yarn why
查找某个依赖为何被安装,即追踪到引入该依赖的源头。

yarn why <package-name>
生成锁定文件

yarn install
虽然默认情况下 yarn install 就会生成或更新 yarn.lock 文件,但明确提及是为了强调其重要性。yarn.lock 文件确保了依赖的一致性。

yarn install
创建可执行脚本

yarn bin
显示可执行脚本的路径,这对于在项目中使用全局安装的包非常有用。

yarn bin
查看版本

yarn --version
显示当前使用的 Yarn 版本。

yarn --version
帮助文档

yarn help
显示所有可用命令的帮助文档。

yarn help
使用场景
  • 项目初始化:使用 yarn init 创建 package.json
  • 添加依赖:使用 yarn add 添加新依赖。
  • 运行脚本:使用 yarn <script-name> 运行项目中的脚本。
  • 依赖管理:使用 yarn upgradeyarn removeyarn dedupe 管理依赖。
  • 版本控制:使用 yarn check 确保 yarn.lock 文件与实际安装的依赖一致。
  • 问题排查:使用 yarn whyyarn outdated 排查依赖问题。

日常使用

安装项目依赖

在开始任何项目之前,确保你已经在系统上安装了 Yarn。接下来,我们将详细介绍如何使用 Yarn 来安装项目依赖。

初始化项目
在项目目录中运行 yarn init 命令来初始化项目,这将创建一个 package.json 文件,其中包含了项目的元数据和依赖信息。

yarn init

添加依赖
使用 yarn add 命令来添加项目所需的依赖。例如,如果你想添加 express 框架作为项目依赖,可以运行:

yarn add express

这将在 package.json 文件中添加 express 依赖,并在 node_modules 目录下安装相应的包。同时,Yarn 也会生成或更新 yarn.lock 文件,确保依赖的一致性。

运行脚本

Yarn 不仅是一个包管理器,还可以用来运行项目中的脚本。在 package.json 文件中,你可以定义各种脚本,如启动服务器、运行测试或构建项目等。

定义脚本
package.json 文件中,找到或添加 “scripts” 字段,然后定义你需要的脚本。例如:

{
  "scripts": {
    "start": "node server.js",
    "test": "jest",
    "build": "webpack"
  }
}

这里定义了三个脚本:starttestbuild,分别对应启动服务器、运行测试和构建项目。

运行脚本
一旦脚本定义好,就可以使用 Yarn 来运行它们。例如,要启动服务器,只需运行:

yarn start

这将执行 package.json 中 “scripts” 下的 “start” 脚本。

创建和发布包

如果你正在开发一个库或工具,可能需要将其打包并发布到 npm 仓库,以便其他开发者可以使用。

创建包
首先,确保你的项目包含所有必要的元数据,如名称、版本、作者等。这些信息应该在 package.json 文件中定义。

打包
在发布前,可能需要运行一些预构建脚本来准备发布。例如,你可能需要编译源代码或生成文档。这通常在 package.json 的 “scripts” 字段中定义。

{
  "scripts": {
    "prepublishOnly": "npm run build"
  }
}

这里的 "prepublishOnly" 脚本会在发布前自动运行。

登录 npm
在首次发布前,需要使用 npm CLI 登录到你的 npm 账户:

npm login

按照提示输入你的 npm 用户名、密码和邮箱地址。

发布包
最后,使用 npm publish 命令来发布你的包:

npm publish

注意:虽然 Yarn 本身不直接支持 publish 命令,但你可以使用 npm 的 publish 命令来发布包。这是因为 Yarn 和 npm 在包的发布流程上是兼容的。

标签:npm,依赖,项目,基础,yarn,概念,Yarn,安装
From: https://blog.csdn.net/A1215383843/article/details/144797166

相关文章

  • Yarn工作空间和高级命令
    目录工作空间高级命令性能优化错误处理与调试工作空间Monorepo概念Monorepo(单仓库)是一种软件工程实践,它将多个相关的项目或包存储在一个单一的Git仓库中。这种做法有多个好处:简化依赖管理:共享依赖可以避免重复安装和版本冲突。统一构建和测试:所有项目都可以使用相......
  • 2024-2025-1 20241307《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里([2024-2025-1计算机基础与程序设计第十四周作业]这个作业的目标作业正文(2024-2025-1学号20241307《计算机基础与程序设计》第十四周学习总结)教材学习内容总结C语言程序......
  • 深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南
    深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南文章目录深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南前言一、了解FreeRTOS1.1FreeRTOSPort1.2构建FreeRTOS1.3FreeRTOSConfig.h1.4官方发行版1.5通用FreeRTOS源文件1.6特定FreeRTO......
  • STM32_引脚初始化与时钟基础
    为什么每用一个GPIO引脚,都要初始化一次时钟?TM32微控制器采用了时钟门控(ClockGating)机制,这是现代微控制器的一种功耗管理策略。时钟门控机制的核心思想是,只有在外设需要运行时,才使能相应外设的时钟,而在不使用时关闭时钟,以减少功耗和节省电源。//初始化时钟RCC_APB2Pe......
  • C语言.基础.运算符(二)
    目录运算符类型运算符的优先级运算符的结合性算术运算符赋值运算符关系运算符逻辑运算符 位运算符C语言内置的位运算符: 位运算符的几种特殊操作:1左移实现乘法2右移实现除法3 不使用中间变量交换两个整型变量的值4判断整数的奇偶性5位操作进行高低位交......
  • 2024-2025-1 20241413 《计算机基础与程序设计》第十四周学习总结
    |班级链接|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP||作业要求|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14|教材学习内容总结《c语言程序设计>第十三,十四章第13章:文件操作文件的概念:介绍文件的基本概念,包括文件的分类(文本文件和二进制文件)以及文......
  • node、nvm、cnpm、yarn下载安装配置
    node&nvm(cnpm、yarn)下载安装配置1.node下载安装配置下载打开中文官网https://www.nodejs.com.cn/,选择指定版本的Windows安装包下载msi文件。一般都是选择LTS(长期支持版本),项目用哪个就得安哪个。所以多个项目的node版本不同时,就需要重复的卸载安装,推荐使用下面的nvm。安装......
  • 学期(2024-2025-1) 学号(20241420) 《计算机基础与程序设计》第十四周学习总结
    学期(2024-2025-1)学号(20241420)《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第十四周作业)这个作业的目标<《C语......
  • 2024-2025-1 20241407《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标学习二进制文件和文本文件,文件的打开和关闭,顺序读写与随机读写,标准输入和输出及其重定向作业正文本博客教材学......
  • Java面试知识点总结:从基础到高级的全面指南
    在准备Java面试时,系统地覆盖从基础到高级的知识点是至关重要的。以下是一个详细的Java面试知识点总结,帮助你有针对性地准备面试。也算是我自己总结的知识点,先记录下来,说不定下次准备面试的时候,能再用上。1. Java基础在Java面试中,基础知识是考核的核心部分。掌握这些基础知识......