我想将 JSON 文件从远程位置添加到我的 Webpack 包中。为此,我正在编写一个加载程序,它将文件从远程位置拉入包中。
我在尝试这样做时遇到错误。有没有办法取代“文件未找到”错误,尝试根据模块匹配的任何加载器来解析模块,无论它是否存在?
这是错误:
*:81
throw stats.compilation.errors[0];
^
ModuleNotFoundError: Module not found: Error: Cannot resolve 'file' or 'directory' ../../../json/test.json in *
最佳答案
我认为你不能通过加载器来做到这一点——一旦 webpack 拥有它,加载器就会应用于源;如果没有源,则无法应用加载程序。如果你真的想深入了解它,请查看 NormalModuleMixin.js
(它在 webpack-core/lib
中,而在 webpack/node-modules
中)。
如果你确实想让 webpack 将该资源视为本地文件,你可以编写一个自定义解析器插件,它将识别 require
调用远程资源,下载它,然后让require
一旦文件存在于本地,解析就会继续。不幸的是,编写自定义解析器或多或少没有记录。 Here's an issue其中 @sokra 指出了一些引用文献;我发现this plugin特别是成为其工作原理的一个很好的例子。
实现您想要的目标的最简单方法可能是在执行 webpack 构建之前让 Grunt/Gulp/shell 脚本拉取文件。
关于json - Webpack:加载文件系统中尚不存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731924/