Webpack:加载文件系统中尚未存在的文件

时间:2016-03-01 19:38:43

标签: json webpack

我想将远程位置的JSON文件添加到我的Webpack包中。为此,我正在编写一个加载程序,它将把文件从远程位置拉到包中。

我在尝试这样做时遇到错误。有没有办法取代“找不到文件”错误,试图解决一个模块对抗它匹配的任何加载器而不管它是否存在?

这是错误:

 *:81
            throw stats.compilation.errors[0];
                                          ^
ModuleNotFoundError: Module not found: Error: Cannot resolve 'file' or 'directory' ../../../json/test.json in *

1 个答案:

答案 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构建之前将文件拉下来。