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

时间:2015-08-31 21:10:59

标签: webpack

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

{ 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'
    }
  ]
}

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

谢谢!

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

如果仍然遇到相同的问题,请小心使用:

your-loader.js

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

代替

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