javascript - 从 VSCode Studio Code Webview API 中的文件夹导入所有文件

标签 javascript json typescript visual-studio-code vscode-extensions

我正在导入 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
}

注意:

  • 一般来说,您应该使用这些函数的异步版本,但我会将其作为练习留给您进行
  • 给定的路径需要相对于程序的当前工作目录,而不是相对于调用函数的文件

引用:https://nodejs.org/api/fs.html

关于javascript - 从 VSCode Studio Code Webview API 中的文件夹导入所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59987369/

相关文章:

javascript - 尝试加载根路径时应用程序返回错误

java - 将 json 插入谷歌电子表格

typescript - RxJS和Typescript捕获相同类型的错误

json - 在 VBA 中打开本地 JSON 文件

typescript - 如何在 webpack 中使用 underscore.js

Angular - DataSource 的 Observable 或 Subject

c# - Javascript和c#之间的编解码

javascript - Vue 中的 keydown 和 keyup

javascript - 当 URL 不完整时,在新选项卡中打开 URL 会生成 404

php - 'safe' json_decode( ,,, ) 以防止耗尽内存