yarn的安装和配置以及更新总结,npm的对照使用差异

1. Yarn简介

Yarn 是一个由 Facebook 开发的现代 JavaScript 包管理器,旨在提供更快、更安全、更可靠的包管理体验。

1.1 什么是Yarn

Yarn 是一个快速、可靠和安全的 JavaScript 包管理器,它通过并行化操作和智能缓存机制,显著提升了依赖安装的速度。Yarn 还提供了离线支持,即使在没有网络的情况下,也能安装依赖包。此外,Yarn 使用 yarn.lock 文件锁定依赖版本,确保在不同环境中安装的依赖包版本一致,避免了“在我这能运行”的问题。

1.2 Yarn的主要特点

Yarn 的主要特点包括:

  • 速度快:Yarn 通过并行化操作,使得依赖安装速度远超传统的 npm 包管理器。
  • 离线模式:Yarn 支持离线模式,可以在没有网络的情况下安装依赖,因为它会缓存之前下载过的包。
  • 确定性:Yarn 使用 yarn.lock 文件确保每次安装的依赖版本一致,无论在哪个系统或何时安装。
  • 安全性:Yarn 在安装包之前会检查其完整性,确保包没有被篡改。
  • 更好的语义化:Yarn 的命令和输出信息更友好、更易读,方便开发人员理解和使用。
  • 跨平台兼容性:Yarn 可以在多种操作系统上运行,包括 Windows、macOS 和 Linux,确保了广泛的适用性和一致性。

2. Yarn的安装

2.1 在不同操作系统上的安装方法

Yarn支持跨平台安装,包括Windows、macOS、Linux等操作系统。以下是针对不同操作系统的安装指南:

  • Windows: 在Windows系统上,可以通过以下两种方式安装Yarn:

    • 使用npm:运行命令 npm install --global yarn 来安装Yarn。
    • 使用Chocolatey:如果已经安装了Chocolatey,可以通过 choco install yarn 命令进行安装。
  • macOS: 在macOS上,推荐使用Homebrew进行安装,使用命令 brew install yarn

  • Linux (Ubuntu/Debian): 在基于Debian的系统上,可以添加Yarn的官方仓库并使用apt进行安装:

    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt update && sudo apt install yarn
    
  • Linux (CentOS/RHEL): 在基于RPM的系统上,可以添加Yarn的官方仓库并使用yum进行安装:

    curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
    sudo yum install yarn
    

2.2 通过npm安装Yarn

npm是Node.js的包管理器,Yarn可以通过npm进行安装。这是Yarn官方推荐的安装方法,因为它确保了Yarn与Node.js的兼容性。以下是通过npm安装Yarn的步骤:

  1. 确保系统中已安装Node.js,可以通过运行 node -vnpm -v 来检查Node.js和npm的版本。
  2. 使用npm全局安装Yarn,运行命令 npm install --global yarn
  3. 安装完成后,可以通过运行 yarn --version 来验证Yarn是否安装成功。

通过npm安装Yarn是一种简单且跨平台的方法,适用于大多数操作系统。安装完成后,就可以开始使用Yarn来管理JavaScript项目的依赖了。

3. Yarn的配置

3.1 配置环境变量

配置环境变量是确保Yarn能够全局访问的关键步骤。在Unix-like系统(包括Linux和macOS)中,通常需要编辑shell配置文件,如.bashrc.zshrc.profile。例如,在.bashrc文件中添加以下行:

export PATH="$PATH:$(yarn global bin)"

在Windows系统中,可以通过系统属性中的环境变量设置来添加Yarn的安装路径到PATH变量。确保Yarn的可执行文件路径被添加到PATH中,使得可以在命令行中直接调用yarn命令。

3.2 设置国内镜像源

由于网络问题,直接使用npm官方源在中国大陆可能会遇到访问速度慢或无法访问的问题。Yarn支持设置镜像源以加速包的下载。以下是设置国内镜像源的步骤:

  1. 使用淘宝的npm镜像作为Yarn的registry,可以通过以下命令设置:

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

    这将使得Yarn在安装包时使用淘宝的镜像源,显著提高下载速度。

  2. 如果需要使用其他镜像源,如npmmirrorcnpm,可以通过替换URL来设置:

    yarn config set registry https://registry.npmmirror.com
    # 或者
    yarn config set registry https://r.cnpmjs.org
    
  3. 查看当前Yarn配置,确保镜像源设置正确:

    yarn config list
    

通过以上步骤,可以确保Yarn在使用过程中能够享受到更快的下载速度,特别是在中国大陆地区。同时,合理配置环境变量能够提高开发效率,确保开发环境的稳定性。

4. Yarn常用命令

4.1 安装依赖

Yarn提供了多种方式来安装项目依赖,以确保开发环境的一致性和稳定性。

  • yarn install:这是最常用的命令,用于根据package.jsonyarn.lock文件安装所有依赖。如果yarn.lock文件存在,Yarn将确保安装与锁文件中记录的确切版本相同的依赖,从而保证不同环境下的一致性。
  • yarn install --flat:此命令安装所有依赖,但每个包只允许一个版本。首次运行时,如果存在多个版本范围的依赖,Yarn会提示选择一个版本,并将选择的版本添加到package.jsonresolutions字段中。
  • yarn install --production:在生产环境中,此命令将忽略devDependencies,只安装生产所需的依赖,加快安装速度并减小安装包体积。

4.2 添加和删除依赖

Yarn允许开发者灵活地管理项目依赖,包括添加和删除操作。

  • yarn add [package]:添加新依赖到dependencies字段。如果需要添加开发时依赖,可以使用--dev-D标志,将依赖添加到devDependencies
  • yarn remove [package]:从package.json中删除指定的依赖,并清理node_modules目录中对应的文件。

4.3 其他常用命令

除了基本的依赖管理,Yarn还提供了一些其他提高开发效率的命令。

  • yarn upgrade [package]:升级指定的依赖包到最新版本。如果使用yarn upgrade --latest,则升级所有包到最新版本。
  • yarn upgrade-interactive:交互式升级依赖,允许开发者选择要升级的依赖版本。
  • yarn run [script]:运行在package.jsonscripts字段定义的脚本。例如,yarn run test可以运行测试脚本。
  • yarn global add [package]:将包安装到全局,使其在任何项目中都可用。
  • yarn cache clean:清理Yarn缓存,释放磁盘空间。在升级Yarn或解决某些安装问题时,这个命令可能会用到。

通过这些命令,Yarn为JavaScript项目的依赖管理提供了强大而灵活的工具,帮助开发者更高效地进行开发和维护。

5. npm与Yarn命令比较

5.1 依赖版本控制差异

Yarn 和 npm 在依赖版本控制方面有显著的不同。Yarn 引入了 yarn.lock 文件,该文件记录了项目依赖的确切版本,确保了在不同开发环境中安装的依赖版本一致性。这避免了 npm 中常见的版本冲突问题,因为 npm 通常依赖于 package.json 中的语义化版本号,这可能导致在不同时间安装依赖时获取到的版本不一致。

  • Yarn: 使用 yarn.lock 文件锁定依赖版本,确保在所有环境中的一致性。
  • npm: 依赖于 package.json 中的语义化版本号,可能在不同时间安装时获取不同版本。

5.2 命令使用差异

Yarn 和 npm 的命令使用也存在一些差异,这些差异体现在安装依赖、添加依赖、更新依赖等方面。

  • 安装依赖:

    • Yarn: 使用 yarn install 命令安装依赖,并且默认生成 yarn.lock 文件。
    • npm: 使用 npm install 命令安装依赖,可以通过 npm install --package-lock-only 来生成 package-lock.json 文件。
  • 添加依赖:

    • Yarn: 使用 yarn add [package] 命令添加依赖,并更新 yarn.lock 文件。
    • npm: 使用 npm install [package] 命令添加依赖,并更新 package-lock.json 文件。
  • 更新依赖:

    • Yarn: 使用 yarn upgrade [package] 命令更新依赖,同时保持 yarn.lock 文件的一致性。
    • npm: 使用 npm update [package] 命令更新依赖,同时更新 package-lock.json 文件。
  • 移除依赖:

    • Yarn: 使用 yarn remove [package] 命令移除依赖,并更新 yarn.lock 文件。
    • npm: 使用 npm uninstall [package] 命令移除依赖,并更新 package-lock.json 文件。
  • 全局安装:

    • Yarn: 使用 yarn global add [package] 命令全局安装依赖。
    • npm: 使用 npm install -g [package] 命令全局安装依赖。

这些命令使用上的差异反映了 Yarn 和 npm 在设计理念和使用习惯上的不同,开发者可以根据个人喜好和项目需求选择合适的包管理工具。

6. 检查Yarn安装

6.1 验证安装是否成功

安装完成后,需要验证Yarn是否安装成功。可以通过在终端或命令提示符中执行以下命令来检查:

yarn --version

如果终端输出了Yarn的版本号,这表明Yarn已经成功安装在您的系统上。

6.2 检查Yarn的全局安装路径

Yarn的全局安装路径可以通过以下命令查看:

yarn global dir

该命令将显示Yarn全局安装包的路径,确保您知道Yarn包被安装在哪里。

6.3 检查Yarn的配置信息

使用以下命令可以查看Yarn的所有配置信息,包括镜像源、缓存路径等:

yarn config list

这个命令会列出当前Yarn的配置,您可以检查是否已经按照您的需求进行了相应的配置。

6.4 检查Yarn的依赖管理

Yarn使用yarn.lock文件来锁定依赖项的版本,确保在不同环境中的依赖一致性。您可以检查项目根目录下是否存在yarn.lock文件:

ls yarn.lock

如果存在,说明依赖项已经被锁定,这有助于团队协作和持续集成流程中的稳定性。

6.5 检查Yarn的插件和扩展

Yarn支持插件系统,可以通过以下命令查看已安装的插件:

yarn plugins list

如果列出了插件,说明Yarn已经配置了额外的功能扩展,可以根据需要使用这些插件来增强Yarn的功能。

7. 升级Yarn

升级Yarn是确保你能够使用最新功能和安全更新的重要步骤。Yarn会定期发布新版本,包括性能改进、新特性以及安全修复。

7.1 升级方法

升级Yarn的主要方法有两种:通过npm和使用Yarn自己的命令。

  • 通过npm升级:由于Yarn是通过npm安装的,因此可以使用npm命令来升级Yarn到最新版本。

    npm install -g yarn
    
  • 使用Yarn升级:如果系统中已经安装了Yarn,可以使用Yarn提供的命令来升级自身。

    yarn set version latest
    yarn install
    

7.2 升级注意事项

在升级Yarn之前,需要注意以下几点:

  • 备份:在升级之前,建议备份你的项目和全局配置,以防万一升级过程中出现问题。

  • 检查依赖:升级Yarn可能会影响你的项目依赖,确保在升级后重新运行yarn install来安装最新的依赖版本。

  • 测试:在生产环境中升级之前,建议在开发或测试环境中先进行升级,确保新版本不会影响现有功能。

7.3 升级流程

升级Yarn的一般流程如下:

  1. 查看当前版本:使用命令yarn --version来查看当前Yarn的版本。
  2. 获取最新版本:通过上述任一方法获取Yarn的最新版本。
  3. 验证安装:升级完成后,再次使用yarn --version来验证是否升级成功。
  4. 更新项目依赖:运行yarn install来确保所有依赖都是最新的,并且与新版本的Yarn兼容。

7.4 升级后的验证

升级后,可以通过以下方式验证Yarn是否正常工作:

  • 运行项目:尝试运行你的项目,确保一切正常运行。
  • 检查依赖:查看package.jsonyarn.lock文件,确保所有依赖都已正确安装。
  • 使用Yarn命令:尝试使用一些常用的Yarn命令,如yarn addyarn remove等,以确保命令行工具的功能正常。

通过上述步骤,你可以确保Yarn的升级过程顺利,并且不会影响你的开发工作。

如果这篇文章对你有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢你的细心阅读,如果你发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理。

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

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

相关文章

【React】事件绑定、React组件、useState、基础样式

React 教程 目录 事件绑定 1.1. 基础实现 1.2. 使用事件参数 1.3. 传递自定义参数 1.4. 同时传递事件对象和自定义参数 React 组件 2.1. 组件是什么 2.2. 组件基础使用 useState:状态管理 3.1. 基础使用 3.2. 状态的修改规则 3.3. 修改对象状态 基础样式 4.1. 行…

基于Web的特产美食销售系统的设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

HardeningMeter:一款针对二进制文件和系统安全强度的开源工具

关于HardeningMeter HardeningMeter是一款针对二进制文件和系统安全强度的开源工具,该工具基于纯Python开发,经过了开发人员的精心设计,可以帮助广大研究人员全面评估二进制文件和系统的安全强化程度。 功能特性 其强大的功能包括全面检查各…

抖音seo短视频账号矩阵系统源码-SaaS开源部署流程开发者技术分享

抖音seo账号矩阵系统,短视频矩阵系统源码, 短视频矩阵是一种常见的视频编码标准,通过多账号一键授权管理的方式,为运营人员打造功能强大及全面的“矩阵式“管理平台。使用矩阵系统也能保证账号的稳定性,降低账号的风险…

客户端与服务器通讯详解(3):如何选择合适的通讯方式

上篇文章中,我们讲解了客户端与服务器通讯详解(2):12种常见通讯方式,重点讲解了http、websocket和RESTful API三种,本文我们继续讲解如何依据场景选择最合适的通讯方式。欢迎友友们点赞评论。 一、客户端服…

基于 asp.net家庭财务管理系统设计与实现

博主介绍:专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用感兴趣的可以先…

Linux 下 ElasticSearch 集群部署

目录 1. ElasticSearch下载 2. 环境准备 3. ElasticSearch部署 3.1 修改系统配置 3.2 开放端口 3.3 安装 ElasticSearch 4. 验证 本文将以三台服务器为例,介绍在 linux 系统下ElasticSearch的部署方式。 1. ElasticSearch下载 下载地址:Past Rel…

vue3+ts+vite项目中使用vite-plugin-pwa搭建 PWA 项目

参考官方github地址: https://github.com/vite-pwa/vite-plugin-pwa 官方文档地址: https://vite-pwa-org.netlify.app/guide MDN地址: https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps 前提概要 最近项目更新需求中&am…

资源管理大师:如何在Gradle中配置资源目录

资源管理大师:如何在Gradle中配置资源目录 在软件开发中,资源管理是项目构建过程中的一个重要环节。资源通常包括配置文件、图片、样式表、本地化文件等,它们对于应用程序的运行至关重要。Gradle作为一个灵活且功能强大的构建工具&#xff0…

【C++】类和对象·this指针

C中的类与C语言中的结构体有很多的相似的地方,可以说本质上除了结构体只能定义成员变量,以及结构体默认的访问控制权限是public之外与class没啥区别。但是结构体变量每次调用函数的时候需要指针,而类中的成员函数明明被保存在公共代码段&…

php 方法追踪其被调用的踪迹

一、遇到的问题 一个公共方法,有多个调用入口,快速排查到其被调用的入口 二、解决 使用debug_backtrace(),其记录了调用方法的所有上层方法,如下为打印的debug_backtrace()的数据,从键值0开始,依次往上一…

Hive第三天

1. 后台启动HIVE的JDBC连接 0 表示标准输入 1 表示标准输出 2 表示标准错误输出 nohup 表示挂起 最后的 & 表示 后台启动 nohup hive -service hiveserver2 > /usr/local/soft/hive-3.1.2/log/hiveserver2.log 2>&1 & jps 查看 Runj…

30秒学会UML-功能类图

目录 1、类图本体 三部分 修饰符 2、类与类直接关系 泛化关系 实现关系 简单关联关系 依赖关系 组合关系 聚合关系 1、类图本体 三部分 第一层:类名第二层:成员变量(类的属性)第三层:函数方法(类…

水利行业的智慧革命:深度剖析智慧水利解决方案,看其如何以科技力量提升水资源管理效率,保障水生态安全

目录 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心要素 1. 感知层:全面监测,精准感知 2. 网络层:互联互通,信息共享 3. 平台层:数据分析,智能决策 4. 应用层:精准施策&#xff0…

【线程系列之五】线程池介绍C语言

一、基本概念 1.1 概念 线程池(Thread Pool)是一种基于池化技术管理线程的机制,旨在减少线程创建和销毁的开销,提高系统资源的利用率,以及更好地控制系统中同时运行的线程数量。线程池通过预先创建一定数量的线程&am…

3 C 语言运算符深度解析:从基础到实战

目录 1 运算符分类 2 算术运算符与算术表达式 2.1 算术运算符的用法 2.2 左操作数和右操作数 3 关系运算符与关系表达式 3.1 关系运算符的用法 3.2 常量左置防错 3.3 三数相等判断误区 4 逻辑运算符与逻辑表达式 4.1 逻辑运算符的用法 4.2 闰年的判断 4.3 短路运算…

golang单元测试性能测试常见用法

关于go test的一些说明 golang安装后可以使用go test工具进行单元测试 代码片段对比的性能测试,使用起来还是比较方便,下面是一些应用场景 平时自己想做一些简单函数的单元测试,不用每次都新建一个main.go 然后go run main.go相对某个功能做下性能测试 看下cpu/内存…

k8s集群 安装配置 Prometheus+grafana+alertmanager

k8s集群 安装配置 Prometheusgrafanaalertmanager k8s环境如下:机器规划: node-exporter组件安装和配置安装node-exporter通过node-exporter采集数据显示192.168.40.180主机cpu的使用情况显示192.168.40.180主机负载使用情况 Prometheus server安装和配置…

自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo

参考:全景和标定全功能算法实现和exe测试demo-金书世界 1、测试环境 opencv310vs2022 2、使用的编程语言 c和c 3、测试的demo的获取 更新:测试的exe程序,无需解压码就可以体验算法测试效果 百度网盘: 链接:http…

代码随想录学习 54day 图论 Bellman_ford 算法精讲

Bellman_ford 算法精讲 卡码网:94. 城市间货物运输 I 题目描述 某国为促进城市间经济交流,决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从某个城市单向通行到另一个城市&#xf…