包管理工具--》yarn的配置及使用

news2024/12/28 12:29:20

包管理工具系列文章目录

一、包管理工具--》npm的配置及使用(一)

二、包管理工具--》npm的配置及使用(二)

目录

🌟yarn 简介

🌟yarn 的核心命令

初始化

安装

脚本和本地CLI

查询

更新

卸载

🌟yarn 的其他命令

🌟 写在最后 


🌟yarn 简介

yarn 官网:https://yarnpkg.com/

yarn 是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,它仍然使用 npm 的registry,不过提供了全新 CLI 来对包进行管理

过去,yarn 的出现极大的抢夺了 npm 的市场,甚至有人戏言,npm 只剩下一个 registry 了。

之所以会出现这种情况,是因为在过去,npm 存在下面的问题:

  • 依赖目录嵌套层次深:过去,npm 的依赖是嵌套的,这在 windows 系统上是一个极大的问题,由于众所周知的原因,windows 系统无法支持太深的目录
  • 下载速度慢
    • 由于嵌套层次的问题,所以npm对包的下载只能是串行的,即前一个包下载完后才会下载下一个包,导致带宽资源没有完全利用
    • 多个相同版本的包被重复的下载
  • 控制台输出繁杂:过去,npm 安装包的时候,每安装一个依赖,就会输出依赖的详细信息,导致一次安装有大量的信息输出到控制台,遇到错误极难查看
  • 工程移植问题:由于 npm 的版本依赖可以是模糊的,可能会导致工程移植后,依赖的确切版本不一致。

针对上述问题,yarn 从诞生那天就已经解决,它用到了以下的手段:

  • 使用扁平的目录结构
  • 并行下载
  • 使用本地缓存
  • 控制台仅输出关键信息
  • 使用yanr-lock文件记录确切依赖

不仅如此,yarn还优化了以下内容:

  • 增加了某些功能强大的命令
  • 让既有的命令更加语义化
  • 本地安装的CLI工具可以使用 yarn 直接启动
  • 将全局安装的目录当作一个普通的工程,生成package.json文件,便于全局安装移植

yarn 的出现给 npm 带来了巨大的压力,很快,npm 学习了 yarn 先进的理念,不断的对自身进行优化,到了目前的npm6版本,几乎完全解决了上面的问题:

  • 目录扁平化
  • 并行下载
  • 本地缓存
  • 使用package-lock记录确切依赖
  • 增加了大量的命令别名
  • 内置了npx,可以启动本地的CLI工具
  • 极大的简化了控制台输出

在npm6 之后,可以说npm已经和yarn非常接近,甚至没有差距了。很多新的项目,又重新从yarn转回到npm。但这两个包管理器是目前的主流,都必须要学习。

🌟yarn 的核心命令

初始化

初始化:yarn init [--yes/-y]

安装

添加指定包:yarn [global] add package-name [--dev/-D] [--exact/-E]

安装package.json中的所有依赖:yarn install [--production/--prod]

脚本和本地CLI

运行脚本:yarn run 脚本名

start、stop、test可以省略run

运行本地安装的CLI:yarn run CLI名

查询

查看bin目录:yarn [global] bin

查询包信息:yarn info 包名 [子字段]

列举已安装的依赖:yarn [global] list [--depth=依赖深度]

yarn的list命令和npm的list不同,yarn输出的信息更加丰富,包括顶级目录结构、每个包的依赖版本号

更新

列举需要更新的包:yarn outdated

更新包:yarn [global] upgrade [包名]

卸载

卸载包:yarn remove 包名

🌟yarn 的其他命令

在终端命令上,yarn不仅仅是对npm的命令做了一个改名,还增加了一些原本没有的命令,这些命令在某些时候使用起来非常方便

yarn check

使用yarn check命令,可以验证package.json文件的依赖记录和lock文件是否一致

这对于防止篡改非常有用

yarn audit

使用yarn audit命令,可以检查本地安装的包有哪些已知漏洞,以表格的形式列出,漏洞级别分为以下几种:

  • INFO:信息级别
  • LOW: 低级别
  • MODERATE:中级别
  • HIGH:高级别
  • CRITICAL:关键级别

yarn why

使用yarn why 包名命令,可以在控制台打印出为什么安装了这个包,哪些包会用到它

yarn create

之前安装脚手架,我们都是使用如下的做法:

  1. 全局安装脚手架工具
  2. 使用全局命令搭建脚手架

由于大部分脚手架工具都是以create-xxx的方式命名的,比如react的官方脚手架名称为create-react-app

因此,可以使用yarn create命令来一步完成安装和搭建

例如:

yarn create react-app my-app # 等同于下面的两条命令

yarn global add create-react-app

create-react-app my-app

🌟 写在最后 

包管理工具--》栏目将详细讲解前端包管理器,包括npm,yarn,及其他包管理器,如果文中出现有瑕疵的地方各位通过评论或者私信联系我,我们一起进步,有兴趣的伙伴可以关注订阅一下:点击查看更多实用技巧与知识

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

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

相关文章

Redis:StringRedisTemplate简介

(笔记总结自b站黑马程序员课程) 为了在反序列化时知道对象的类型,JSON序列化器会将类的class类型写入json结果中,存入Redis,会带来额外的内存开销。 为了减少内存的消耗,我们可以采用手动序列化的方式&am…

Python之列表操作和内存模型

Python之列表操作和内存模型 列表list 一个排列整齐的队伍,Python采用顺序表实现 列表内的个体称作元素,由若干元素组成 列表 元素可以是任意对象(数字、字符串、对象、列表等) 列表内元素有顺序,可以使用索引 线性的数据结构 使用 [ ] …

Spring - Cloud (微服务)

SpringCloud 和 SpringBoot 版本选择对应: 版本对应:https://start.spring.io/actuator/info Cloud官网:Spring Cloud 中文网:Spring Cloud中文网-官方文档中文版 在官网可以查看 当前Cloud 推荐的Boot版本: 当前技术…

Yolov8-pose关键点检测:模型轻量化创新 | 轻量级Slim-Neck

💡💡💡本文解决什么问题:轻量级Slim-Neck,缓解 DSC 缺陷对模型的负面影响,并充分利用深度可分离卷积 DSC 的优势。 Slim-Neck | mAP50从0.921提升至0.93, mAP50从0.697提升至0.829 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.net/m0_63774211/category_1…

从0到1构建界面设计系统思维

用户界面(UI)是人与机器之间发生交互的载体,也是用户体验(UX)的一个组成部分。用户界面由两个主要部分组成:视觉设计(即传达产品的外观和感觉)和交互设计(即元素的功能和…

超详解| Yolov8模型手把手调参 | 配置 | 模型训练 | 验证 | 推理

YOLOv8是一款前沿、最先进(SOTA)的模型,基于先前YOLO版本的成功,引入了新功能和改进,进一步提升性能和灵活性。 然而,要充分发挥Yolov8的潜力,合理的参数配置是至关重要的。本文将带您深入了解…

2023年值得推荐的 API 开发工具

数字化时代,应用程序编程接口(API)的重要性愈发凸显。API 充当着应用程序之间的桥梁,促进数据交换和功能集成。随着 API 的不断增加和复杂化,开发对 API 开发工具的要求也越来越高。 我们一起来盘点下 2023年上半年比…

Ant design table实现单选和点击行选中

实现单选 Antd table实现单选非常方便只需要在rowSelection属性里添加type: radio即可。 实现点击行选中 需要用到onRow属性 在onClick事件里面手动设置selectRowKey,跟Table onChange事件一样 onRow{(record) > ({onClick: () > {console.log(record)…

极智开发 | vscode使用ssh加速git操作

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 vscode使用ssh加速git操作。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 之前在 vscode 中主要使用 http …

浅析自动化测试工具的功能与作用

自动化测试工具是一种软件工具,旨在通过脚本或可视化界面自动执行测试任务和验证预期结果。这些工具可以自动识别和执行测试用例,模拟用户操作,比较实际和预期结果,并生成测试报告。自动化测试工具减少了人工干预,提高…

蓝桥杯备赛Day7——算法复杂度分析、前缀和思想

O(nlogn)算法可能达到的最优复杂度。快速排序算法是典型例子。 O(n^2)一个两重循环的算法,复杂度是O(n^2)。例如冒泡排序,是典型的两重循环。 O(n^3)、O(n^4)等等。 O(2n)一般对应集合问题。 例如一个集合中有n个数,要求输出它的所有子集。 O(n!)在集合问题中,如果要求按顺…

算法训练营day42|动态规划 part04(01背包问题基础(两种解决方案)、LeetCode 416.分割等和子集)

文章目录 01背包----二维dp数组01背包----滚动数组416.分割等和子集思路分析背包解法思考总结 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最…

Geek——能力超强的卸载工具

简介 Geek是一款能力超强的卸载工具,旨在帮助用户轻松、彻底地卸载不需要的软件。无论是常见的应用程序、插件还是顽固的垃圾文件,Geek都能够迅速而安全地将其清理殆尽,释放您的存储空间和系统资源。 使用Geek,您可以轻松摆脱不…

【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理

目录 数据清洗和处理 1.处理缺失值 1.1 删除缺失值: 1.2 填充缺失值: 1.3 插值: 2 数据类型转换 2.1 数据类型转换 2.2 日期和时间的转换: 2.3 分类数据的转换: 2.4 自定义数据类型的转换: 3 数…

2023,软件测试人的未来在哪里?

2023年,IT行业出现空前的萧条,首先是年初一开始各大厂像着了魔似的不约而同的纷纷裁员、降薪、奖金包缩水,随之而来的是需求萎缩,HC减少或封锁等等。 而有幸未被列入裁员名单的在职人员,庆幸之余也心有余悸&#xff0…

Excel VSTO开发8 -相关控件

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 8 相关控件 在VSTO开发中,Ribbon(或称为Ribbon UI)是指Office应用程序中的那个位于顶部的带有选…

it运维监控管理平台,统一运维监控管理平台

随着系统规模的不断扩大和复杂性的提高,IT运维管理的难度也在逐步增加。为了应对这一挑战,IT运维监控管理平台应运而生。本文将详细介绍IT运维监控管理平台的作用和优势以及如何选择合适的平台。 IT运维监控管理平台的作用管理平台 IT运维监控管理平台是…

glb数据介绍

目录 1.什么是glb数据?2.glb数据可以用来干什么?3.glb和gltf有什么区别?4.glb数据怎么打开?5.如何创建glb数据?6.glb数据的结构7.glb数据的优缺点8.glb对pbr渲染的帮助 1.什么是glb数据? GLB文件&#xff0…

Ceph中对象读写请求的顺序性和并发控制

分布式系统中经常需要考虑对象(或者记录、文件、数据块等)的读写顺序以及并发访问问题。通常来说,如果两个对象没有共享的资源,就可以进行并发的访问;如果有共享的部分,就需要对这部分资源进行加锁。而对于同一个对象的…

Sentinel1.8.6集成nacos

代码:https://gitee.com/gsls200808/sentinel-dashboard-nacos jar包:https://gitee.com/gsls200808/sentinel-dashboard-nacos/releases/tag/v1.8.6.0 代码如果看不到可能需要登录。 官方参考文档: 动态规则扩展 alibaba/Sentinel Wiki…