什么是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,第一二个参数必填,三四选填
