我有一个Web应用程序,它需要一个配置JSON文件,该文件包含端点和其他必需的启动参数。
如果我使用json-loader,则该文件不是“真实的json”,它将看起来像这样:
module.exports = {
"name": "foo",
"key": true,
};
我想要的是普通的旧JSON,这意味着它可以在部署过程中进行解析和更改,然后再发送到Web服务器并从中进行服务。
一种替代方法是使用文件加载器。但是,这意味着(即使这是一项琐碎的任务),我必须编写代码以自己下载文件。我想让webpack处理并可以使用。
有没有一种方法可以require
将JSON文件写入普通的JSON文件并在运行时导入?
有没有一种方法可以
require
将JSON文件写入普通的JSON文件并在运行时导入?
Webpack在编译时起作用。这意味着当您需要一个文件时,它会加载该文件,并按照加载程序链的指定执行修改,并从该链中导出最终结果。因此,您所要求的听起来像是一个加载器,其作用类似于文件加载器,但是会导出一个IIFE,该IIFE返回对所需文件的承诺。
从理论上讲,可以有一个webpack加载器,比如说一个从文件加载器获取输入的异步文件加载器将为您处理异步请求。让我们假设类似:
const promisedFile = require('async-file-loader!file-loader!./myJson.json');
promisedFile.then(file => { console.log(JSON.parse(file)); });
但随后,用于处理请求的整个逻辑将被限制在该调用内。async-file-loader看起来像这样:
module.exports = function(source) {
return `module.exports = eval("(function(url){
/* define async request func, preform request and return promise in here */
})(${url})")`;
}
真讨厌
当您想在运行时加载json文件时,我将看到2个选项:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句