00:00
上节呢,我们大家使用了bab啊这些工具去对文件呢进行各种处理,那么下面呢,我们要接着去完成,那么从这里呢,我们能看到我们呢解析呢,其中一个文件就是那个入口文件的所谓的依赖,并且呢将入口文件呢解析成相应的啊把到满的也解析好了,但是呢,我们的LDS和那个啊另外的文件呢并没有处理。所以呢,接下来呢,我们要做的是就是递归便利所有的依赖,对所有依赖进行处理,并且呢,我们还要考虑啊,比方说我们的GS或者some GS或者coms啊,这两个JS文件中,它有没依赖,我们并没有考虑,所以这里面呢,我们要进行DVB,那么好,那么同样的做之前呢,我们的代码的复制一份啊。那么这个呢,就是我们的第二个过程啊,开发这个步骤代码好,我们在这个WiFi这里面接着去开发最新的啊最新的。
01:00
很白的喂,那么这里面呢,我们接着来做啊,我们要做的话呢,无非就是拿到这个dependency的依赖,再去读取这个文件,去获取它抽象语法输入,再获取这个,诶dependence依赖里面看有没有其他依赖,然后再解析,所以这个代码呢,又要跑一遍,跑一遍的话呢,我们定一个公共的方法叫build。来看,好,那么我们肯定不同,再写两遍了,我们在这里CTRLC全部转过来,TQL啊,那么这打印的就可以拜拜了。那么呃,这里呢,就差一个参数,就是这个fair pass,那么外面呢,是调用这个Bill的方法,对,差这个fair pass,所以呢,呃,这个run方法呢,只是为了启动打包而已,而build呢,才是真正开始构建。啊,上面是启动大包,这里是开始构建对吧?那么构建结束之后,它要返回什么呢?他要把这个值啊给return出去啊,不然呢,外面用不了远存出去的,第一个呢就是文件名啊,第二个呢是它的依赖,第三个呢是解析后代码,所以有三个值,这个呢是文件路径啊,文件路径当前模块的文件路径,Depends呢是当前文件的所有依赖。
02:16
扣的,那它自然就是当前文件解析后代码。或者说当前文件的代码啊,几千个代码,所以这样build呢,我们就能得到啊这个内容对吧,得到这个参数,我们取个名字吧,就是file in for就是文件信息。诶。啊,对于它的一个返回值。好,那么这里呢,注意啊,只收集到一个依赖,那我要递归收集依赖该怎么办呢?对吧?好这时候呢,我们在这个control里面呢,定义一个定一个容器啊,叫MOS的一个数组啊,那么这个容,那么我们写写注释啊,Options呢,就是wipad里面的配置。
03:02
那么这个modest就是所有。依赖啊,所有依赖容器。嗯,所有一代的容器啊,OK,那么我们得到这个啊,这是第一次构建。一次构建,那么得到入口文件的信息,对吧?接下来我们对入口文件要做处理,所以我们首先先把入口文件添加进去啊,这些mode push。啊,把这for填进去,然后呢,对这个C。进行编辑。好,可以得到每一个这个发音符啊,这个文件信息,然后我们可以干活了。好干啥呢?我们啊,无非就是要提取这个fair for里面的这个dependence,提取它的依赖啊,我们要便利的是这里面的依赖,对吧。
04:09
对吧,我们要遍利这里面的依赖,所以我们要那个for循环去进行遍历啊,当然了,因为它这个对象啊,Dependence是这里DPS呢,大家知道它长什么样子啊,我们大概我们大概之前打印过,我们把它复制一下。长这个样子啊,所以要注意就是deps dependence它的一个一个情况啊。好,嗯,诶,我们来写。OK。它呢,大概长这个样子,我们把这个这块先删掉啊,很容易OK,那么它会长这个样子啊。对吧,我们要读取这个文件呢,我们要拿的是个绝路径,这样去读取文件呢,比较方便一些,这样才不会出问题,你如果拿这个文件去读取,那肯定是会出错的,所以呢,Dependence is是个对象,我们要便利这个对象,那么这里呢,对变对象得用for in for in好变呢,是这个dependence is。
05:07
好得到的呢,是这个相对路径,我们叫relative relative。都是这个相对路径,那么我们要做的事呢,是再到这个AB。这个pass角度句啊,等于呢,Dependence is取中括号,这个relative pass,得到这就是角路径啊。对吧。好,这里是我们来练习啊,这是遍历所有的。依赖。好,这里面呢,是取出。取出。当前啊,文件的依赖。好,当前文件的所有引栏啊,所有了,好,这里呢编辑所引了,这里取出当前文件所引栏,然后呢进行编辑。
06:06
对吧,好,这里面呢,得到的注意啊,这是相对路径,这是得到当前啊模块的依赖的角路径。那么有了节奏镜了,那么我们就可以执行那个build。对吧,将这个截路径就是我们的fair pass作为参数给传进去,那它的返回值呢,我们啊把这个返回值呢,它的返回值不就是我们的file for吗。对吧,我们呢,把这fair in for再添加到这个MOS里面,那么后续它遍历的时候呢,又会继续遍历它。继续啊好,这里面呢,就是对这个文件。对这个啊,文件依赖文件。进行处理。处理,然后呢,处理后的结果呢,将处理后的结果。
07:03
添加到四中。后面啊,后面便利。又回避毯。就会便利它了,所以最终它遍历完成之后啊,我们呢,这个C点这个modus里面呢,就会有所有的这些依赖了,我们可以打印看一下。大家看一下。来n run build,它打印的东西比较多啊,来看啊,它呢,这里面我们因为有三个依赖,三个对象,第一个依赖呢是index JS入口文件再往下走,第二个依赖呢是S,没问题,那没有依赖随以时可控制一下啊后代码就不看了,第三个呢是看S,它也没有依赖,所以三个赖都进来了,所以这个呢就是S它的一个内容啊S。好,整体呢,其实就是我们做一个这样的事,把它定义的一个公共的方法叫做构建方法啊,其实构建构建方法呢,其实就是啊,把文件的进行解析一下这三步骤,OK,那么第一次呢,我得到的一录的信息添加到这MOS里面依赖中啊,然后呢,接下来就依赖进行编辑,提取依赖中的依赖,对吧,提取单切文件中的所有依赖,然后呢,对它进行再次构建处理,得到我构建后的信息,然后呢填到Mo里面再行编底,那么这里面呢,就会有一个递归过程,递归过程的递归的是和build的啊,Build的最终能够取出我们所有的依赖啊进行处理的。
我来说两句