如何解决从 Webpack 加载器中获取原始文件路径
我正在构建一个自定义的 Webpack 加载器。加载器做什么并不重要,但它会以某种方式转换 JSON 并使用来自 JSON 的路径来解析某些其他细节。在我的 loader.js
中,我需要一种方法来获取正在加载的 JSON 文件的原始路径,以便我可以正确解析其他路径。
以这个简单的加载器和配置为例:
loader.js
module.exports = function (source) {
/* Do some file lookups based on source and modify source */
this.callback(null,source)
}
webpack.config.js
module.exports = {
/* ... */
module: {
rules: [
{
test: /\.json$/i,use: ['loader'],},],};
加载器正在工作(正在使用),但我添加的任何业务逻辑都需要具有路径感知能力,以便它可以在文件系统上进行查找。
因为这是一个 JSON 加载器,加载器函数中的 source
变量作为原始 JSON 内容传递,没有关于 JSON 是从哪个文件加载的详细信息。如何从加载程序中获取路径信息,以便我可以根据来自 source
的内容执行其他文件查找?
解决方法
事实证明,我正在寻找的属性可通过执行上下文属性 this
获得,如 resourcePath
。
module.exports = function (source) {
console.log('The original file was here:',this.resourcePath)
this.callback(null,source)
}
这是(相当稀疏的)documentation。
如果有人能想到更好/更面向未来的方式来获得这条道路,请随时发表评论或发布另一个答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。