admin管理员组

文章数量:1543914

Yarn是什么 00:00:17

那这节课咱们来学习一个新的也是包管理工具什么呢?耶这个看怎么读吧啊关于安安,反正我是读音,你要是觉得发音不准的话,可以百度查一下这个音。

那它什么作用呢?它是跟NPM基本上功能是一样的东西,你就这么看对吧?那现在的程序员两个选其一,也有两个混着用的,就这意思。那他是哪出的呢?是facebook、谷歌谷歌,对吧?

解决的问题 00:00:47

这些联合推出了一个GS的一个包管理工具,它弥补了NPM的一些缺陷出现的。因为在NPM5以前,它会出现比较下边的这些问题。那在什么在这个NPM5之后,因为你比如他为了弥补NPMNPM出现的东西,那NPM肯定着急,对不对?你这给我抢饭碗的,对不对?抢市场的,所以他NPM5怎么的就开始跟你形成一个竞争的关系。那我就再把一些我的缺陷我给弥补上,那再把市场抢回来。所以现在新版的NPM对吧?

00:01:28

你现在你看一下咱们的NPM版本应该是六以上了,对不对?NPM做了一次工。NPM范围你看6.14.9,现在咱们用的是这个版本,对吧?所以新版的是两个差不多的那

官网 00:01:40

https://yarnpkg/

你可以到这个页的这个官网去看啊,就跟那个NPM官网它都有类似的地方,对吧?这是NPM的一个包裹里的官网,那我们在这个位置下可以把它打开这个官网,让他慢慢慢下来,你自己到时候去看就行了,只告诉你官网的这一个位置。

NPM5早期缺陷 00:02:06

那NPM5早期它有什么一些缺陷呢?比如说install的时候卖,你看特别是新的项目拉下来要等半天,对不对?删除它目录的重新意识到的时候,依旧因为咱们有的时候给别人跑项目的时候,会把这个目录删掉,然后重新NTME store的时候往下怎么办?往下去在这个项目对不对?所以说你要知道他的问题。

00:02:30

另外同一个项目多人开发的时候,由于安装的版本不一致出现bug。以前的版本多人开发的时候,版本不一致的时候,会出现兼容性的一些bug,出现这些问题。所以它就出现了,对不对?

yarn的安装 00:02:45

那我们看一下怎么安装,你看它它也是随着node GS过来的那本身它也是一个包,所以我用NPM就可以去装它,对吧?去安装它。

00:02:54

你看安装note GS,那也可以下载它的程序,对不对?你可以也提供了一个文件,你可以下载在windows,直接双击安装也是可以的。然后也可以设置淘宝的镜像,还有什么这个的镜像。

00:03:10

那比如说我们装一下,那我们就用note装,对吧?直接有人用note装,用NPM,我们使用这个直接去装它。

00:03:17

你看我们怎么装in store对吧?我们装什么呢?装你看一下它是不是在全局安装的,耶然后杠G。这样,我们就全局把这个给安装上。

版本 00:03:38

等待一下,装完之后,我们可以看一下它的版本。你看1.22.11对不对?那它的版本是这个,因为后出现的note版本已经六点几了,对不对?当然我们使用这种装置,肯定都是新的版本对吧,就安装上了。

设置淘宝镜像 00:03:56

当然了设置镜像,这个都是一样的。比如说把这个设置一下淘宝的镜像。直接在这儿。安静也没转过来,再重新复制一下,再重新粘贴一下。你看成功的设置的镜像

跟淘跟那个NPM是一个意思对吧?

——》基本使用 00:04:24

那我们来看一下它的基本使用,使用这个IIT也能初始化我们小的项目。我这块是NPM变更这个存储,那我们再新建一个,新建一个项目目录,比如说我们在这个位置再新建一个。这个直接是在这个录下的那我在这块再新建一个新建一个我们叫做YARN这样的一个文件夹,然后我们在这里边文件新建一个项目。选择下边的这个。新窗口来吧就是这个。然后我们在下边的终端下边,你看它在这个目录下对不对?那我们可以直接用它的这个初始化,我们就把也是创建一个配置件。

yarn init 00:05:25

这些过程其实都是怎么的,都是一样的对吧?都是一样的。你比如说我们用YARNINIT去初始化,对吧?跟NPM这个执行的信息是一样的,都会生成package点杰森这样的一个文件。你看输入这个全名,比如说e do work这个版本,1.0.11随便写一个对吧?描述这是test测试,直接回车就行。进行UR多回车就行,或者回车对吧?MIT都回车就行,对不对?然后我们看一下,在这个目录下就生成了这个文件,然后我们在这个文件里边去改,去写东西就ok了对吧?你看是不是很像,对不对?

yarn add xx 00:06:15

我们如果直接YRN什么in store,就会直接安装这里边指定的包。但是这里边一个没有,对不对?那一个没有,那我们就可以指定,比如说jury。没有锁文件,发现错了错了,你不是NPM这俩混了YARN什么?

00:06:38

用ad d记得用ad d添加一个项目,比如说我们叫做Jerry。就可以添加了。添加这个,然后我们看一下这个文件,你看一样在这个位置指定了什么?运行时依赖是这个运行时依赖,当然我们也可以把它删掉,对吧?

yarn remove xx 00:07:00

你可以把它删掉YRN,那我们ad d的时候是添加remove MOVE。比如说删除这个包,咱们叫做你看这块这个文件格式相似,你看都可以转换。这里边你看也相似,对不对?直接删除谁呢?删除这块儿你看就可以把它删除掉。

yarn add xx --dev 00:07:20

当然了我也可以用这个YARNREMOVE,比如说再把它做成开发时候依依点query,比如说杠杠第一位,你不是你添加好ad D。这文件再弄一下,看这个里边就没有了,对不对?运行时依赖里边就没有了,变成开放式依赖,也可以通过这个去用对吧?

00:07:46

那如果这个版本,比如说我们装的是一个低的,也可以指定版本,看着艾特指定版本,那我们也可以去更新。

yarn upgrade 00:07:52

那更新NPM我们使用的是update去更新,比如刚刚save对吧?

那这个页怎么更新呢?YARN使用up GRADE这么去更新,也会更新到当前的最新版本。所以用法你看到了基本上是相似的,所以我们只做了解就行了,看这里边,当然了你可以到他的官方网站里边,这是在官方网站,你可以看一下他的命令行的这些命令。国外的网站太慢了,你可以找一些中文的一个操作手册去使用,当然这两个你会一个就行了,差不多是差不多的那一些常用的一些病例,这里边也给大家写上了。

00:08:29

使用这个install当安装一个单一的包,也可以是这么去使用install的,安装它里边所有的包,你看你看并将包它的所有依赖保存进了这个锁定键。看到了吧?因为NPM原来是没有什么package lock,这个基层文件它有了之后,才将它加到这里边去的。其他命我就不给你一个个试了,你想详细的学的话,你再一个一个去用。也是一个包管理的,这里边都有清除缓存列表,对不对?因为它下载包包会在你本地缓存,所以它速度会比较快,是这样的一个一个一个原因。

优点 00:09:05

我们就看一下它的优点在哪,这是几个命令的一个对比,优点就是速度快。

速度快 00:09:11

那它的速度为什么快呢?主要是来源于两个方面儿。因为一是并行安装,就无论是NPM还是ear在执行包的安装的的时候,都会执行一系列的任务。

  • 那这个NPM是按照队列执行每一个包,也就是说必须要等到当前的包安装完成之后,才能够继续进化安装。
  • 而yarn是同步执行所有任务,这就提高了一个性能点。

离线模式 00:09:34

另外页还有一个叫做离线模式。如果之前已经安装过一个软件包,用液再次安装的时候,它会从这缓存中获取,就不像NPM再从网络上下载了。这是叶儿的一个速度快的一个优点,对吧?

版本统一 00:09:51

另外就版本统一,这也是NPMNPM5以前不足的一个版本。因为页为了防止得到不同的版本儿,有一个锁文件就lock点Jason这文件。在这个文件里边记录了什么?记录了被确切安装的上的一个模块的版本。每次只要新增一模块,这个页就会创建或者更新这个页点lock这样的一个文件。这就是为了能保证什么每次拉取同一个项目依赖的时候,使用的都是一样的模块的这个版本。而NTM其实早期是没有的,但现在其实也有办法实现,相同版本的包了?因为现在它也随着这一页也加了一个这样的一个锁的一个文件。

更简洁的输出 00:10:33

另外页的什么使用更简洁的输出,你看这个命令对不对?更简洁NPM的输出其实信息是比较长的,对不对?你比如说NPM in store包对不对?那么命令会不断的打印出所依赖的包,就是在屏幕上打印出终端打印对不对?而我们在安装的时候,你会发现在这块你看它比较简洁,你看成功对不对?怎么怎么地?简单太多了。所以默认情况下就是只给开发者提供这些需要的信息,不像NPM提供了很多。

00:11:09

但是这个不是用户选择的一个主要的一个原因,对吧?

多注册来源处理 00:11:15

还有多注册来源的一个助理以及一个处理。因为所有的依赖包,不管它被不同的空间间接的关联,你用多少次,当你安装这个包的时候,只会从一个注册来源去装,不像NPM,那会出现一些混乱不一致的一些地方。

00:11:34

当然了,它有一些更好的一些语义化。语义化就是你看NPM install安装这样,你看它这种EADD这种对吧?这样的一个安装的一个对比方式。当然这是优点,那

从npm迁移到yarn 00:11:49

这个优点就决定你从NPM去转换这个。当然了,你可以从AB迁移到页,也可以从页迁移到NPM。这两个在开发的时候,有的成员互相使用,但用法都一致了,都一样的功能对不对?只不过其实那些优点也是没有说出来的,好多人喜欢这个,好多人喜欢这个,萝卜白菜各有所爱,对不对?那你可以从它迁移到它,也可以从页迁移到NPM。

00:12:07

所以说有了这个页压力之后,NPM做了一个类似的改进。在它之前它的优势很明显,但是NPM在5之后,对不对?通过一系列对比可以看出,速度和使用上有很大提升。未知的尝试,咱们现在用六的版本对吧?所以一些东西已经提升了,所以给大家一个建议,迁不迁移?

00:12:24

因为现在毕竟它出来的早,占有市场份额比较大,所以用它的还是比较多的。你就可以这么说,百分之七八十都用它,百分之二三十使用它,对不对?但是这节课能讲这个目的的时候,不是说非得让你用这个页,只是让你知道在项目组里边有用这个的对吧?或者面试问到你,你也不知道是什么对吧?其实就是一个东一样的东西,类似的东西。所以说如果你已经在个人项目上使用它了,并且没有遇到更多问题,那目前完全可以计时对吧?你也用它的计时,但如果有兼容NPM的场景,以及还没有切换到它项目时,那么现在就可以一直用NPM5以上了,或者现在NPM6了,对吧?

00:12:59

这是给大家的一个建议,这节课我们就讲到这里。当然了到这里NPM的东西也就讲到这里了。也没什么,你也不用说去找更多的,你只要把我这几节课讲的内容你全消化掉,多做实验就够了。

00:13:17

如果有的时候都不太熟悉怎么办呢?没关系,后边咱们web pad以及咱们到VOE react的时候,咱们都会一直用的,用的次数多了你就会很熟的,好吧。无非就那几个命令,比学LINUX那些命令还容易一些。当然了,必须在网络的支持下,来回下载安装是这样的一个过程。不光是下载安装,还得在与项目结合。不仅项目结合,我们还得打包编译运行,有这样的一个过程。逻辑上稍稍感觉是复杂一些,不像以前我们写java 2的那些程序,直接在页面一写就ok了,对吧?

00:13:50

在那种开发方式已经过时了。现在基本上都是服务器在线上使用框架的一个时代,好吧?当然了,有可能以后现在是2021对不对?以后比如说到2 0025年对不对?他有可能又全变样了。所以说学前端很累的,种种东西去变。当然了你如果是一个程序员的话,那一定是不断的学习的,不断接触新的东西。好,谢谢大家,这节课我们就讲到这里。

本文标签: npmyarn