什么是Loader?
Loader是用来处理各种类型文件的,用于对模块源码的转换。
loader可以理解就是一个函数function
/loaders/replaceLoader.js
module.exports = function (source) {
// source指的是源码
return source.replace('dell', 'dellLee')
}
只有一个参数source
使用
module.exports = {
module: {
rules: [{
test: /\.js/,
use: [
{
loader: path.resolve(__dirname, './loaders/replaceLoader.js'),
options: {
name: 'zx'
}
}
]
}]
}
}
loaders获取options内容
const loaderUtils = reuqire('loader-utils')
module.exports = function(option) {
const options = loaderUtils.getOptions(this)
return source.replace('dell', options.name)
}
处理异步
const loaderUtils = reuqire('loader-utils')
module.exports = function(option) {
const options = loaderUtils.getOptions(this)
const callback = this.async()
setTimeout(() => {
const res = source.replace('dell', options.name)
callback(null, res)
}, 1000)
}
this.callback(
err: Error | null,
content: string | Buffer,
sourceMap?: SourceMap,
meta?: any
)
第二个参数就是要返回的result,第一二个参数必填,三四选填