参考几篇文章后简单整理、
1 . loader运行在打包文件之前(loader为在模块加载时的预处理文件) 2. plugins在整个编译周期都起作用。
1.loader
从本质上来说其实就是一个node
模块。相当于一台榨汁机(loader)
将相关类型的文件代码(code)
给它。根据我们设置的规则,经过它的一系列加工后还给我们加工好的果汁(code)
。在Webpack中,一切皆模块,我们常见的Javascript、CSS、Less、Typescript、Jsx、图片等文件都是模块,不同模块的加载是通过模块加载器来统一管理的,当我们需要使用不同的 Loader 来解析不同类型的文件时,我们可以在module.rules字段下配置相关规则。
loader
编写原则
- 单一原则: 每个
Loader
只做一件事; - 链式调用:
Webpack
会按顺序链式调用每个Loader
; - 统一原则: 遵循
Webpack
制定的设计规则和结构,输入与输出均为字符串,各个Loader
完全独立,即插即用;
常见loader
file-loader
: 文件加载url-loader
: 文件加载,可以设置阈值,小于时把文件base64
编码image-loader</