yarn不同操作系统的安装与配置

news2025/1/11 11:37:35

Yarn 是一个快速、可靠且安全的依赖包管理工具,用于替代 npm。以下是在不同操作系统上安装和配置 Yarn 的步骤。

1. 安装 Node.js

在安装 Yarn 之前,请确保已经安装了 Node.js,因为 Yarn 需要 Node.js 环境。你可以在 Node.js — Run JavaScript Everywhere 下载并安装适合你操作系统的版本。

2. 在 Ubuntu / Debian 上安装 Yarn

在 Ubuntu 或 Debian 系统上,可以通过以下命令使用包管理器 apt 来安装 Yarn:

 

Bash

1curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
2echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
3sudo apt-get update && sudo apt-get install yarn

3. 在 CentOS / RHEL 上安装 Yarn

在 CentOS 或 RHEL 系统上,可以使用以下命令通过包管理器 yum 或 dnf 来安装 Yarn:

 

Bash

1curl -sS https://dl.yarnpkg.com/rpm/pubkey.gpg | sudo rpm --import -
2echo -e "[yarn]\nname=Yarn\nbaseurl=https://dl.yarnpkg.com/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://dl.yarnpkg.com/rpm/pubkey.gpg" | sudo tee /etc/yum.repos.d/yarn.repo
3sudo yum install yarn
4# 如果你的系统使用的是dnf,替换上面的yum为dnf即可

4. 在 macOS 上安装 Yarn

在 macOS 上,可以使用 Homebrew 包管理器来安装 Yarn:

 

Bash

1brew install yarn

5. 在 Windows 上安装 Yarn

在 Windows 上,你可以通过 Chocolatey 包管理器或直接从 Yarn 官网下载安装包进行安装。

  • 使用 Chocolatey:
 
1choco install yarn
  • 从官网下载:访问 Installation | Yarn ,下载并运行安装程序。

6. 配置 Yarn

安装完成后,你可能需要对 Yarn 进行一些基本配置,例如设置全局安装目录和缓存目录。可以通过编辑 .yarnrc 文件(位于用户主目录下)来完成这些配置。

例如,要将全局安装目录设置为 /usr/local/lib/node_modules 和缓存目录设置为 /var/cache/yarn,可以添加以下内容到 .yarnrc 文件中:

1yarn-offline-mirror: false
2global-folder: "/usr/local/lib/node_modules"
3cache-folder: "/var/cache/yarn"

请根据实际情况调整路径。

成功安装和配置了 Yarn,可以开始使用它来管理 项目依赖了!

Yarn 是一个高效、可靠且安全的包管理器,它与 npm 兼容但提供了更快的安装速度和更好的依赖一致性。以下是 Yarn 的基本用法概览,这将帮助你快速上手使用 Yarn:

7.基本命令

初始化项目

若要初始化一个新的项目,使用 yarn init 命令。这会创建一个 package.json 文件,并引导你填写项目信息。

添加依赖

使用 yarn add <package> 来安装一个新包。例如,安装 lodash 库:

yarn add lodash


安装项目依赖

要安装项目中列出的所有依赖,只需运行 yarn 或 yarn install。Yarn 会读取 package.json 中的 dependencies 和 devDependencies 列表。

升级依赖

若要升级一个已存在的依赖到最新版本,使用 yarn upgrade <package>。

移除依赖

使用 yarn remove <package> 来移除一个不再需要的包。

列出所有依赖

yarn list 命令显示所有已安装的依赖包及其版本。

检查依赖

yarn check 可以验证项目中的依赖是否与 package-lock.json 或 yarn.lock 文件中的信息匹配。

清理缓存

使用 yarn cache clean 清除 Yarn 的缓存。

全局安装

若要全局安装一个包,使用 yarn global add <package>。

8.高级功能


链接本地模块

使用 yarn link 和 yarn link <package> 命令来链接本地开发的模块到项目中,这样就可以在开发过程中实时看到模块的变化。

工作空间

大型项目可能包含多个子项目,每个子项目都有自己的 package.json。Yarn 的工作空间功能可以帮助管理这些子项目。在根目录的 package.json 文件中定义 workspaces 字段,然后可以使用 yarn workspaces <command> 来针对所有工作空间执行命令。

插件

Yarn 支持插件,可以扩展其功能。使用 yarn plugin import <plugin-name> 来安装插件。

多版本支持

Yarn 允许同时安装不同版本的相同包,这在处理不同的项目需求时非常有用。

9.日常使用技巧

脚本运行

除了管理依赖,package.json 中的 scripts 字段可以用来定义常用任务,例如构建、测试和部署。使用 yarn <script-name> 来运行这些脚本。

环境变量

Yarn 可以通过 .env 文件或环境变量来设置项目级别的环境变量,这对于配置不同的环境(如开发、测试和生产)很有帮助。

锁定文件

Yarn 使用 yarn.lock 文件来跟踪确切的依赖版本,确保在任何环境中安装的依赖完全一致。

10.构建和发布

  1. 构建和打包
    如果你的项目有构建步骤,比如编译源代码或者压缩资源文件,可以在 package.jsonscripts 字段中定义一个 build 脚本,然后使用 yarn build 来运行这个脚本。

  2. 发布到npm仓库
    使用 yarn publish 命令可以将你的项目发布到 npm 仓库。在发布前,请确保你已经在 npm 登录过 (npm login) 并且你的 package.json 文件中的 version 字段已经更新。

11.检查和审计

  1. 依赖关系图
    使用 yarn why <package> 查看特定包是如何被引入项目的,以及它的所有依赖树。

  2. 依赖审计
    yarn audit 命令可以检查你的项目是否存在已知的安全漏洞,并提供修复建议。

12.自动化和CI/CD

  1. 自动化脚本
    你可以将 yarn 命令集成到 CI/CD 流水线中,例如在构建流程中自动运行 yarn installyarn test

  2. 环境变量和配置
    利用 .env 文件或环境变量来存储敏感信息,如 API 密钥和数据库连接字符串,以避免硬编码到代码中。

13.性能优化

  1. 使用离线模式
    当网络不稳定或不可用时,可以使用 yarn install --offline 命令,Yarn 将尝试从本地缓存安装依赖。

  2. 自定义镜像源
    对于国内用户,可以通过修改 .yarnrc 文件中的 registry 设置来使用国内的 npm 镜像源,例如阿里云镜像,以提高下载速度。

14.最佳实践

  1. 保持 yarn.lock 文件同步
    每次修改依赖后,都应该提交更新后的 yarn.lock 文件到版本控制系统,确保团队成员使用相同的依赖版本。

  2. 定期更新依赖
    定期运行 yarn outdated 检查过时的依赖,然后使用 yarn upgrade 更新它们,以获取最新的安全补丁和功能改进。

  3. 使用Workspaces管理多项目
    如果你的项目包含多个独立的子项目,考虑使用 Workspaces 功能来简化依赖管理和构建过程。

  4. 文档和注释
    package.jsonREADME.md 文件中详细记录项目的依赖、脚本和安装步骤,以便新加入的开发者能够快速上手。

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

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

相关文章

极简通俗VAE

一、VAE 背景&#xff1a;VAE什么变分自编码器&#xff0c;听起来起名都头大&#xff0c;用大白话告诉你。 把一个复杂图片压缩成两个参数&#xff0c;用这个参数采样再复原。 这个简单的东西是两个参数&#xff0c;均值和方差&#xff0c;用&#xff08;0&#xff0c;1&…

15kg级弹簧刀高速巡飞无人机技术详解

弹簧刀高速巡飞无人机&#xff0c;作为一种先进的战术导弹系统&#xff0c;融合了无人机与导弹的双重特性&#xff0c;成为了现代战争中不可或缺的侦察与打击利器。该无人机以其小巧的外形设计、优异的性能表现和广泛的适用领域&#xff0c;受到了全球军事领域的广泛关注。弹簧…

ChatGPT如何应用在谷歌seo?

ChatGPT在提升博客和创作效率方面非常有用。它可以帮助你快速生成吸引人的标题&#xff0c;确保内容第一眼就能抓住读者的注意力。不仅如此&#xff0c;ChatGPT还能根据你的主题生成详细的文章提纲&#xff0c;让你在写作时思路更加清晰。关键词优化也是它的强项&#xff0c;可…

当《开心消消乐》遇上 AI 推理,我们找到了高质量关卡背后的原因!

随着 AI 热潮席卷各行各业&#xff0c;其落地应用已经成为企业技术研发升级的工作重心。人工智能应用的升级不仅需要软件层面的升级迭代&#xff0c;还需要大规模基础设施的支撑。然而&#xff0c;自行搭建大规模算力、存储基础设施对于大多数企业而言都存在技术难度、人力资源…

OpenSSL的一些使用案例

目录 一、介绍 二、基本使用 1、Shell &#xff08;1&#xff09;文件加解密 &#xff08;2&#xff09;生成密钥文件 2、API &#xff08;1&#xff09;md5sum &#xff08;2&#xff09;AES256加解密 一、介绍 本篇博客重点不是详细描述 OpenSSL 的用法&#xff0c;只…

【IA修补一切】Inpaint Anything: Segment Anything Meets Image Inpainting论文解读

作者来自中国科学技术大学和东部高级研究院。文章提出了一个新的图像修复工具“Inpaint Anything (IA)”&#xff0c;它结合了不同的视觉模型&#xff0c;如Segment Anything Model (SAM)、LaMa、Stable Diffusion (SD)等&#xff0c;以实现更高级的图像编辑功能。 论文&#x…

P3374 【模板】树状数组 1

题目描述 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; 将某一个数加上 &#x1d465;x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 &#x1d45b;,&#x1d45a;n,m&#xff0c;分别表示该数列数字的个数和操作的总个数。 …

【MySQL】表的操作{创建/查看/修改/删除}

文章目录 1.创建表1.1comment&#xff1a;注释信息1.2存储引擎 2.查看表3.修改表3.1add添加列&#xff0c;对原数据无影响3.2drop删除列3.3modify修改列类型3.4change修改列名3.5rename [to]修改表名 4.删除表5.总结 1.创建表 CREATE TABLE table_name (field1 datatype,field…

springboot医院门诊挂号系统-计算机毕业设计源码033123

目 录 摘要 1 绪论 1.1研究背景及意义 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2 医院门诊挂号系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.…

第一百三十八节 Java数据类型教程 - Java boolean数据类型和float数据类型

Java数据类型教程 - Java boolean数据类型 布尔数据类型只有两个有效值:true和false。 这两个值称为布尔值字面量。 我们可以使用布尔值字面量 boolean done; // Declares a boolean variable named done done true; // Assigns true to done布尔变量不能转换为任何其他…

什么是分库分表?它有哪些实现类型?

假如你正在使用关系型数据库开发一款健康类系统。业务发展很好&#xff0c;系统有很多活跃的新老用户&#xff0c;这些用户会和平台的医生团队进行交互&#xff0c;每天可能会生成数万甚至数十万级别的业务数据。这样的话&#xff0c;随着数据量越来越大&#xff0c;系统中的某…

如何选择易用性高的项目管理软件?

随着项目管理在各行各业的广泛应用&#xff0c;选择一款易用性高的项目管理软件变得越来越重要。易用性高的软件可以帮助企业提高工作效率&#xff0c;降低管理成本&#xff0c;同时还能提升团队之间的协作能力。那么&#xff0c;如何选择一款易用性高的项目管理软件呢&#xf…

C++ Linux调试(无IDE)

跨平台IDE编译调试C很方便&#xff0c;如QTCreate 、VSCode、Eclipse等&#xff0c;但是如果只能使用Shell控制台呢&#xff0c;gdb调试的优势就很明显了&#xff0c;在没有IDE的情况下&#xff0c;这个方式最有效。因为上手不是很难&#xff0c;特此整理 参考链接 目录 1、G…

边缘网关在实际应用中的价值与挑战-天拓四方

随着物联网、大数据和人工智能等技术的快速发展&#xff0c;边缘计算逐渐崭露头角&#xff0c;成为推动数字化转型的关键力量。而边缘网关&#xff0c;作为边缘计算的核心组成部分&#xff0c;其重要性不言而喻。本文将以某智能制造企业为例&#xff0c;结合数据分析&#xff0…

MySQL高级-MVCC- readview介绍

文章目录 1、介绍2、ReadView中包含了四个核心字段&#xff1a;3、版本链数据的访问规则&#xff1a;4、不同的隔离级别&#xff0c;生成ReadView的时机不同&#xff1a; 1、介绍 ReadView&#xff08;读视图&#xff09;是 快照读 SQL执行时MVCC提取数据的依据&#xff0c;记录…

微信小程序订单发货管理接入

订单发货管理接入指引&#xff1a;https://mp.weixin.qq.com/cgi-bin/announce?token1148555877&actiongetannouncement&key11671435333v04b2&version1&langzh_CN&platform2https://mp.weixin.qq.com/cgi-bin/announce?token1148555877&actiongetann…

Redis基础教程(十):HyperLogLog

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

掌握IP代理API提取技巧,让你的网络操作更高效!

IP代理在现代网络中扮演着越来越重要的角色。今天&#xff0c;我们将深入探讨IP代理的API提取知识&#xff0c;帮助大家更好地理解和应用这一技术。 IP代理API是什么&#xff1f; IP代理API是提供IP代理服务的接口&#xff0c;允许开发者通过编程方式自动获取和管理代理IP。通…

土壤养分检测仪——助力农田监测

在现代化的农业生产中&#xff0c;精准施肥、科学种植已成为提升作物产量与品质的关键。为了实现这一目标&#xff0c;土壤养分检测仪成为了农田科技的得力助手。这款仪器不仅配备了成品药剂和检测器材&#xff0c;还能在现场进行快速测定&#xff0c;广泛应用于农田土壤养分的…

干式电抗器的工作原理是什么

干式电抗器是电力系统中常用的无功补偿设备&#xff0c;主要用于调节电网的电压、提高功率因数、限制短路电流等。它的工作原理主要是通过在电路中引入一个与负载电流相反的磁场&#xff0c;从而产生一个与负载电流相抵消的电抗力&#xff0c;达到调节电压和功率因数的目的。 干…