无法从 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) => {
//...
}
我正在编写一个自定义的 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) => {
//...
}