1. 作用
将不同类型的文件转换为webpack可识别的模块。
2. 分类
pre:前置loader
normal:普通loader
inline:内联loader
post:后置loader
3. 执行顺序
pre > normal > inline > post
相同级别:从下到上,从右到左
通过配置 enforce:"pre|normal|post"(inline除外) 来控制执行优先级,例如:
module: {
rules: [
{
enforce: 'pre',
test: '/^.js$/',
loader: loader
}
]
}
4. inline loader
通过import语句显示指定loader,例如:
import Styles from 'style-loader!css-loader?modules!./styles.css'
/**
* 使用css-loader和style-loader处理styles.css
* 通过!将资源的loader分开
* modules是给css-loader传递的参数
*/
通过添加前缀来跳过其他级别loader:例如
// 添加!跳过normal loader
import Styles from '!style-loader!css-loader?modules!./styles.css'
// 添加-!跳过pre/normal loader
import Styles from '-!style-loader!css-loader?modules!./styles.css'
// 添加!!跳过pre/normal/post loader
import Styles from '!!style-loader!css-loader?modules!./styles.css'
5. 种类
同步loader、异步loader、Raw loader、Pitching loader