loader本质就是一个函数,在该函数中对接受到的内容进行转换,返回转换后的结果。因为webpack只认识JavaScript,所以loader就成了翻译官,对其他类型的资源进行转移的预处理工作。loader在module.rules中配置,作为模块的解析规则,类型为数组。每一项都是一个对象,内部包含了test(类型文件)、loader、options(参数)等属性
plugin就是插件,基于事件流框架tapable,插件可以扩展webpack的功能,在webpack运行的生命周期中会广播出许多事件,plugin可以监听这些事件,在合适的时机通过wenpack提供的api改变输出结果。plugin在plugins中单独配置,类型为数组,每一项是一个plugin示例,参数都通过构造函数传入。