json - Webpack:加载文件系统中尚不存在的文件

标签 json webpack

我想将 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/

相关文章:

.net - 执行 POST 到 WCF 服务时出现 iOS 5 Json 错误 400

arrays - 如何按特定顺序连接 JSON 数组的两个值?

python - 如何将此系列转换为嵌套 json 字符串?

reactjs - Webpack 生产版本 : Unexpected token

node.js - Stylus:在 webpack 配置中插入动态 ID 选择器

javascript - 使用php将ajax发送的数据写入带有数组的json文件

javascript - 我有大量来自服务器的行数据。如何在新页面(即重定向页面)上显示此数据?

javascript - 使用 uglifyjs 在生产配置中使用 webpack 预构建 es6 npm 模块

css - (webpack 4) + sass-loader + mini-css-extract-plugin ,忽略 sass 依赖,输出目录中缺少生成的 css

javascript - 将动态变量分配给样式加载器路径