loader 和 plugin 的区别?如何写一个自定义 loader?

区别:

自定义 loader(本质是一个函数,接收源码返回转换后源码):

// my-loader.js
module.exports = function (source) {
  // this 为 loader context,可拿到 query、emitFile 等
  return source.replace(/TODO/g, 'DONE')
}
// 使用:{ test: /\.js$/, use: ['./my-loader.js'] }

注意 loader 应是纯函数、无副作用,复杂逻辑用 this.async() 支持异步。

同分类其他题目