module.exports = {
module: {
rules: [
{
test: /\.js$/, //文件名称匹配规则
use: [
{
loader: "./loader/loader1.js", //此路径会被webpack使用require调用
options: { //会被传入编辑的Loader中 此例是loader1.js
a: 1
}
}
], //完整写法
use: ["./loader/loader1.js?a=1", "./loader/loader2.js?b=2"] //简写
//注意: 匹配规则时采用从前到后的顺序匹配,调用loader时按照从后到前的顺序调用, 此例先执行Loader2.js 后执行Loader1.js
}
] //使用Loader的文件需要满足的规则
}
}
关于接参
//loader1.js
var loaderUtils = require("loader-utils"); //npm i -D loader-utils
module.exports = function (sourceCode) {
// sourceCode 就是文件代码 type为字符串
// this 是 webpack提供的相关信息, 取出options需要用到第三方库loader-utils
var options = loaderUtils.getOptions(this);
// options : { a: 1 }
}
关于接收原始值
function loader(buffer) {
//buffer 为 ArrayBuffer
}
loader.raw = true; //参数接收原始值buffer 否则接收string
module.exports = loader