我正在导入 json 文件,如下所示:
import input1 = require("../test/test1.json");
import input2 = require("../test/test2.json");
import input3 = require("../test/test3.json");
import input4 = require("../test/test4.json");
import input5 = require("../test/test5.json");
我的 tsconfig 设置是:
"module": "commonjs",
"target": "es6",
但是我需要导入包含大量 json 文件的整个“test”文件夹。如何导入所有文件并将每个文件分配给“输入”变量?
更新:
我尝试了@Michael 建议的以下代码。但给出以下错误。
const fs = require('fs');
let testDataPath = "../test"
let filenames = fs.readdirSync(testDataPath)
filenames = filenames.filter(it => it.endsWith(".json"))
let runvalue = [];
for(let filename of filenames) {
let file = JSON.parse(fs.readFileSync(testDataPath + "/" + filename, "utf-8"))
let json = Object.values(file["covered-points"]);
runvalue = [...runvalue, new Set(json)]
}
但它给出错误:“Uncaught TypeError:fs.readdirSync不是一个函数”
我无法弄清楚 Visual Studio 代码中的“fs”有什么问题。请有人帮助我。感谢您抽出时间。
最佳答案
假设您使用 NodeJS 而不是 Web 浏览器,最好的方法是使用 fs
核心模块读取目录内容,然后读取文件内容。例如:
let testDataPath = "./test"
let filenames = fs.readdirSync(testDataPath)
filenames = filenames.filter(it => it.endsWith(".json"))
for(let filename of filenames) {
let json = JSON.parse(fs.readFileSync(testDataPath + "/" + filename, "utf-8"))
//do something with the json
}
注意:
- 一般来说,您应该使用这些函数的异步版本,但我会将其作为练习留给您进行
- 给定的路径需要相对于程序的当前工作目录,而不是相对于调用函数的文件
关于javascript - 从 VSCode Studio Code Webview API 中的文件夹导入所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59987369/