我想将远程位置的JSON文件添加到我的Webpack包中。为此,我正在编写一个加载程序,它将把文件从远程位置拉到包中。
我在尝试这样做时遇到错误。有没有办法取代“找不到文件”错误,试图解决一个模块对抗它匹配的任何加载器而不管它是否存在?
这是错误:
*:81
throw stats.compilation.errors[0];
^
ModuleNotFoundError: Module not found: Error: Cannot resolve 'file' or 'directory' ../../../json/test.json in *
答案 0 :(得分:3)
我认为你不能通过加载器来实现这一点 - 一旦webpack拥有它,就会将加载器应用于源代码;如果没有来源则无法应用装载机。如果您真的想深入了解它,请查看NormalModuleMixin.js
(它位于webpack-core/lib
中的webpack/node-modules
)。
如果你真的想让webpack将该资源视为本地文件,你可以编写一个自定义解析器插件,它可以识别远程资源的require
调用,下载它,然后让{{1一旦文件在本地存在,分辨率就会继续。遗憾的是,编写自定义解析器或多或少没有文档。 Here's an issue @sokra指出了一些参考文献;我特别发现this plugin是一个很好的例子。
执行您正在拍摄的内容的最简单方法可能是让Grunt / Gulp / shell脚本在执行webpack构建之前将文件拉下来。