webpack-loader学习

loader

webpack做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成到指定的文件中。更多的功能需要借助webpack loaders和webpack plugins完成。

loader本质上一个函数,其作用是将你模块中的代码字符串经过一系列处理转换为另一种代码字符串然后将其返回。其工作地方在编译过程的读取到你文件的内容之后,转成抽象语法树之前(对编译过程不太了解的可以看看上篇博客)。

loader在编译过程中所处位置的图示:

在这里插入图片描述
loader的处理流程
在这里插入图片描述
loader配置
webpack.config.js中,module对象中:
在这里插入图片描述

rules:数组中存的是一个对象,它里面也可以是多个对象,一个对象对应一种规则,如果你当前模块满足这个规则,那么它就会用其对应的加载器loader来对你的模块代码进行处理,并返回经过处理后的字符串代码,随后进行语法分析,转成抽象语法树等一系列操作。

规则对象:里面的test是规则,一个正则表达式,它用来匹配你模块中的哪些文件需要进行处理,比如上述就是对你的以.png/jpg/gif结尾的文件进行处理,use: 使用哪些加载器,以及加载器的路径。

use也是一个数组,数组中存的是你加载器对象,因为一个文件可能使用多个加载器来进行处理。

下面是对图片进行base64格式的编码练习:

loader加载器:
在这里插入图片描述

配置文件(其他的使用默认配置):

在这里插入图片描述
入口文件:
在这里插入图片描述

最后利用webpack打包在dist目录下生成main.js,新建一个Index.html,引入main.js,图片就会在浏览器端显示:在这里插入图片描述

总结:loader本质是一个函数,它工作在你读取到模块内容之后,转换成AST之前,将你的模块字符串代码通过一系列的规则匹配,如果匹配到了,使用哪些加载器对字符串代码进行转换,最后将转换后的代码转换成AST,进入到下一步编译流程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值