00:00
那NPM镜像设置完成之后呢,我们就可以去安装我们的依赖了,那这个依赖呢,是从NPM的这个网站上啊,就是刚才我们设置的这个镜像网站上去安装的啊,所以呢,我们要知道这个安装的命令就是in store啊,比如说我们要安装一个xus,那么就是n PM in install xus,然后我们来看一下。这款写n PM in那艾克啊,然后呢,它回车就可以了,这样的话呢,它就会从我们刚刚设置的那个淘宝镜像上呢,去下载的依赖。我们稍微等一会儿啊。好,这样就下载完了,下载到哪去了呢?大家看这块有个node models目录被自动创建出来了,那么我们的X就下载到这个目录下面了啊,然后这个Dis就是xus的一些源代码文件了,像这个就是嗯,开发版,你像这个呢,Mini这个啊,就是我们的压缩版对吧?好,然后引的时候未来也是引它啊,好然后呢,接下来呢,就是。
01:14
啊,我们像我说的这个NPM和我们的MY一样,它也有相关依赖,比如说你下载这个X,它有一个相关的依赖呢,就是following redire啊,然后他呢,就把这个相关的依赖也给它下载下来了,好吧,然后这个在相关的依赖呢,其实就包含一些HTTP底层的一些东西了啊,我们就不用关心它了,就知道和它相关就可以了,那么同样呢,这个啊n PM in install呢呢,你执行完了之后,它依赖如果下载下来,你会发现在这个拍这点Jason这个文件下,它自动就给咱们添加了一个节点叫dependences,这个是不是跟咱们后端的这个depend如出一辙呀?啊好,里面呢也会定义这个啊依赖的名字,好,这个呢是依赖的版本,那这个呢是我们下载的是哪个版本啊,如果我们下载的时候没有指定版本的话,它下载的就是最新版本啊,所以呢,这个是我们的一个depend s节点,我们说呢,它并不是我们。
02:15
手工配置上去的,它是我下载的时候呢,它自动添加上去的哈,好,然后接下来呢,就是在我们的这个。在这个里面呢,我们还可以啊,这样去写就是n PM in store这块,通常呢,大家有的时候在网上找资料的时候,会看到这有一个杠杠save啊这样的一个参数,这参数什么意思呢?这个参数实际上就是我要把这个这个依赖啊。保存在我的这个pack.jason这个文件的dependence节点下,那很显然这是个默认的参数,也就是说我刚才没写这个参数,它也是这样做的是不是啊,所以这个刚刚save选项呢,是可以不写的啊,这个大家需要知道,然后另外呢,就是我们假设说想下载特定版本的X啊,因为你一下载就是最新版,有的时候呢,最新版可能跟我们当前的这个程序呀,有一些不兼容,那我们就要下载特定的版本,那这怎么做呢?在这地方呢,我们就给它添加一个as符号。
03:17
I的符号,然后呢,I的符号呢,后面就写版本号,比如说我想写加载这个0.18。点0.18.1,那这个就是下载0.18.1这个版本,0.18.2,那我就下载0.18.2这个版本,我就想下载0.18的最后一个版本,因为一般这个最后这个小版本就是bug的升级和bug的修改,所以呢,我们可以就忽略这个最后的小版本的这个统一一致性,直接把它升级到最后小版本的最新版本,那这样的话呢,就点X,那这个下载的呢,就是最最后的。一八版的这个最新的版啊,最新的版,好,那我们来回车。
04:09
好,大家看这个地方呢,它就变成一八版了,是不是啊,那一八版的最新版的是18.1,所以它下载的呢,就是18.1这个版本,那所以呢,这个就是下载特定的依赖,然后另外呢,我们在这个麦当中啊,在这个后端的麦当中,你会发现有的时候呢,我们就是一个依赖包啊,它会有scope,比如说这个scope如果等于test的话,那这就是测试的时候才用啊,实际上我们真正的啊业务代码里面用不上这个test啊,那那真正发布成生产环境的时候,你就不会在生产环境上做单元测试什么的了,对不对,所以呢,你像这种啊scope等于test的这样的包呢,最后在生产环境打包的时候呢,就不会把这些包呢放到我们最终的打包的这个文件里,这样的话呢,可以给有效的给我们最终的打包文件瘦身,就是打包文件的体积没有那么大,没有必要打进去的就不打进去了,是吧?啊所以这个就是生产环境不需要,只是在开发环境需要。
05:09
那么我们的前端也是一样,有一些生,嗯,这个生产环境不需要,只是就是开发的时候需要的啊,像项目代码编译的时候呀,项目代码这个呃,就是呃调错的时时候呀,自动格式化的时候呀,等等等等转码的时候呀,需要的,真正项目发布出去运行的时候就不需要的这些包,那我们呢,也可以把它放在开发依赖里,那么这个怎么去做呢?比如说。有一个开发依赖呢,叫做嗯。Mo啊Mo,嗯,Mock JS,这Mo JS是什么呢?它就是我们在做前端开发的时候,有一些数据啊,必须得从后端取出来,我们那个前端才能展示出来,但是呢,因为是前后端分离开发,所以呢,没有后端数据的时候,或者是说后端程序员还没开发出来的时候,你没有办法调那个后台的正式的接口,你自己在前端就得写一些模拟接口,那么这个Mo GS呢,就是写模拟接口的这样的一个技术啊,所以呢,就是测试的时候,前后端联调之前,前端自己自己啊和自己做单元测试的时候,我们可能呢,会用到Mo JS,但是这个Mo JS我们就不具体的去学了,因为我们自己已经有后端了,我们呢就通过我们的前端直接连我们的后端就行了啊,因为这个对于呃,前端成序来说的话呢,其实也是。
06:35
要学要学一一下的,所以我们呢,就不浪费时间在这儿了,我们知道前端是有这样的工具就可以了,这个就类似于我们后端的什么呢?类似于我们后端的spaer,我们后端的spaer我们上午的时候学了,它是干嘛用的,就是也是前后端开发的过程当中,没有前端页面的时候,对吧,我们怎么去测试呀,我们没有前端页面,我们只能测浏览器地址栏中输入地址,然后测get或者是用postman等等这些工具去测试,那么最方便的还是用Spark了,接口写好了,文档就有了,测试环境也搭起来了,是不是页面也有了啊好,那么这个Mo JS呢,就是针对于没有后端接口的情况下,然后给前端提供模拟接口的啊,所以这个就是Mo GS了。
07:20
好,那所以呢,很显然它不是生产环境上用的,它就是开发的时候用的,所以呢,我们就让它变成开发依赖,那怎么让它变成开发依赖呢?就是杠杠save,杠杆save,刚才我们说了要把这个依赖呢,存到我们当前的这个拍Jason下,再加上一个啊。叫杠D,好,那这个就不是默认的了,必须要这样写,就是我呢要把我的这个依赖呢,存到文件当中,存到拍这次文件当中的配置节点当中,并且呢,我还要存到这个D的配置节点当中,所以呢,我们来看一下飞车。
08:12
好,那这就安好了,安好了之后大家可以发现在这个no的这个里面哈,我们呢,就有了这个开发依赖了Mo JS是吧?Mo JS它可能下面还依赖了很多其他的,比如说像commander啊啊像这个deb呀巴uffer啊MS都是卖Mo JS所依赖的啊,那所以呢,你就依次的自动的就被下载下来了这些东西,好然后呢,那么这个Mo JS呢,你会发现它呢,并没有加在这个底盘CC节点下啊,取而代之的呢,是加在了DD盘CC这个节点下,也就是说明凡是在这个节点下的就是开发以来最后项目其实部署打包的时候呢,他不会把这些啊节点下面的这些。包呢,最后打包到我们的最终的应用程序当中,这样的话呢,就有效的减少了我们最后部署的程序的一个体积啊好,所以这块呢,就是我们的dependences以及d depends啊这样的两个节点,那同时呢,我们的呃这个命令呢,也有一些简写的形式,比如说像这个杠,杠S-D呢,我们有一个简写的形式呢,就是杠大D啊,一个杠,然后大D。
09:25
啊,这个,然后嗯。另外呢,前面的这个in道也有一个简写的形式,就是I啊,所以这样写也可以。所以这个呢,是我们的开发依赖的下载好,然后呢,呃,另外呢,有的时候我们其实这个项目在做完之后啊,有可能呢,我们会传输这个项目,或者是呢,把这个项目放在版本管理工具当中,那传输这个项目和把这个项目放在版本工管理工具当中的时候呢,其实我们都不会传这个not modeldus,因为这个就类似于我们的ma代码仓库似的,就是那个问仓库poitor的,你传项目你没有必要传它,因为传它体积太大了,而且呢,其实到目前为止呢,我们的项目当中呢,实际上它所依赖的内容呢,都。
10:14
已经配置到这个dependences节点下面了,那这就大家再想一想,我们的ma项目,项目是不是只要dependences节点里面有这个依赖,即使你本地代码仓库没有这个依赖,那么你这个项目一打开,这个环境一打开,它会根据你这个配置是不是自动把依赖下载到代码仓库里啊好,那么我们的NPM有没有这样功能呢?也有啊,只要你在这个拍Jason当中已经有了这样的一些节点啊,那么即使你没有note models,我们呢,也可以根据这个节点自动的把note models里面的内容下载下来,所以呢,一般情况下我们在做代码传输的时候啊,在做项目的这个代码的这个把它上传到版本控制器当中的时候,都会忽略这个note models啊,所以我们来测一下吧。比如说在。
11:02
这个地方我们找到我们这个前端代码,然后找到这个NPM,把这个note models呢,咱们直接就给它删掉啊,那这个意思就是我现在比如说有一些其他的源码,当然我现在没有哈,只有package好假设说我现在这个代码已经编写好了,然后呢,传给了另一个人,或者是呢,放到了我们的呃,版本控制器当中,然后你呢,从版本控制器当中把这个代码拉取下来了,那么拉取下来之后发现呢,就没有那个版本库嘛,那怎么办呢?但是你打开拍这次发现呢,这里面有依赖配置,那你可以这样写,就是NPM。NPM直接in install就可以了,或者是NP mi对吧,那它呢,我们前面安装的时候呢,是n PM in install完了一个具体的依赖库的名字,它就会下载一个具体的依赖,现在如果你不写具体的依赖库的名字,就写一个I就回车的话,它就会根据你现有的pack Jason里面所配置的依赖去下载依赖了,所以呢,现在我它就在JA里面,就是X和Mo JS,那你会发现这个note modus刚才被我们删掉了,它又自动的出现了,就是刚才我们这个命令所产生的效果,把刚才的这个XS呀,Mo指甲器呀,以及相关的一些间接依赖呀都给它下载下来了,所以这个就是NP mi的一个作用啊。好,然后呢,这些这几个命令都是咱们在项目当中用到的一些主要的命令,所以这几个命令重点掌握,然后后面我要讲的这两个就不太重要,因为我们几乎用不到啊,这个是update,就是更新啊,比如说我要更新一下我的这个。
12:41
到最新版本n PM update更新卡。
13:01
好,这就更新完了,那它会基于现有的这个版本呢,去做一个最最新版的一个更新啊好好,然后接下来呢,还有就是NPM。On的这个就是什么呀,这个是删除。嗯,然后接下来呢,他就删完了,删完了之后你会发现这个depends里面啊,是不是那个X就没有了,然后我这边刷一下。好,你看X和X相关的一些内容都都被删掉了,所以呢,这两个一般我们在项目开发的时候就很少用啊,因为我们项目开发的时候一般用到什么,用到哪个版本就直接指定就安装就行了,也很少说开发着我要更新它,那你这版本就太不稳定了,是不是也很少说我用着用着我要删掉它,那你一开始你就别下载它是不是?当然了,如果你下错了的话,你是可以用这个把它删掉的啊,那这个是我们这样两个不太常用的这么两个命令,所以呢,大家大家重点掌握的就是什么呀,就是前面的这个NP mi啊,根据p Jason下载一栏还有呢。
14:19
IP mi-D,这个是下载开发依赖,还有呢就是NP mi,然后依赖名,这个就是下载依赖啊啊,那当然了,这个I呢是到的一个简写,还有呢就是NPM,这呢it-Y,这个呢是初始化一个NPM项目,那这个呢就是我们NPM包管理器这块要学习的具体的内容了。
我来说两句