yarn保姆级安装和使用

news2025/1/21 15:42:05

目录

前言

一、yarn简介

主要特性

使用场景

二、yarn的安装

yarn的下载

配置环境变量

三、yarn的常用命令

四、yarn的常用配置项

五、npm与yarn的区别

前言

        本文旨在介绍如何安装和使用Yarn,以及它的一些常见用法。我们将从Yarn的基本概念开始,逐步深入介绍其安装和使用方法,并分享一些实用的技巧和注意事项。无论你是刚入门的新手还是有一定经验的开发者,相信本文都能给你带来一些帮助和启发。

一、yarn简介

        Yarn是一个快速、可靠、安全的JavaScript包管理工具,由Facebook、Google、Exponent和Tilde等团队共同开发和维护。它的主要目标是解决npm(Node Package Manager)在包管理过程中的一些常见问题,如安装速度慢、包版本不一致等。Yarn通过引入缓存、并行安装和确定性安装等特性,大大提高了包管理的效率和可靠性。

主要特性

  1. 速度快:Yarn使用本地缓存来存储已下载的包,避免了重复下载,从而显著提高了安装速度。同时,Yarn还支持并行安装,可以同时处理多个包的下载和安装,进一步加快了安装过程。

  2. 安全可靠:Yarn使用了一种称为“确定性安装”的算法,确保在不同环境下安装的包版本和依赖关系都是一致的。这有助于减少由于包版本不一致导致的各种问题和错误。

  3. 简洁易用:Yarn的命令行界面简洁明了,易于使用。它提供了与npm类似的命令集,同时还增加了一些新的功能和选项,以满足开发者的不同需求。

  4. 兼容性好:Yarn与npm具有良好的兼容性。它可以直接使用npm的仓库(registry)和包(package),无需进行任何修改。这使得开发者可以轻松地在Yarn和npm之间进行切换,而无需担心兼容性问题。

  5. 扩展性强:Yarn支持插件系统,开发者可以根据自己的需求编写插件来扩展Yarn的功能。这使得Yarn具有很高的灵活性和可扩展性,可以满足不同项目的不同需求。

使用场景

        Yarn适用于各种JavaScript项目,尤其是大型和复杂的项目。在开发过程中,开发者可以使用Yarn来管理项目的依赖关系、构建过程、测试运行等各个方面。同时,Yarn还可以与各种构建工具(如Webpack、Rollup等)和测试框架(如Jest、Mocha等)进行集成,提供完整的项目管理和开发体验。

二、yarn的安装

首先需要先下载NodeJS并进行npm的配置

yarn的下载

npm install -g yarn
npm uninstall yarn -g  //yarn卸载

配置环境变量

复制yarn的bin目录地址

配置环境变量

添加yarn\bin系统变量-path 中,是为了 在windows-cmd中能启动 npm.cmd 文件!!

  • 重要! 记得重新打开dos窗口(不管修改什么程序的环境变量,都必须重新打开dos窗口,才会生效)

三、yarn的常用命令

yarn -v  // 查看yarn 版本
yarn config list  // 查看yarn配置
yarn config get registry   // 查看当前yarn源

// 修改yarn源(此处为淘宝的源)
yarn config set registry https://registry.npm.taobao.org  

// yarn安装依赖
yarn add 包名          // 局部安装
yarn global add 包名   // 全局安装

// yarn 卸载依赖
yarn remove 包名         // 局部卸载
yarn global remove 包名  // 全局卸载(如果安装时安到了全局,那么卸载就要对应卸载全局的)

// yarn 查看全局安装过的包
yarn global list  


npm install -g yarn  // 安装yarn 
yarn --version       // 安装成功后,查看版本号
md yarn   // 创建文件夹 yarn  
cd yarn   // 进入yarn文件夹 

初始化项目 
yarn init // 同npm init,执行输入信息后,会生成package.json文件

yarn的配置项: 
yarn config list // 显示所有配置项
yarn config get <key> //显示某配置项
yarn config delete <key> //删除某配置项
yarn config set <key> <value> [-g|--global] //设置配置项

安装包: 
yarn install         //安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock
yarn install --flat  //安装一个包的单一版本
yarn install --force         //强制重新下载所有包
yarn install --production    //只安装dependencies里的包
yarn install --no-lockfile   //不读取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock
添加包(会更新package.json和yarn.lock):

yarn add [package] // 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中
yarn add [package]@[version] // 安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数
yarn add [package]@[tag] // 安装某个tag(比如beta,next或者latest)

//不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型:
yarn add --dev/-D // 加到 devDependencies
yarn add --peer/-P // 加到 peerDependencies
yarn add --optional/-O // 加到 optionalDependencies

//默认安装包的主要版本里的最新版本,下面两个命令可以指定版本:
yarn add --exact/-E // 安装包的精确版本。例如yarn add foo@1.2.3会接受1.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3版
yarn add --tilde/-T // 安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接受1.2.9,但不接受1.3.0

yarn publish // 发布包
yarn remove <packageName>  // 移除一个包,会自动更新package.json和yarn.lock
yarn upgrade // 更新一个依赖: 用于更新包到基于规范范围的最新版本
yarn run   // 运行脚本: 用来执行在 package.json 中 scripts 属性下定义的脚本
yarn info <packageName> 可以用来查看某个模块的最新版本信息

缓存 
yarn cache 
yarn cache list # 列出已缓存的每个包 
yarn cache dir # 返回 全局缓存位置 
yarn cache clean # 清除缓存

四、yarn的常用配置项

1.Registry配置

作用:设置Yarn下载包时的源。默认是npm的官方源,但在国内可能会因为网络问题导致下载速度较慢,因此可以设置为淘宝源等国内镜像源以加速下载。

使用yarn config set registry <registry-url>命令进行设置。
例如,设置为淘宝源:yarn config set registry https://registry.npm.taobao.org。

2.全局安装位置

作用:设置Yarn全局安装包的路径。这有助于开发者管理全局安装的包,避免与其他项目或系统文件产生冲突。

使用yarn config set global-folder "<your_path>"命令进行设置。
<your_path>替换为你想要设置的全局包安装路径。

3.查看当前配置

作用:查看Yarn的当前配置信息,包括registry、全局安装位置等。

yarn config list

4.查看特定配置项

作用:如果只需要查看某个特定配置项的值,可以使用该命令。

yarn config get <key>,将<key>替换为要查看的配置项名称。

5.删除配置项

作用:如果需要删除某个配置项,可以使用该命令。

yarn config delete <key>,将<key>替换为要删除的配置项名称。

6.设置配置项

作用:除了上述提到的registry和全局安装位置外,Yarn还支持其他配置项的设置,如代理、认证等。

使用yarn config set <key> <value>命令进行设置。
<key>为配置项名称,<value>为要设置的值。如果需要全局设置,可以添加-g或--global参数。

7.其他常用命令

初始化项目:yarn init,用于创建一个新的项目并生成package.json文件。

安装依赖:yarn或yarn install,用于安装package.json中列出的所有依赖项。

添加依赖:yarn add <package>,用于在当前项目中添加一个依赖项。

升级依赖:yarn upgrade <package>,用于升级项目的某个依赖项到最新版本。

移除依赖:yarn remove <package>,用于从项目中移除一个依赖项。

全局安装依赖:yarn global add <package>,用于全局安装一个依赖项。

五、npm与yarn的区别

  1. 性能和速度
    • npm在安装和下载依赖时默认采用串行的方式,可能会导致性能上的瓶颈,特别是在项目依赖较多的情况下。
    • yarn则通过并行安装和缓存机制来优化性能。它支持同时下载多个依赖项,并且能够利用缓存来避免重复下载,从而显著提高了安装速度。
  2. 缓存机制
    • npm的缓存机制相对较弱,如果网络条件不佳,可能会导致重复下载和安装。
    • yarn具有更强大的缓存机制,能够更好地利用缓存来减少重复下载,节省时间和带宽。这对于团队协作和构建机器上的重复构建特别有益。
  3. 安全性
    • npm提供了安全功能,如审计和锁定文件,但安全性稍低。
    • yarn在包的下载和安装过程中更加注重安全性。它使用yarn.lock文件来锁定依赖项的版本,确保在不同环境下使用的是相同的依赖版本,减少由于依赖项版本不一致导致的问题。此外,yarn还引入了Yarn Audit功能,用于检查项目的依赖项是否有已知的安全漏洞。
  4. 命令行界面(CLI)
    • npm的命令行界面较为简洁,但输出信息可能较为冗长。
    • yarn提供了更友好和直观的命令行界面,显示更详细的信息,如安装进度、依赖关系树等。这使得输出更加清晰易读,提高了用户体验。
  5. 生态系统
    • npm是Node.js生态系统的默认包管理工具,拥有庞大的包库和活跃的社区支持。大多数开源项目和文档都以npm为主要的依赖管理工具。
    • yarn虽然用户数量在不断增加,但npm仍然是广泛使用的。然而,yarn在某些方面(如性能和安全性)提供了改进,因此在一些项目中可能更受欢迎。
  6. 版本管理
    • npm通过package-lock.json文件来锁定依赖项的版本,但需要在项目中手动执行npm shrinkwrap命令来生成该文件。
    • yarn使用yarn.lock文件来锁定依赖项的版本,并且该文件是自动生成的。这确保了每次拉取同一个项目依赖时,使用的都是一致的模块版本。
  7. 易用性
    • npm的命令简单直观,容易上手。
    • yarn在易用性方面提供了一些改进,如更简洁的输出和更友好的命令行界面。然而,yarn相对于npm来说可能有一定的学习曲线,配置和使用相对复杂一些。

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

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

相关文章

[C#]使用OpenCvSharp图像滤波中值滤波均值滤波高通滤波双边滤波锐化滤波自定义滤波

在使用OpenCvSharp进行图像滤波处理时&#xff0c;各种滤波方法都有其特定的用途和效果。以下是对中值滤波、均值滤波、高通滤波、双边滤波、锐化滤波和自定义滤波的详细解释和归纳&#xff1a; 中值滤波&#xff08;MedianBlur&#xff09; 原理与作用&#xff1a;中值滤波是…

学习Canvas过程中2D的方法、注释及感悟一(通俗易懂)

1.了解Canvas&#xff1a; Canvas是前端一个很重要的知识点&#xff0c;<canvas>标签用于创建画布绘制图形&#xff0c;通过JavaScript进行操作。它为开发者提供一个动态绘制图形的区域&#xff0c;用于创建图标、游戏动画、图像处理等。 对于能够熟练使用Canvas的开发者…

Python报错:IndentationError: unexpected indent问题的解决办法及原因

解决Python报错&#xff1a;IndentationError: unexpected indent问题的解决办法及原因 Python是一种注重可读性的编程语言&#xff0c;它使用缩进来定义代码块。如果你遇到了IndentationError: unexpected indent的错误&#xff0c;这意味着Python解释器在代码中遇到了意外的缩…

qq号码采集软件

寅甲QQ号码采集软件, 一款采集QQ号、QQ邮件地址&#xff0c;采集QQ群成员、QQ好友的软件。可以按关键词采集&#xff0c;如可以按地区、年龄、血型、生日、职业等采集。采集速度非常快且操作很简单。

网络基础_02

1.ARP协议 地址解析协议&#xff08;Address Resolution Protocol&#xff09; 已知对方的三层ip地址&#xff0c;需要二层mac地址 当一台设备&#xff08;请求方&#xff09;需要知道某个 IP 地址对应的 MAC 地址时&#xff0c;会使用 ARP封装一个数据帧。这台设备的网络层以…

【Androi】安卓发展历程详解

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

Socket编程权威指南(二)完美掌握TCP流式协议及Socket编程的recv()和send()

在上一篇文章中&#xff0c;我们学习了Socket编程的基础知识&#xff0c;包括创建Socket、绑定地址、监听连接、接收连接等操作。然而&#xff0c;真正的套接字编程远不止于此。本文将重点介绍TCP 流式协议&#xff0c;什么是粘包问题&#xff1f;如何解决粘包问题 &#xff1f…

c#与汇川plc通信 使用官网API库

前言 上位机开发中有时会要求与PLC进行通信&#xff0c;汇川官网也有好用的API库方便大家使用。记录一下开发过程。 1.下载资料 汇川官网地址&#xff1a;汇川技术 - 推进工业文明 共创美好生活 打开后选择&#xff1a;服务与支持-》资料下载-》 资料下载 这里可以直接搜索&am…

了解光伏储能技术的应用场景和优势

光伏发电是指利用太阳能电池板将太阳光转化为电能的过程。其优点在于清洁、高效、可再生&#xff0c;但光伏发电需要同时也存在间歇性和不稳定性问题。为了解决这一问题&#xff0c;光伏储能技术得到了广泛应用。其基本原理是将白天无法消耗的电能储存起来&#xff0c;以供需要…

Tensorflow音频分类

tensorflow https://www.tensorflow.org/lite/examples/audio_classification/overview?hlzh-cn 官方有移动端demo 前端不会 就只能找找有没有java支持 注意版本 注意JDK版本 package com.example.demo17.controller;import org.tensorflow.*; import org.tensorflow.ndarra…

数据库-列的完整性约束-概述

引言 我们都知道人以群分 &#xff0c;但分为 若按照 人类的皮肤分类 黄种人&#xff08;其实是西方人定义&#xff09;我们虽然不承认也不否定 &#xff0c;黑皮肤 &#xff0c;棕色人种&#xff08;在南太平洋和西太&#xff09;白种人 排名你懂的 这好像是枚举类型 emm 尴尬…

数组中寻找符合条件元素的位置(np.argwhere,nonzero)

今天遇到一个问题&#xff0c;就是寻找符合条件的元素所在的位置&#xff0c;主要使用np.argwhere和nonzero函数 比如给我一个二维数组&#xff0c;我想知道其中元素大于15的位置 方法1 import numpy as np exnp.arange(30) enp.reshape(ex,[3,10]) print(e) print(e>15…

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术&#xff0c;使用给定视图的alpha通道掩码该视图。在SwiftUI中&#xff0c;它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义&#xff1a; func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…

51单片机-LCD液晶显示

目录 前言: 一. LCD1602模块简介 二. 代码功能实现 三.总结 前言: 本文主要是51单片机的LCD液晶显示,使用的是LCD1602.下面是详细介绍和完整代码,欢迎大家的点赞,评论和关注.感谢. 一. LCD1602模块简介 LCD1602 模块具有以下特点&#xff1a; 显示特点&#xff1a; 可以…

Linux系统之部署Blog-Index导航页

Linux系统之部署Blog-Index导航页 一、Blog-Index介绍1.1 Blog-Index简介1.2 Blog-Index特点1.3 Blog-Index使用场景 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍2.3 Yarn介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统是否安装yarn 四…

通过调用栈快速探究 Compose 中 touch 事件的处理原理

前言 Compose 视图的处理方式和 Android 传统 View 有很大差别&#xff0c;针对 touch 事件的处理自然也截然不同。 如何在 Compose 中处理 touch 事件&#xff0c;官方已有非常详尽的说明&#xff0c;可以参考&#xff1a;https://developer.android.google.cn/jetpack/comp…

[图解]企业应用架构模式2024新译本讲解11-领域模型4

1 00:00:00,160 --> 00:00:01,870 好&#xff0c;到这里的话 2 00:00:02,620 --> 00:00:05,060 文字处理器的产品对象就生成了 3 00:00:06,880 --> 00:00:09,180 同样下面就是电子表格 4 00:00:10,490 --> 00:00:11,480 电子表格也同样的 5 00:00:11,490 -->…

【Vue】——组件的注册与引用

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

【Java面试】九、微服务篇-SpringCloud(上)

文章目录 1、SpringCloud五大组件2、服务注册和发现2.1 Eurake2.2 Eurake和Nacos的区别 3、Ribbon负载均衡3.1 策略3.2 自定义负载均衡策略 4、服务雪崩与熔断降级4.1 服务雪崩4.2 服务降级4.3 服务熔断 5、服务限流5.1 Nginx限流5.2 网关限流 6、微服务监控7、面试 1、SpringC…

antd vue a-select 搜索

数据结构 list: [{ name: "序号", id: 0, show: true },{ name: "出库单编号", id: 1, show: false },{ name: "wbs元素", id: 2, show: true },{ name: "序号1", id: 3, show: true },{ name: "出库单编号1", id: 4, show…