00:00
哎,我们接着往下说,那接下来呢,我们还是要说一些概念性的东西啊,还有一个非常重要的概念没有说什么呢,我们叫做一个package,叫做一个包。诶,包我们叫做一个package,那什么叫package package这什么意思啊,打包打包是吧?打包包裹,或者是说白了他应该也是那个什么呀,行李是不是也是他是吧?哦,忘了是不是他了是吧?反正这个package打包,诶那什么叫包,诶那我们先不说什么是包,我们先看没有什么,有没有有没有什么问题啊,你像我们之前我们周三的时候写了一个模块,我们写了一个这个math模块,Math模块呢,它也算一个稍微有点用的一个模块,因为它里边是不是可以给我们提供一些数学运算的方法,对吧?什么艾呀玛T呀,如果加减乘除你都可以做取模,你什么都可以做对吧,什么都可以添加,这是一个,但是我们想想,如果说每一次我都要去自定义这些模块的话,它麻不麻烦,很麻烦,尤其是像这种很常用的模块,对吧,得加减乘除运算。
01:15
哎,那这东西如果每一次我都要自己去定义的话,就很麻烦很麻烦,那怎么办?我们是不是希望能找到别人定义好的,我拿过来就用啊,哎,或者说我们有一些这个有理想的人,他是干嘛有这个想法的人,想法的同学,我希望什么呀,我希望把我写完的干嘛呀,给别人用,对吧?那这样我们说我的好东西我给你用,你的好东西给我用,我这个开源社区是不是就形成会越来越庞大,它是一个良性的一个发展呀,但是问题来了,那你说说,那像我这个文件,我这ma.GS这东西我能不能直接给人家发出去,给别人用去,不能发,为什么?谁知道这是干啥的呀?好,我把东西给你了,你看零四.ma这这东西是干嘛的,他知不知道,他可能直观上不能一下子干嘛呀。
02:10
就看出来懂这意思吧,哎就跟什么呀,就跟说你你你跟你自己家里做饭是吧,自己家里做饭,你说我这做的随意一点,反正做完了我自己吃,那无所谓对吧,那无所谓,但是如果你说你想用这东西去赚钱了,你想出去卖了,你说你做随意点好不好,那不好,你卖相不好,人家是不是不吃啊,哎你不会吃了,所以这东西我们自己用是一个样,我们给别人用是不是又是另一个样子呀,哎另一个样子,那你那你哎是是这么一个东西对吧?哎,那我们现在来想想那怎么办,那怎么办,对诶怎么办,诶那就像说那这个例子可能不太好是吧,再举个例子,你说可能家里咱们哎有这个苹果树是吧,苹果树我自己这个种苹果啊种苹果,你说我要自己吃,好吧,我从苹果树摘下来给衣服上蹭蹭蹭,我就吃了,对吧,我就吃了,但是你说我这苹果我要想卖出去,哎,你。
03:10
比如说我拿这苹果我直接拿出去卖去好不好?诶可能也能卖出去,但是这些东西感觉不太上档次是吧?我可以干嘛呀,我给苹果加个盒,加个包装,这是快平安夜了是吧?哎,又可以卖苹果了是吧?诶那这样是不是就能当成一个商品,然后呢就就能卖出去了,诶同样,那我们这个包是什么意思?包实际上就是一个拈块,包实际上就一个模块,但是呢,包这个东西呢,就是一个什么呀,相对来说规范点的模,它可以给我们这个模块干嘛呀,加一个包,加一个包装,让它显得更规范一点,让我们用起来更更方便,其实就这么一个东西,那包到底是什么?包,说白了就是一个什么呀,文件夹,比如说现在我这是不是一个普通模块啊,怎么就变成包了?来,我直接右建,新建一个文件夹,我叫做一个ma,然后把这往里一放,这就变成包了,懂这意思吧,就给放到一个文件夹里,就变成了一个包,单个的文件,它算是一个模块,但是我放里。
04:10
边了就变成了一个什么呀,包了就是给他包一下就给他包嘛,是吧,包就是包是吧?哎,包就是包啊好,那再有一种理解就是什么呢?哎,我们这些拈块它是一个一个什么呀,单一的功能,而包呢,它可以把这些单一的功能给我组,组成一个什么呀,相对来说完整的一个工具组成一个杂一点的功能,懂这意思吧?哎,所以这里边啊,我们接着往下说啊,Common GS的包规范由什么呢?我们这个包结构和这个包描述文件两个部分组成,什么叫包结构?比如说你这东西我放到一个文件夹里,它就算是一个什么了,就算是一个包了,但是这包里得有什么东西啊,那你不能说你插你你那你是不是会有一个规范呀?哎,我这包里你得要求放什么什么什么东西啊,就跟我买一个手机,或者买一个什么东西的,我里边得有什么呀,数据线得有说明书,得有充电器对吧,它是一个结构啊,所以规定有一个包结构,然后还有一个叫什么呢,叫包。
05:10
描述文件什么叫包描述文件呀?诶说明书是我们这个包的说明书,这包的作者是谁呀?包的名字是什么呀?这包啊怎么用啊,开发者谁呀等等这一系列的是我这个包的描述文件,那这个包结构不太重要,最重要的是我们这个包的一个文件啊,来看这儿,诶咱们来看啊包呢,实际上就是一个压缩文件,就是压缩文件啊,解压以后还原为目录符,符合这个规范的目录应该包含如下文件啊,符合这个规范的目录,那其实说白了就第一个。第一个啊,挪为红色,就第一个是必须的,就第一个是必须的,其他的都是可有可无的啊。第一个我们叫做一个package,点杰森,一看名就知道它是一个杰森文件,是一个杰森文件,它叫做一个包的描述文件,就相当于我们这个包的什么呀,说明书啊,介绍我们这个包的名字呀,作用啊,作者等等一系列东西,这就相当于是我们这个包的一个什么呀,说明书啊,配点接,然后下边,下边这四个都是目录。
06:24
都是文件夹啊,第一个我们叫什么呀?Bin bin什么意思,Boundary啊boundary bin里边放的是可执行的二进制文件啊,可执行的二进制文件你就说B里边的文件都是可以在我系统中直接去运行的,但是B是不是全有啊。不是,并不是全有,一般情况下其实没有,一般情况下没有,什么时候会有,除非我装的是些工具,比如说以后我们要去学什么编译工具,什么这个什么GAP呀,Web派呀等等这些工具,那这些肯定有变,但是一般情况下是没有的啊,一般情况下没有的啊,然后第二个叫做live,哎,Live其实完整叫做library library什么意思,图书馆我们说叫库啊,叫库,这里边放的是什么呢?是我们的这个GS的一个代码,也就是说我这个模块可能需要依赖于一些其他代码,那这时候可以放到这个Li里,但是这个干嘛呀,也不是必须的啊,也不是必须的document我们的什么呀,文档啊,文档就是说我们这个包里边有给我们提供哪些方法,怎么去用,文档就是一个,呃,Document对吧,说明也是类似于说明,但是跟它不太一样,这是主要是功能性的,而这是一个整体的一个描述啊,然后test是我们这个测试啊测试。
07:46
也就是说我们这个模块写完了以后,它得测试是吧,放那些测试代码,但是注意这四个都不是必须的,可有可无啊,可有可无,但是你要看到,你得知道它是什么意思,唯一一个必须的就是谁啊,Package点杰森,所以这里边我们来看一下啊,我这个有,之前我下了几个这个模块,这是我们express mangos express是我们一个大的框架,这个外部框架是吧,然后它里边放的这一个一个文件夹就是什么呀,就是一个一个包啊,就是一个包,每一个包都有不同的功能,我随便点开一个啊,随便点开一个,这里边你看有很多文件是吧,有很多文件,主文件肯定是我们这个index啊,这是我们这个主要文件,你看pack,杰森有没有,有,但是你注意lab什么,这个B还有什么,我们这个do什么test有没有啊,没有啊没有,所以注意那些文件夹都不是必须的,但是拍接干嘛必须得有。
08:46
啊,拍必须有,那随便再点一个,你看,诶你看它这个是不是有有lab呀,哎,Lab里边是它依赖的一些这个GS文件,而它这块拍杰S是不是有也有啊,哎,这是必须的啊,这是必须的,然后再随便找一个,这是不是也是啊inext DS是我们这主文件,拍接是这个描述文件,懂这意思吧?哎,所以这里边啊,这几个结构都不太重要,唯一一个重要就是什么呀,Package点杰森,所以说白了所谓的包就是什么,就是把你写的那个模块放到一个文件夹里,然后再加一个什么呀,拍点杰森,告诉别人这个包是干嘛的啊是干嘛的,所以你去上这个GI up上去下一些这个开源的一些软件,你会发现基本上每个里边都会有什么呀,Pack每个里边都会有,没有的话肯定不靠谱啊,没有的话肯定不靠谱啊,好,那所以这里边我们主要研究的是谁呢?这里边我们主要要看的是这个popular杰森。
09:46
啊,佩尔杰森,那我们这块咱们随便找一个吧,找一个呃,找一个熟点的是吧。看着好像都不太认识哈,来直接我们点开一个,点开一个,诶那这里边我们index.js,我们主文件,然后呢,点开这个拍摄接森,我们来看看,首先它整体就是一个什么杰森,就是一个杰森字符串,你看外边是不是一个大块啊,最下边也是一个这个大块,整体来说它就是一个这个杰森啊,就是一个杰森,然后里边你看什么属性名,是不是都该加引号,加引号了,哎,这就是一个杰森,那这里边的一个一个选项,每一个选项都是有一个意义的,比如说他们到底是干嘛的,那这种下划线这个东西都是关系很大,我们主要看一些常见的吧,哎,找一下有什么呢?哎,这有一个叫做dependenceies,哎,Dependenceies这是什么意思呢?
10:44
Dependency叫做依赖,叫做依赖,什么叫依赖呀?什么叫依赖?就像我们那个解query UI你要用的话,是不是必须得引用解query啊,引用解query插件是不是必须得先引解query啊,那所以我就说了,解query插件是依赖于我们这个就是几块对吧?几块插件是依赖几块的,那我们这个depend是什么呀?依赖什么意思?我当前这是不是整个是一个模块,是一个包啊,那我这个包它是不是有可能要依赖于其他的包啊,所以在这儿要列一下你到底依赖于哪些包,但是不巧他这哥们呢,比较独立是吧,谁都不依赖,所以这是不是空的呀?哎,这是空的啊,Depend依赖,然后这叫做一个description叫什么呀?描述啊,这个包是干嘛的,什么T你什么密,什么什么乱七八糟,什么转换工具是吧,就不管它了啊,就这么一个工具,这是包的描述,它的一个作用。
11:44
啊,一个作用,然后呢,这是一个,你看后边这认dependency,但是前面多了一什么呀,DV啊,DV什么意思,Dev应该叫做d develop,就反正开发那个意思,那个词我忘哪读了啊,就是开发的意思啊,开发这叫开发依赖,什么叫开发依赖?注意了,我们以后在工作的时候一定注意,我们开发环境有两套,我们不是我们这个,我们这个软件的部署环境会有两个,一个是我们的开发环境,还有一个我们叫生产环境,开发环境就是我们用的时候,而这个生产环境就指真正投放到市场里,让用户去使用了吧,这指的什么呀?开发的时候我需赖需要依赖这些东西,但是到了生产环境里需不需要,不需要,所以这是开发依赖啊,什么ES Li呀,什么是乱七八糟的告诉你需要什么东西啊,我们就不再多说了,这里边会提供一系列的一个描述啊,Home配置我们这个什么呀,主页是吧,哎。
12:45
License,我们这个这个协议啊,我们这个权限是吧?啊,我们这个,然后等等吧,Men是什么呀?我们这个主文件啊,Men我们主文件点一个index表示什么呀?在我的这个包里边,我的主文件就是这个index.js啊叫做一个主文件,然后下边maintenoustenous主要的贡献者啊,Maintenance主要贡献者谁呀?诶Leo是吧?这个有一程序员叫Leo是吧,他给这个东西编写代码,还有一个叫什么呢?诶叫什么乱七八糟是吧?哎,编写代码,然后还给留什么呀?有电子邮件了是吧?诶有电子邮件你可以跟他联系,有什么问题有什么办,Ug可以给他提,他是他可能不理你是吧?哎,能理你,然后name就是什么呀?包的名,这个包叫MS,注意看到这个name,你要知道,如果你要在你项目里要用这个包,你这干嘛?Require Ms这个就是我们这个模块的一个标识啊,块一个MS。
13:45
好,那等等吧,下边response,我们这个仓库,哎,我们这get那个地址啊,Get地址,然后scripts是我们这个一些这个命令这块我们就先不说它了,Worseson是我们这个版本啊版本总之总之我们这个拍点接子里边写的东西都是什么,就像一个包的简历一样,他来干嘛呀,介绍这个包的作用,它的作者,它有什么这个命令,然后它的有什么依赖等等这一系列,这就是我们package杰森啊好,然后呢,我们就不看它了,我们直接来看一下啊,包描述文件,用于表达非代码的相关信息,就是我们这个就是包的简历啊,就是包简历,诶,它是一个这个杰森格式的文件,叫做package件,杰森位于包的什么呀?根目录下,一定注意是根目录下,什么叫根目录下,我一打开这文件夹我就得看见,懂这意思吧,这叫根目录啊,这就包的根目录啊,包的根目录下一打开第一个。
14:45
就等查啊,因为它很重要啊,很重要,然后呢,我们这块列举了一下我们这个package接中的一些字段啊内名字description描述版本啊,版本keywords关键字,看见words到什么了,Keyword想到什么了?哎,关键字既然写了关键字,那证明我的包一定是可以被搜索的对吧?如果不能被搜索关键字是没有意义啊,所以待会我们会说我们要去哪搜包,这回就不用去百度了是吧,我们会有一个固定的位置去搜索这些包啊,然后maintenous什么呀,这个主要贡献者是吧?然后contributors是什么呀?是我这个就是贡献者呀,或者说这个就是提交代码了,维护者对吧?提交代码了,但是他不是那个主要的作者是吧?然后B,我们这个他会给我们一个提交B一个地址,你往哪提交这个bug啊,Licenses是我们这个协议,我们这个版权的一个东西啊。
15:45
是我们这个这个仓库是吧,哎,仓库你的get地址或者SN的地址啊,Depend是我们这个依赖是吧,依赖home配主页OS系统啊,操作系统,CPU什么引擎,然后这个比这个构建工具,然后等等吧,一系列的,但这里边其实后边还有很多,但是其实不是每一个都写,但是我们会说怎么去自动的去创建这个描述文件,但是你现在知道这个描述文件实际上就是一个这个。
16:17
杰森就是一个森文件,杰森这个对象里边是不是有各种各样的不同的字段啊,我们对这个字段进行一个不同的这个配置啊,而且还要注意一点啊,在我们的JS文件里边干嘛呢?诶它不能写注释,一定注意,任何的JS文件里都不能写注释,你说我这看着不明白啥意思,我给注释一下吧,这是我们这个参数吧,我注释一下行不行,不行,一个注释你也不能写啊,一个注释也不能写啊好,这个是我们说介绍了一下,包还是一个概念性东西,但是我们来说它有什么用啊,有什么用来我们停一下。
我来说两句