00:00
大家好,我是学习园地的特约讲师高龙峰,上节课呢,咱们用NPM,呃,下载的包,咱们做了一个小的实验,对吧?呃,目的呢,就是让你了解一下NPM下载包的一个应用,因为呢,咱们学外派,嗯,外派D之前呢,嗯,咱们有些东西用不了,所以呢咱们简单的应用一下,那这节课呢,咱们来学习一个新的也是包管理工具什么呢耶。呃,这个看怎么读吧啊Y,呃,反正是我是读页,呃,你你要是觉得发音不准的话,可以百度查一下这个,那它什么作用呢。它是跟NPM基本上功能是一样的东西,你就这么看对吧,那现在的程序员呢,两个选其一,有两个混着用的,就这意思,那它是哪出的呢?是Facebook,嗯,谷歌啊对吧,这是联合推出了一个JS的一个呃,包管理工具。那他弥补了NPM的一些缺陷出现的,因为呢,在NPM5以前。它会出现比较下边的这些问题。
01:01
那在什么,在这个NPM5之后,因为你比如他为了弥补NPM,呃,NPM出现的东西,那NPM肯定着急啊,对不对,你这跟我抢抢饭碗的嘛,对不对,抢市场的嘛,所以呢,他NPM5呢,怎么的就开始,呃跟你这个形成一个竞争的关系,那我就再把一些我的缺陷我给弥补上,对吧,那再把市场抢回来。所以呢,现在新版的NPM对吧,你现在你看一下咱们NPM版本应该是六以上了吧,对不对NPM。多了一个直播。你看NPM-V,你看6.14.9,现在咱们用的是这个版本对吧。所以呢,新版的是两个差不多的,那你可以到呃,这个页的这个官网去看啊,就跟那个NP官网它都有类似的地方,对吧,这是NM的一个,包括光网,那我们。在这个位置下。可以把它打开这个官网啊,让他慢慢慢下来,你自己到时候去看就行了,只告诉你官网的这一个位置。
02:05
那NPM5早期它有什么一些缺陷呢?比如说install的时候卖。你看特别是新的项目拉下来要等半天对不对,删除他目录呢,重新到的时候呢,依旧,因为咱们有的时候给别人跑项目的时候,会把这个目录删掉,然后重新NTM到的时候往下怎么办?往下去呃拽这个呃这个这个项目对不对。所以说你要知道。呃,他的问题,另外呢,同一个项目多人开发的时候,由于安装的版本不一致,出现bug,以前的版本多人开发的时候,版本不一致的时候呢,会出现这个兼容性的一些bug,会出现这些问题。所以呢,它就出现了,对不对,那我们看一下它怎么安装。你看啊,它呢,也是随头的S过来的,那本身呢,它也是一个包,所以我用NPM就可以去装它,对吧,去安装它,你看安装到的JS呢,那也可以下载它的程序,对不对,你可以也提供了一个这个文件,你可以下载在window能像直接双击安装也是可以的,然后也可以设置淘宝的镜像啊,还有什么这个的镜像,那比如说我们装一下,那我们就用木装吧,对吧,直接呃。
03:10
有人用note装用NPM,呃,我们使用这个直接去装它,你看我们怎么装。In。对吧,然后呢,我们装什么呢,装。看一下它是不是在全局安装的。嗯。然后。装下这样的话,我们就全局把这个给安装上。等待一下,那装完之后呢,我们可以看一下它的版本。你看1.22.11对不对,那它的版本是这个,因为后出现的嘛,漏的版本已经六点几了,对不对。当然我们使用这种装的呢,肯定都是呃,新的版本对吧,就安装上了,当然了设置镜像啊,这个都是一样的,比如说把这个嗯。
04:01
设置一下淘宝的镜像。直接在这。燃气。你加过来。复制一下。很容易粘贴一下,你看成功的设置了镜像是这个对吧。跟跑跟那个,呃,NPM是一个意思,对吧,那我们来看一下它的基本使用,使用这个I it也能初始化,我们想要项目,呃,我这块是NPM,这跟这个冲突,那我们再新建一个吧。新建一个项目。比如说我们在。嗯。这个位置再新建一个。啊,这个直接是在这根路上的。那我在这新建一个,新建一个。那我们叫做Yan。这样的一个文件夹,然后我们在这里边文件。
05:00
新建一个项目。选择。这个下边的。嗯。这个啊。创新窗口来了。啊,就是这个,然后我们在下边的终端下边,你看它在这个幕录下对不对,那我们可以直接用它的这个,呃初始化我们就把也是创建一个配置文件,这些过程呢,其实呢,都是怎么都是一样的,对吧,都是一样的,你比如说我们用呃yr niit去初始化对吧?原NKM这个执行的信息啊是一样的,都会生成package点杰这样的一个文件。你看输入这个全名,比如嗯,Do work这个版本,1.0.11随便写一个对吧,描述这是嗯,Test测试。直接回车就行。呃,这个金像UR都回车就行,坐着回车对吧,呃,MIT。
06:02
不回车就行,对不对,然后我们看一下。在这个目录下就生成了这个文件,然后我们在这个文件里边去改呀,去写东西啊,就OK了。对吧,你看是不是很像对不对。那我们如果直接YRN什么install,就会直接安装这里边指定的包,但这里边一个没有呢,对不对,那一个没有的,那我们就可以指定,比如说query。呃。没有锁文件发现。错了错了啊,不是那个NPM这俩混乱,Ya rn什么用ad,用ad记得啊,用ad添加一个一个项目,比如说我们叫做井二。那就可以添加了。添加这个,然后我们看一下这个文件,你看。一样,在这个位置指定了什么,指定了什么,运行时依赖是这个。一些依赖,当然我们也可以把它删掉,对吧,也可以把它删掉,YRN,那我们ad的时候是添加的remove move,比如说呃,删除这个包,咱们叫做你看这块这个文件格相似,你看都可以转换,这里边你看也相似,对不对。
07:14
直接删除谁呢,删除结块。你那就可以把它呃删除掉,当然我们也可以用这个Yan re o,比如说在把它做成开发时EI解,比如说杠杠第一位。不是添加啊。Ad。啊。就更进在你看这个里边就没有了,对不对,运行式依赖里边就没有了,变成开发式依赖也可以通过呃这个去用对吧,那如果这个版本比如说我们装的是一个低的,也可以指定版本啊,按照at指定版本,那我们也可以去更新,那更新呢NPM我们使用的是update去更新,比如刚刚S对吧?那。这页怎么更新呢?Yan使用up gde这么去更新,也会更新到当前的最新版本,所以用法你看到了基本上是相似的,所以呢,我们只做了解就行了啊,看这里边,呃,当然了,你可以到他的官方网站里边,这是在官方网站,你可以看一下他的命令行的这些,呃,命令。
08:17
国外的网站太慢了啊,你可找一些中文的一个操作手册去使用啊,当然这两个你会一个就行了,差不多是差不多的,那一些常用的一些命令呢,这边给大家写上了。使用这个因当这个安装一个单一的包也可以是这么去使用道的,安装它里边所有的包,你看你看,并将包它的所有依赖保存进了这个锁件。看到了吗?因为NPM原来是没有什么package lock这文件,它有了之后,然后呢才将它加到这里边去的。其他命令就会你一个试了,你想详细的学的话,你再一个一个去用,也是一个包管里的,这里边都有清除缓存列表对不对,因为它下载包包会在你本地缓存,所以它的速度会会比较快。是这样的一个,呃,一个一个原因。
09:03
啊。我们就看一下它的优点在哪。这是几个命令的一个对比啊,优点就是速度快,那它的速度呢,为什么快呢?主要是来源于两个方面啊,因为一是并行安装,就无论是NPM还是页,在执行包的安装的时候呢,都会执行一系列的任务,那这个NPM呢,是按照什么队列执行每一个包?也就是说必须要等到当前的包安装完成之后,才能够继续向后安装,而液呢,是同步执行所有任务,这就提高了一个性能点。另外呢,液还有一个叫做离线模式,如果之前已经安装过一个软件包用页再次安装的时候,那它会呢,从这缓存中过去,就不像NPM再从网络上下载了,这是呃你的一个呃,速度快的一个优点。对吧。另外呢,就版本统一,这也是NPMNPM5以前布局的一个版本。因为页呢,为了防止得到不同的版本,页有一个锁文件,就lock.js这个文件,在这个文件里边呢,记录了什么,记录了被确切安装的呃,上的一个模块的版本。
10:09
每次呢,只要新增一个模块,这个页就会创建或者更新这个页,点lock这样的一个文件。这就是为了能保证什么每次拉取同一个项目依赖的时候,使用的都是一样的模块的这个版本,而NPM其实呢,对吧,早期是没有的,但现在呢,其实呢也有办法实现,对吧,相同版本的包了。对吧,因为现在他也随着这一页也加了一个这样的一个锁的一个文件。另外呢,页的什么使用更简洁的输出,你看这个这个这个命令对不对,更简洁NPM的输出呢,呃,其实信息呢,是比较比较长的对不对,你比如说n PM in store包对不对。那么命令呢?呃,会不断的打印出所依赖的包,就是就是在屏幕上打印出终端打印对不对,而我们在安装的时候你会发现。在这块你看它比较简洁,你看成功对不对,怎么怎么地对吧,这简洁太多了。
11:01
所以呢,默认情况下对吧,那就是呃,只给开发者提供这些需要的信息,不像NPM提供很多,但这个不是用户选择的一个主要的一个一个原因。对吧。还有多注册来源的一个助理,以及一个这个处理,因为所有的依赖包,不管它被不同的库间,呃间接的关联您多少次。当你安装这个包的时候,只会从一个注册来源去装。对吧。不像NPM对吧,那会出现一些混乱不一致的一些地方,那当然了,它有一些更好的一些语义化,语义化呢,就是你看NPM因此的安装这样,你看它这种EB这种对吧,这样的一个安装的一个对比方式。当然这是优点啊,那这优点就决定你从NPM去转换这个吗?当然了,你可以从N迁移作业,也可以同意迁移到NPM,这两密码在开发的时候,有的成员互相使用,但用法都一致了,都一样的功能,对不对?只不过其实那些优点呢,也是又说出来的,好多人喜欢这个,好多人喜欢这个萝卜白菜各有所爱,对不对?
12:03
那你可以从它迁移到他,也可以从页迁移到NPM。所以说有了这个页压力之后,NPM做了一些类似的改进,在它之前它的优势很明显,但是NPM在五之后对不对,通过一系列对比可以看出它速度和使用上有很大提升,所以这尝试咱们现在用六的版本对吧,所以呢一些东西经提升了。所以给大家一个建议,迁不迁移呢?因为现在毕竟他出来的早,占用市场风格比较大,所以用它的还是比较多的,就可以这么说,百分之七八十都用它,百分之二三十使用它,对不对?但是呢,这节课咱们讲这目的的时候,不是说非得让你用这个页,只是让你知道在项目组里边用这个的,对吧,或者面试问到你,你别不知道是什么对吧,其实就是一个东西,一样的东西啊,类似的东西,所以说如果你已经在个人项目上使用它了,并且没有遇到更多问题,那目前完全可以继续使用,对吧,你也用它就继续使用吗?但如果有兼容NPM的场景,以及还没有切换到它项目时,那么现在就可以一直有NPM以上了,比如说现在NPM6了,对吧?这是给大家的一个建议。
13:01
这节课我们就讲到这里。来了到这里呢,呃,NPM的东西也就讲到这里了啊。也没什么,你也不用说去找更多的,你只要把我这几节课讲的内容你全消化掉,都做实验就够了,那如果有的时候都不太熟悉怎么办呢?没关系,后边咱们外pad以及咱们到VE react的时候,对吧,咱们都会一直用的,用的次数多了你就会很熟的,好吧,无非就那几个命理,你学历思维形命理还容易一些,当然了必须在网络的支持下,对吧。来回下载呀,安装是这样的一个过程,不光是下载安装,还得在与项目结合,问你项目结合,我们还得打包编译运行,有这样的一个过程,逻辑上稍稍感觉到复杂一下,不像以前我们写嗯,Java的那些程序啊,直接在页面里写就OK了,对吧?但是那种开发方式已经过时了,现在基本上都是服务器那些页面使用框架的一个时代。好吧。当然了,有可能以后,那现在是2021对不对,那以后比如说到2025年对不对,那有可能又全这样了,所以说去前端很累了,总有东西去变,当然了,你如果是一个程序员的话,那一定是不断的学习的,不断接触新的东西,好,谢谢大家,这节课我们就讲到这里。
我来说两句