yarn 简介

yarn 官网:https://www.yarnpkg.com/zh-Hans/

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

过去,yarn 的出现极大的抢夺了 npm 的市场。

之所以会出现这种情况,是因为在过去,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 -y / yarn init --yes

安装:

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

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

脚本和本地CLI:

1、运行脚本:yarn run 脚本名

> start、stop、test可以省略run

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

查询:

1、查看bin目录:yarn [global] bin

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

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

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

更新:

1、列举需要更新的包:yarn outdated

2、更新包: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

安装和搭建脚手架工具:yarn create 脚手架名称 文件名

等同于下面的两条命令:
yarn global add 脚手架名称
脚手架名称 文件名

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

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

yarn临时目录 没有jar包_复习之yarn相关推荐

  1. idea将指定目录打成jar包

    文章目录 idea将指定目录打成jar包 idea将指定目录打成jar包 首先,idea没有标记源码目录, 直接将源码打包成jar包的方法,需要找到编译后的class目录进行绑定. 其次,说一下本次的 ...

  2. AndroidStudio生成自定义的混淆jar包(同时将assets目录打入jar包)(二)(by 星空武哥)

    转载请标注原文地址:http://blog.csdn.net/lsyz0021/article/details/53107595 在以前曾经写过两篇文章,关于是生成jar包和引用jar的文章,建议先看 ...

  3. k8s部署jar包_学习K8S之路.6--- 在K8S中部署Jenkins,并使用Jenkins打包jar包

    一:部署jenkins jenkins官网:https://jenkins.io/download/ jenkins镜像:https://hub.docker.com/r/jenkins/jenkin ...

  4. hadoop jar包_快速搭建Hadoop-Hive-Zoopkeeper-Sqoop环境进入Sqoop学习环境

    CDH简单了解 CDH: C:cloudera(公司) D:distribute H:Hadoop 解决了大数据Hadoop 2.x生态系统中各个框架的版本兼容问题,不用自己编译, CDH适合商用,版 ...

  5. kafka jar包_和同事交流不会kafka怎么行,API奉上,不是大神也能编

    对于kafka真的是又爱又恨,作为架构和大数据两个方面的通用者, 在这个数据量称雄的时代,越来越起到至关重要的作用,在和同事进行交流的时候,kafka在开发的过程中如何使用能起到最大的效果成为话题之一 ...

  6. lib目录和maven dependency目录的jar包冲突

    用eclipse时新建项目时,会在lib目录下自动生成一些jar包,然后又在pom.xml文件中添加了依赖,导致lib下的jar包和maven dependency目录下的jar包产生了冲突.刚开始r ...

  7. hibernate jar包_源码分析 | 咋嘞?你的IDEA过期了吧!加个Jar包就破解了为什么?

    推荐阅读: 阿里P8架构师"呕心沥血"1年总结出这份Linux基础到进阶学习文档 年前面试京东3面凉经~ 面试过程与真题全分享+备战春招(java) 一.前言介绍 2020年了,对 ...

  8. eclipse导入jar包_在命令行上操作JAR,WAR和EAR

    eclipse导入jar包 尽管Java IDE和许多图形工具使查看和操作Java归档文件(JAR,WAR和EAR)文件的内容比以往更加容易,但有时我还是更喜欢使用命令行jar命令来完成这些任务. 当 ...

  9. springboot引入lib包_springboot项目打包引入lib目录下jar包

    1.首先项目引入jar包 resources下创建lib目录 pom文件中引入jar com.topsoft cms-pak 0.0.1-SNAPSHOT system ${project.based ...

最新文章

  1. netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解
  2. react 自定义 TabBar 组件
  3. 【docker】常用命令
  4. ArcGIS AddIN开发异常之--修饰符“static”对该项无效
  5. c和c++的结构体使用
  6. 【下班后学Android】Android开发环境搭建
  7. IEEE 迎来首位华人主席,马里兰大学终身教授刘国瑞当选
  8. 剑指OFFER之把数组排成最小的数(九度OJ1504)
  9. 一次Mysql服务不断重启排查,原因竟然是它
  10. Studio系列教程来啦
  11. Yann LeCun送你的春节大礼:免费学习全部2020春季深度学习课程
  12. RecyclerView异步加载图片
  13. windows 10上fastboot无法识别设备问题
  14. android抓取微信朋友圈,一种快速提取Android微信朋友圈数据的方法
  15. word批量转换为pdf python脚本
  16. 电工电子技术计算机用学吗,电工电子技术第4版学习指导与习题解答(电子电气基础课程规划教材)...
  17. 踩坑之路---JWT验证
  18. linux执行脚本中方法,Linux中执行shell脚本命令的4种方法总结
  19. 在Unity2018如何使用代码一键设置Icon
  20. 一次性学会如何选择合适的APS系统

热门文章

  1. 详解CorelDRAW中如何合并与拆分对象
  2. POI读取Excel内容格式化
  3. Google AdSense广告被屏蔽
  4. SqlServer 更改sa密码
  5. WCF系列_分布式事务(下)
  6. ftp网页版服务器地址,免费ftp服务器地址汇总
  7. 信息学奥赛一本通 1265:【例9.9】最长公共子序列
  8. 动态规划 —— 背包问题 P01 —— 0-1背包
  9. 11 WM配置-主数据-定义冻结原因(Blocking Reason)
  10. 14 CO配置-控制-内部订单-维护定单编号范围