loader
loader本质上是一个函数
该函数接收三个参数,文件的内容,sourcemap的预设信息,文件的元数据
resolveLaoder:{ // 配置loader的路径解析规则
module:['node-modules', path.resolve(__dirname, 'loaders')]
}
同步和异步loader
同步loader
在loader.js文件中
同步loader直接调用callback()
module.exports = function (content,map, meta){
this.callback(null, content);
}
异步loader
在loader.js文件中
异步loader需要调用async函数,然后调用返回值。
module.exports = function (content,map,meta){
const callback = this.async();
setTimeout(() => {
callback(null, content); // 调用callback的时候才会执行
}, 10000;)
}
获取loader的options
在loader.js文件中
const {getOptions} = require('loader-utils');
module.exports = function (content, map, meta){
const options = getOptions(this); // 获取loader中的options
return options;
}