00:00
接着来学习我们今天的内容,昨天呢,我们讲了这个包package啊,Package package,我们说了包,其实它将来什么呀,它是一组模块的一个集合,哎,把一个模块组到一起变成一个包,是不是变成一个完整的功能啊,咱举例子,把七个葫芦娃组合到一起,变成这个葫芦小金刚是吧?诶金刚葫芦娃是吧?诶金刚葫芦娃是不是变成一个完整的功能娃,我们这个包也是这样一个东西啊,也是这样一个东西,所以包简单理解就是一个增强的拈,增强版的拈,那包的结构呢,我们也简单介绍了啊,它是什么呢?包括这几个,但是其实呢,都不是必须的,唯独一个必须的就是拍这样杰森,所以以后你们最好也养成习惯,到公司里做项目,做一个项目,先把这个拍森干嘛呀创建出来,哎,还且单去描述一下这个包,然后呢,就是我们说拍一点杰森是我们这个包描述文件,它是一个杰森格式的一个文件,在这里边可以干嘛呀。
01:00
可以看到这个包的一些这个描述的信息,那昨天我们举例子,我们说了,在我们这个程序里,在我们外里自动是不是可以自己创建一个,但是它里边比较少,我们需要根据自己的需求去添加,但是注意一点啊,在杰森文件里不能写注释。你别咔着写个注释,这行不行不行,接着文件里一行注释都不能出现啊,都不能出现,所以这块一定要注意啊,好,然后这一块我们来接着往下说,那我们说了,有了包有了还差什么。还要什么,想想模块也有了,包也有了,哎葫芦娃也有了,葫芦小金羊也有了,差什么?哎,还真是跟这个差这个爷爷跟差爷爷,那我想想咱们这个包,我们说是相当于湖里这这这湖里型是是相当于这个葫芦小,这个就不说它了,是吧,当一个大的完整的功能,那我们想一想我们的一个这个整个一个开发环境里边,我们会有多少个包,会有很多包吧,数不过来吧,哎,数不来包,那就相当于什么呀,相当于我有一堆葫芦小金刚。
02:18
那你想想这堆葫芦小金刚要没人管这事儿,是不是挺可怕的啊?你在干嘛?是应该找一个东西来管理他们呀,管理主要管理什么?第一个他们的版本,第二一个什么呀,我是不是也能下载呀,第三一个是不还得对他们有些这个描述啊,第四一个我还可以去干嘛呀,通过各种方式去搜索他们吧,哎搜索他们还确实有点像这葫芦娃的爷爷是吧?哎管理着这几个葫芦娃啊,那这里边来看,我们也需要这么一个东西,那我们就有一个东西叫什么呢?叫做NPM啊NPMNPM叫做什么呢?叫做一个node package manager啊manager,那manager以后注意了,在我们这个开发的时候,我们看到manager manager其实啥意思呀?诶管理在我们这什么呀,叫管理器或者管理系统啊管理系统,所以你看到什么什么什么什么CMS啊,这都什么什么MS,什么都都什么什么管理系统,我们这块什么呀,叫做no的包管理器,或者叫noe包管理系统啊,我们这直接说叫做一个node的包管理器,那这包管理器。
03:26
是干嘛的干嘛的,那这个东西它的作用就相当于我们360安全卫士里边的那个软件管家,诶软件管家它有什么用,你要想去找软件,你是不是直接上那个软件管家里搜就搜出来了,同样我们要想找我们note里的包干嘛呢?直接上an PM里个玩干嘛呀,一搜就OK了,搜完了干嘛呢,直接就可以下载,下载完了以后你是不是就直接可以去使用了,所以它就相当于什么呀,一个软件管家啊NPM,那对于note而言,NPM帮助其完成了第三方模块的发布。
04:10
安装和什么呢?和依赖的发布,什么叫发布啊,好,我写了一个包,我觉得很好,很完美,那我自己用好不好不好,我希望干嘛呀,我希望发布到整个互联网上,是大家一块用啊好,我决定自己搭建一个私人网站,把我这个包发布到互联网上,你猜什么结果可能过了三五年,别人压根不知道我这个包,为什么呀,因为我这网站没人上,能理解这意思吧?哎,那所以干嘛呢?那有了NPM以后干嘛呀?NPM是干嘛的?谁的包都统一发布到NPM上,你要想找包干嘛?直接去NM里边搜索是不是就OK了?哎,搜OK了,那发布完了就是叫什么呀,安装,安装出来了就是从PM上干嘛呀,去下载包啊,下载包然后就是一个依赖,所以依赖就是什么呀,那我说了,我刚才举例子,我这有A包A模块,有B模块,有C模块,那我A依赖于,诶这个假如说。
05:10
B依赖依赖于AC,依赖于B,那这块就会有一个问题,那假如我现在就想用C,如果说没有依赖这个功能,我一下C只有谁只有C,我下班干嘛呀,发现用不了,哎,给我报一错,告诉我需要什么呀,B,诶然后我就下B去,下完B又给我提示了需要什么呀,需要A,好,我把A下来了,告诉我他需要Z,那你想想这是不是很麻烦呀,所以它这依赖什么功能啊,就是什么呀,哎,我一下C,它会自动检查C依赖于哪些什么呀,哪些包,它会自动把这些依赖的包干嘛呀,全都给你下载下来啊,下载下来其实就像你什么呀,不知道跟网上有没有下载过游戏。下载完游戏,你发现加完了干嘛呀,玩不了还需要装一个什么什么ne framework是吧,然后你得下载那玩意儿去下载玩意儿,下载完了干嘛呀,发现版本不对是吧,版本不对啊,版本不对你还得重新下载是吧,好下载完了你发现电脑坏了是吧,哎,白下啊白下,所以这一块有了这个功能以后,说白了就把我们这个开发变得什么呀,变得简单了,变得这个。
06:22
这是很傻瓜这么一个操作啊,所以借助借助n PM note与第三方模块模模块之间形成了一个很好的什么呀生态系统,也所以说我们说note它已经不仅仅是一个服务器了,它已经构成了一个什么呀大的生态系统,非常非常大,这个生态系统非常非常的庞大,那其中主要的工程就是什么NPM,如果没有n PM no的不会像现在这么。这么这个火啊,这么热,但是其实你会发现,其实NPM的重要性其实有一些已经超过什么了,超过node,很多人装node不是为了用noe,而是为了什么呢?用NPM啊,用下NPM,所以NP现在重要性几乎已经超过这个noe啊,超过noe了。好那这块是我们说一个NPM,那NPM说这么重要,这东西怎么用啊,怎么下载怎么安装啊,要注意NPM我们不需要安装,安装完note以后干嘛呢?自带NPM它是什么呀?它是送的,哎,它是送的,买一送一,但是却很重要啊,却很重要。好那这里边我们来看NPM怎么用,第一个叫做NPM,叫做杠V,直接看吧,这里边我直接打开我们命令行窗口,你直接一搜NPM,一打NPM,它会给你出来一堆,它实际上这是NPM的一个帮助的一个这个说明,那你出现这一堆就表示什么呀,NPM已经安装成功了,你要一打印又出了一个什么呀,又出现这么这么类似这么一个什么,不是内部外部命令,那证明什么呀。
07:51
你这note可能昨天没装好,但是一般情况下不会,一般你只要打就出来了,那NBM我们来说一下它的指令,那这块怎么说叫什么呀,杠V,杠V叫什么呀,查看它的这个版本,所以我是直接来一个NPM-V直接运行,哎告诉你我这个NPM是3.10.10的版本啊,哎,这个版本啊都能看到了,然后还有什么呢?还有我应该是搜一个PM,一个这个Wilson,诶Wilson他干嘛呀,他不仅给我打印出NPM版本,他把这里边所有的模块的版本干嘛呀。
08:26
都打出来了,你看NPM的版本3.10.10,然后什么呀,Note版本6.10.3,包括我们V8引擎的版本是5.1.281.10括号,诶这一块就都可以去显示出来了啊显示出来了啊段微查看自己的wson,查看所有模块啊版本好,然后后我们说了NPM是我们的一个叫做包管理器,那包管理器我们说了它就相当于是我们360安全卫士的软件管家,那软件管家我们经常要干嘛呀,我是不是找软件啊,我要搜个软件,那我怎么搜索呀?诶有个什么呀,叫n PM search search后边跟的是一个什么呀?包名啊,包名我们来看怎么用,直接来一个npm ch search,然后后边跟着一个什么呢?跟着一个,比如说我搜一下ma有没有数学相关的包,直接回车。
09:18
当然它需要联网啊,需要联网,哎,然后这一块你就会发现是不是出了一堆啊,你看前边都是包名,这都是带这个麦的,也就是说这些包都是和这个什么呀,数学相关的,包括这块是不是都给你列出来,这是名字,这是什么呀,这是说明,然后这是什么呀,作者,哎作者,然后这是更新的一个时间,这是一些什么呀,版本是不是信息都很全呀,哎,都很全,你会发现你这整完了以后,其实跟那个软件管家基本上是一个样子,一个样,只是这个界面稍微难看一点,对吧,然后是一个纯英文的,那现在这叫什么呀?搜索NPM设置叫做一个搜索,然后再说设完了我们是不需要安装啊,比如说我看到这么一个包。
10:04
就叫什么,就叫ma,它里边给我写了数学运算的一个函数啊,数学运算相关于函数,那现在我想用这个ma,我要怎么办?我是不是需要对它进行安装了,哎,您安装下载,那问题来了,我往哪装啊,注意了,如果我在这装就直接装到我当前这个目录下了,那所以我不想装这儿,那怎么办呢?我这块需要干嘛呢?来新建一个文件夹,我叫一个hello。Hello,一个NPM,然后进到这个文夹里CMD,我希望干嘛呀,我希望把我这个包安到安到这儿,安到这儿那怎么装,直接来一个NPM音色洞叫什么呀?安装安装什么?安装后边我们跟着的是一个包名,包名我们叫什么呢?叫做一个mass啊mass,然后在这直接敲回声。哎,那这块需要稍微等一下我们再看。
11:05
那这块其实它出了一点小问题,为什么出了小问题呢?你看这多么多东西,没多东西,没多东西证明没给我装上,其实装上了啊,其实装上了,但是干嘛呢,他给我装错地儿了。他会装地,为什么?因为它这块在装一个包的时候,它是根据什么呢?根据这个package杰森来识别的,那注意了,我们这个文件夹里有没有派克杰森,没有pat杰son,所以他不能确定这个是一个包,所以他把这东西干嘛呀,给我装到装到别的地方了啊,装到别的地方了,那具体装到哪呢?我也就不找他了啊,我就不找他了,反正他不是装到我那个想装地方,应该是不会装到这个目录下了啊,应该我装到这个目录下了,那现在我不想装这,我想装这,装在这个文件夹下怎么办?那这块我必须创建一个,他也可以在这样杰森,但是注意这个文件它不是必须的,就是有的时候你发现你不创建它也能装上,你创建完了呢也能装上,那这个时候它就情况不太一样,那所以我们就每次最好的电脑给他买都创建上啊到创建上那怎么创建,那说了我直接又建新建一个文件,那这样是不是比较麻烦呀,那怎么办呢?看这了啊直接。
12:19
在NPM这打一个NPM音译叫什么初始化啊初始化,然后直接回车,它在这儿会给你弹出一个什么呀,提示啊提示,那这的作用就是来干嘛呀,是不是创建点接呀,你看这个工具将什么呀,带领你创建一个package点杰森这个文件,那这块它后边是不是有提示啊,第一个问你什么。名字啊,模块的一个名字,那这块后边给你写了一个块,告诉你什么呀,是不是用这个名字,是不用这个名字,那我说你要想用这个名字干嘛呀,你就直接回车,哎,你就回车,但是这个名字有个问题,什么问题呢?我这有个大写字母。
13:04
写字母,那NPM严格严谨的来,严格来说它不让我们名字里还有什么呀,大写字母,所以这块我得改一下,改成hello_NPM回车这个是不是行了,哎,可以用下划线,但是不能用大写字母啊,大写字母然后下边是一个什么呀,版本1.0.0,那这个东西我就默认就行了,直接回车,然后下边是一个什么呀,Description描述啊描述,那这个描述呢,我就写一个hello n PM随便写一个啊回车当然不写也行啊,不写也行,然后这个叫做N换N什么意思?入口换叫什么呀?点哎,那说白了,这个叫做入口的一个点什么意思?我们写一个程序,我们写一个模块,这个模块里边是不是会有很多GS文件呀?那问题来了,哪个GS文件是你程序的入口?你不能所有文件都执行对吧,肯定有某一个文件是你的入口,那这个玩意儿就是来指定这个入口的,它默认叫做什么呀,引带词点GS,当然你就写index就OK了,或者你说不你不想写写index,一般我们可能会用到点GS啊,我这块就用什么了index了,直接回车默认了,然后common这都不用管了,咱们就一一路回车了,这GI,我们这个reus,我们GI不管它了,Keyord也不写了,这块我都让他默认,然后问你。
14:27
意思这OK是吧,OK,然后再传,这是不是就有一个pack接文件了啊,这个文件就有了啊就有了,然后我们打开这个文件,你会发现这里边的结构它是不是都给我们整好了,都是根据刚才我们这个提示,他给我们写的他这么一个东西,好那这时时候我再调一个NPM音色的一个这个ma,然后回车这个再看。诶,这回是没有刚才那么多东西了,哎,然后再看件,你发现什么了,是不是多了一个no model注意了,我E的所有模块都会装到S里,所有从NM上上下载的模块都会装到nos,我们来看看有没有是不是来了,再来点开,这就是我的所有内容,内容不多,诶那如果说你想第一时间最先了解它怎么办?看package杰森,这里边会有一系列什么呀,简介啊,一简介咱们可以去看一下,包括他一些什么呀,还有什么依赖啊,什么一些描述啊,在这里边都有,我们就不再多说了,那现在那这模块我们要用我要怎么用,我要用我要怎么用。
15:44
它这个模块是不是在这儿呢?哎,那咱们来看这,我这来创建一个inex.GS我要用这个模块,我要怎么用。我是要先引入这个模块啊,引入这个模块。
16:01
怎么引入直接Y一个叫做一个MAS,等于reqre require,来一个ma,注意这一块直接写名就行了,因为这个模块不是我们自定义的,是不是我们从NPM下载的呀,直接写名就行啊,直接写名就行,Require math,然后在这我们来看嘛呢,我简单一点,直接来一个cancel.log,这个mass我来打印一下啊,打印一下来,那这写完了,我怎么执行这个文件。诶,是不是no的一个引带词表GS呀,直接回车发现什么了,诶你看这ma里边有123456789,是不是有九个方法呀?哎,它有一个萨萨一看干嘛呀,求和的是吧?艾是应该也是求和的呀,哎,我们来看看那这方块能不一个。点一个这个萨萨姆来什么呢?123逗号一个456,我看看他能不能给我算出来啊,能不能给我算出来好,那在这我们还是。
17:09
进入到我们这儿来一个CMD,直接来一个这个note,一个index,点儿GS。诶多了一点,好,还真是删了啊,他给我报错了,告诉我这是不是多一点啊,哎,多一点啊,咱们再执行一遍走。Numbers,那它这方法应该不是这么调的,我们调一个艾试试吧,这方法我们先不研究它了啊,艾是不是可以啊,Sum方法还不是这么调的啊,萨姆通话应该猜是不对啊,猜是不对所以报错了,但是艾特是不是可以调了,所以你会发现刚才这个流程我在干嘛,我是不是就从我的NPM上下载了一个包,并且在我的GS文件里边使用了,哎,使用了啊,就这么一个效果,那好,这是我们在这儿去演示的,那在我们web要怎么办?
18:01
没有怎么办?是不是一样了?一样,那我们来看这,现在我这个pack接已经有了,那在we里是不是也有这个terminal terminal,那在这假如我要安装包怎么办?我是不是先进到这个noe文件夹里啊,所以这来一个CD01.1个这个noe进来了,好,那现在我假如说我想在这安装一个ma,怎么装NPM因的一个这个ma,然后回车。好,那现在这块装完了,我们来看这文件夹里是不是就出来了一个no models,表示我这个包是不是已经给它装完了呀,哎,所以注意in store我们叫做一个安装这个包啊,后边跟的是这个名,然后再来看下边,诶in store完了以后,下边还有一个叫做npm in store一个包名叫什么呀,告诉G我把这几个命令啊,咱们写一下吧,我在这块总总的来写一下,咱一边写一边说这个NPM的一个命令。
19:07
刚才我们说了什么呀,说了第一个叫做NPM,一个杠V,这叫做查看。查看我们NPM的一个版本,然后说了一个NPM,一个vson沃son叫什么呢?哎,叫做查看我们这个什么呀?呃,所有模块的一个版本啊版本,然后还有什么呢?我们还说了一个叫做NPM,一个叫做SE ch search,后边跟的是一个包名,包名叫什么呢?叫做搜索,我们这个包啊搜索包,然后呢,说了一个NPM,一个in色豆,然后后边跟的是一个包名,我们叫什么呢?叫安装这个包啊安装这个包,然后再说还有一个我们叫做NPM,叫做in store,注意啊,这in store在这我其实也可以简写,简写成什么呢?简写成这个I啊,简写成I,你说这一块你用in n PM in store包名或者NP mi这个包名是什么呀?是一样的啊,是一样的,所以在这我们来看一下我。
20:17
直接NPM一个I一个这个麦回车。是不是一样啊,哎,一样的安装啊,一样的安装,这是我们说的一个install,然后再来看什么呢?再来看我们这儿还有一个这个安装,我们这还有一叫什么呀,叫什么呀,Remove啊remove我们叫做移除。哎,这里边我们来写一下啊。叫做一个npm re Mo,诶,Re remove后边跟的是一个包名,什么意思呀?删除我们这个包啊,删除包来在这我们来看一下,我们在外边来看啊noe model呢,这包是不是已经引入了,来看这我直接来一个NP remove后边跟着一个这个ma,然后回车来,咱们来看看这里边还有没有。
21:08
是不是给我删了,哎,已经被我删了啊,所以remove是删除,那remove应该可以干嘛呀,NPM一个R一个ma,其实效果是一样的啊,效果是一样的好,那这块我们来说一下remove或者是什么呢?或者是R啊啊简写,然后还有一种我们叫什么呢?叫做一个NPM直接来什么呢?因此动一个什么呢?这是一个包米,我们叫做一个杠杠C,其实跟上边是一样的,就多了一个杠杠save,这是什么意思?安装包并添加到我们这个依赖,并添加到依赖中,注意了,这个我给打几个星号,因为这个会用的比较多,非常多,我们以后主要就用这个,诶NPMINS多包名杠杠save,那我们来看它什么特点,回到我们这个这块,刚才我是把这ma我已经给它卸。
22:08
谢了啊好在这我安一下,我直接来一个先,我们先看看我这个拍点看这我让你看哪里边有没有什么依赖相关内容,没有吧,哎,没有啊,看着我还是去调一下n m n mi一个这个直接回。看这模块是不是装上了,装上以后其实在我们拍点接上,你会发现它没有任何变化,没有任何变化,但是注意我们什么叫添加依赖,看着啊,我把它先删了一个,这个在这是不是没啊没了啊,然后我再装一个NR一个这个来什么呢?杠杠save啊杠杠save直接回车,哎,安装起来其实看的效果是一样的,是不是也装上了,但是这时候我们还是看这个package,这杰森直接看,发现里边多了一什么,是不是多了一个depend,这叫什么叫做一个依赖,依赖里边是一个什么呀?是一个对象里边写了一个mass,后边跟的是他的什么呀版本,所以杠杠save的特点就是这么一个,它安装的同时把这个包设置成了你的什么呀,你的依赖了,能懂这意思吗?哎,设置为你的依赖了,那同学说了这。
23:30
王爷。也没什么太大的用吧,有没有用呢?那注意了,现在在这里边写了一个depends,告诉你它依赖于这个math,它有什么特点,有什么用啊,有什么用,那这个时候注意了,咱们写完这个东西,往往我们是不是需要上传到网上,有一些情况,比如说你哪都不上传,你可能上传到你的这个地上,对吧,你希望有更多的更多的人去使用你的这个东西,那这个时候注意了,我问你,我这里边它有时候它是不是只需要一个包。
24:05
他有时候可能是不是需要十个甚至十几个,甚至20几个包啊,需要20几个包,那这个时候注意你在上传到你D的时候,有没有必要把这些所依赖的包全都上传,有没有必要。没有必要,为什么?因为这些包是不是每个人都可以去下载啊,那第一个你上传到你的服务器以后,第一个你上传的速度会很慢,对吗?第二一个你上传以后,你能不能保证你的包永远是最新的,没准一年以后有别人去下载你的这个模块,下载完了以后,你能不能保证你的包是最新的,因为一年以后他肯定更新了吧,肯定更新了,所以注意我们在网上上网上去上传我们的包的时候,一般情况下干嘛呢?一般情况下我们的node models干嘛呀?是不会传的,你去上网去看各种各样的no项目,尤其是上你去找没有人去会传no的models,主要两个原因,第一个上传下载速度都会很慢,第二一个不能保证它是最新的,能这意思吧,所以这个东西我们一般都不传,那问题来了,好,那现在假如说你没有传这个东西,没传没有吧,这个时候这个文件能不能执行是不能执行的,它是不能执行,因为缺少包吧,我们来看啊,咱们这儿我就先不运行了,因为刚才我下载一错的地方,它肯定能找到,那这块注意它是不能去运行的,那怎么办?
25:36
那怎么办?那别人下载你这个包,他要想运行的话,是不是得把这些你所依赖的包一个一个下载下来呀,那好了,你要依赖20个包,哥们NP mi一个一个N,那这是不是很麻烦,大家注意了,当我把这个包添加到这个依赖里,什么效果看着啊,直接我掉一个掉一什么呢,一个NM一个后边什么都不什么都不跟车。
26:09
是自己这一个。这是干嘛的?射雕英雄传都出来了是吧?因此走这是干嘛的,这是下载我们这个当前,哎当前这个项目所依赖的包,也就是说它会自动根据你这个配置信息去什么呀,NPM中下载这些包,你就不用自己在一个一个去找了,能懂吗?所以注意以后你去上网上下载的note项目,下载完了可别直接运行,运行不了你必须先干嘛,先in install一下,把它所依赖那些包干嘛呀下载下来啊下载下来好,那这个是我们说的一个这个NPM这些指令,然后再说还有一个啊还有一个我们叫做NPM,叫做一个因顿一个什么呢?后边也是包名,包名后边跟的是一个这什么呢?一个这个杠记,哎叫做什么呢?叫做一个全局安装,哎全局安装这个包,那这个G就是glo的意思,那这全。
27:27
这是这安一般都是一些工,什么工,比如说你这个我们有一个这个express generator,它是一个工具干嘛的,在我们计算机里用的,而不是在我们的什么呀,项目里用的,一般全局的包都不是在我们项目里用,而是什么呀,而是在我们计算机里用的一些计算机里的工具,比如说我们会说以后什么呀,编译我们这些CSS文件的,编译我们那些GS文件的,去给我们项目打包的,这些工具都得用这个杠地,但是一般情况下用的不太多,如果是做开发的话,就是做我们服务器开发的话,用的不太多啊,不太多,一般都是一些工具啊,好,这是我们说的这个NPM这些简介,然后我们看看还有没有什么其他东西,其他东西就没有那么重要了,我们就直接记到这么多啊。
28:27
回顾一下啊,Wilson这个杠V看版本,Wson看所有模块的版本,Search搜索store安装加杠杠save安装并添加到依赖以后我们全都用的是刚刚sal啊刚刚sal,然后remove删除,哎,Install就直接下载当前项目所依赖的什么呀,包,所有依赖的包都会自动下来,然后这个杠季是一个全局安装啊,全局安装好,那这块我们就说到这来点一下啊。
我来说两句