我正在为 Webpack 编写一个加载器,它的一个选项是一个包含 js 文件路径的字符串。然后在我的加载器中需要这个 js 文件,因为我需要从中获取一些数据。问题是我希望 webpack 在我的加载器需要它之前编译这个 js 文件。这样做的原因是我需要 js 文件中的图像,并且我想使用 webpack 的 require 而不是 node 的 require,以便获得该图像的路径。
一些代码可能会有所帮助
装载机:
// ...
//assume options.data is './file.js'
const data = require(options.data);
// ...
文件.js
const img = require('@/assets/my-image.png');
module.exports = { image: img }
这不起作用,因为当我执行require(options.data)
节点加载file.js
时,当它尝试require('@/assets/my-image.png')
节点时会抛出错误,因为很明显,它找不到模块@/assets/my-image.png
。
我可以loadModule
用来获取已处理的源代码,file.js
但我不知道如何在请求参数中指定 javascript 加载器或类似的东西loadModule
。
file.js
在我的模块中需要它之前,如何让 webpack 编译?这甚至可能吗?如果没有,有什么解决方法吗?