00:00
下面呢,我们大家去开发一个最简单的load,来知道load怎么去写,以及大概是怎么工作的。我们打开咱们的一个空的文件夹,在这里呢,我们准备一些基本代码。为了打包的时候呢,我们为了能够看到效果啊,所以我们准备一个应该没文件。好,这里面的直一本写习代码就OK了。啊,有没有啥东西都无所谓啊,我们再新建一个SC,这里面写上我们的一个入口文件面积JS,那么也是最简单的就OK了哈,面。同时,我们要定一个pad配置文件。配置文件里面呢,我们要能够打包,我们跟上上述的这些内容。那么我们先引入pass模块。然后默认暴露一个对象,在对象里面呢?我们需要指定入口entry。
01:02
当然是我们的魅力。我们还要主力输出output。指定这个输出的路径对吧,我们希望打包输出啊,看到效果,所以通过pass。我们输出到咱们的一个地层录去。同时指定这个file name。那么文件夹完了,我们就叫JS了,就简单一点,Named JS。同时要把上一次打的内容给我清掉,我不要了。Load的配置的话呢,我们暂时先不先啊,先放在这儿。那么插件我们需要用上这个外派。HM派这个插件来对我们HL文件进行处理。好了,那么这个插件呢,选女的。然后传入一个选项。
02:03
在这里我们要指定咱们的public下面的index。作为他创建项目的模板。好,最后呢,我们指定模式呢,先指定为开放模式啊,因为开放模式下它不会进行压缩,很多代码的信息我们能看到,而剩下配置咱们就不指定了。到时呢,我们的配置就基本完成,然后我们尝试运行一下看看效果。那运行的话呢,我们对呃,需要把依赖呢给下载一下啊,这里我已经提前写好了,我们需要下载的依赖呢,有HM和外派和外派CI这两个是有三个依赖下载。然后我们可以尝试打包一下看效果。NPS外派。好,打包成功就可以了,别的我们必不需要知道。呃,当然你也可以尝试去运行看效果,它只会打印一个cons,咱们的manager。
03:08
好了。OK,那么这一块就没什么问题了啊,我们接下来呢,要去写no的去做事。所以我们会在目录下面的新建一个文件叫loads,那么我没有写在SC下面啊,因为它属于外pad的一个load配置,不属于SSC的。我写到外面,然后这下面呢,我们写第一个叫tests。好,这几张model是怎样写呢?我们是大家写一个基本的例子啊,别着急,我们后面一点看。每个logo都是个函数,接收文件内容作为参数,然后你要返回一些文件内容出去。这样就完成了一个最简单的。好,No,怎么用呢?我们来到PA computer这里来看啊。我们在这里通过一个对象去配置,首先你告诉我load要处理哪些资源,比方说我们目前只有JS文件要处理,所以处理这个JS文件。
04:05
好,通过这里告诉我使用什么漏处理。这里我们可以直接找到我们写的load啊,诶,使用我们定义的这个t load DS去处理咱们的JS文件。那么咱们的load呢,就会被执行了。老为了看效果,我打一下可能咋。来,我们一起来看一下效果。NPS派。那么这时候打包的时候,你会发现他输出了一个哈妹。什么意思呢?来我们1.1证啊,首先no本身它是一个函数。然后呢,我们进行了配置,配置的时候,WiFi打包的时候,它会通过入口文件找到我们所有的依赖,然后呢,对于对依赖文件呢,进行一个进行编译。那么编译的时候就要去加载load的配置了,诶发现呢,咱们呢,这里有处理处理JS文件load,它就会调用load这个我们对应的这个JS文件的这个函数,那么把这个要处理的文件作为参数传入到这个load函数中来。
05:07
所以我们load的函数就接收到了咱们这个要处理的文件作为参数,那么因为我们只有一个魅JS,所以它接收到的参数就是这个魅里面的内容。然后呢,我们在这里可以对咱们的内容做处理,然后返回出去,那么这样就构成一个漏了。所以总结一下。就是这样的啊。Load的就是一个函数。对吧,这个函数干嘛的呢?当外派解析资源的时候。会调用相应的load。去处理。那么这里呢,就包括啊,我们现在定义的这种load的关关系呢,是一个normal load,如果你将来还有其他load。但我这里写的都是一样的啊,我写了三个load,它们都处理JS文件,那么WiFi在解析的时候就会分别调用这三个load去处理好,调用顺序就是从下到上,从右到左。
06:12
除非你写enforce pre啊或者enforce啊,这个po才能决定改变它们的顺序,所以如果我们这次去掉的话呢,它会被打印三次。对吧,所以就是它会依次遍历这个Rose数组中的所有的load的配置,然后判断咱们的文件能不能被你处理,可以处理就会调用你这个load函数,不能处理那就不调用呗。就这样的。因为我们处理的是JS文件,而我们入口文件也是JS文件,所以no就被调用了。好,一旦调用相应load作为处理的load,就会接收到这个文件内容作为参数。然后呢,我们需要返回。
07:00
内容啊数据,那么最后返回的内容呢,就是派最终要输出的东西。所以我们在logo这里面可以对这个内容呢做些修改。像be多呢,在这里面就是对我们的这个EL的语法呢,进行转换啊,把它转换成低级语法。出去之后外派输出的时候,那么这个代码才能够被浏览器识别,对吧,所以就在这里面我们要对它进行转换。当然了,这个参数呢,远不止这一个,还有还有两个参数,分别是叫map。还有这个Meta。呃,Map参数呢,就是跟source map相关的三个参数,是文件内容。Map呢,是和map相关的啊,就是如果你需要生成这些啊s map相关的一些东西,那么它会作为第二参数。Meta呢,就是其他漏的,就是别的漏传递过来的数据啊。
08:03
也就说,如果假设我们是什么less的S什S,那么在less执行完的时候,如果它传到参了,那么我们可以考可以在这个Meta参数这里接收到别人传递的过来参数。那么这样呢,就是我们唠叨的一些内容了。好,这里呢,大家主要关心的第一个点就是要知道啊,No就是一个函数,以及第一知道,第二点就是no一旦进行配置,那么当派去编译这个文件的时候,就会调用显load去执行。而他们执行顺序呢,是从下到上对吧,当然也看那个优先级,看到是pre load还是这个po load,还是这个no load,按照他们优先级关系去相应的调用现在load去执行。OK,那么这以上呢,就是最简单的个的写法了,当然了,它现在目前没有包含其他功能。那么我们去打印这个map和Meta的时候,也不会有任何数据,所以我这里就不做测试了。
09:04
那么下节呢,我们会去讲load的不同的类型,最后我们就去定义。
我来说两句