无法从 webpack 加载器访问 resourcePath 属性

Can't access resourcePath property from webpack loader

我正在编写一个自定义的 webpack 加载程序,它需要知道它当前正在修改的文件的路径,并阅读 loader documentation,我发现 属性 是 "resourcePath" ,但是当我检查加载程序中的上下文时,我拥有的所有属性都是:

{ data: undefined,
  inputValue: undefined,
  query: '?mykey=value',
  async: [Function: async],
  callback: [Function],
  cacheable: true }

我的 webpack 配置文件看起来像这样:

module: {
  loaders: [
    {
      test: /\.js$/,
      exclude: /node_modules/,
      loader: '../plugins/myloaderloader.js?mykey=value'
    }
  ]
}

加载器本身只是一个普通的导出函数,根据加载器文档接受一个字符串。我是不是遗漏了什么或者这是一个错误?

谢谢!

实际上,resourcePath 可用。如果你这样做 console.log(this.resourcePath) 你会看到你的来源的完整路径。但是,如果您执行 console.log(this),输出将与您在问题中所写的一样。我认为这是因为 this 对象的 toString() 方法,是的,这有点令人困惑。

如果还有人遇到同样的问题,保重,使用:

your-loader.js

module.exports = function(source) {
  //...
}

而不是

module.exports = (source) => {
  //...
}