Импортируйте все файлы из папки в VSCode Studio Code Webview API - PullRequest
0 голосов
/ 30 января 2020

Я импортирую 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",

Но мне нужно импортировать целую папку «test» с большим количеством из json файлов. Как я могу импортировать все файлы и назначить каждый файл переменной «input»?

Обновление:

Я пробовал следующий код, предложенный @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 is not a function"

Я не могу понять, что не так с "fs" в коде Visual Studio. Кто-нибудь, пожалуйста, помогите мне. Спасибо за ваше время.

1 Ответ

1 голос
/ 30 января 2020

Предполагая, что вы находитесь в NodeJS, а не в веб-браузере, лучше всего использовать основной модуль 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
}

Примечание:

  • Как правило, вы должны использовать асинхронные версии этих функций, но я оставлю это в качестве упражнения для вас, чтобы выполнить
  • Указанный путь должен относиться к текущему рабочему каталогу программы, а не к файлу, в котором вызывается функция

ref: https://nodejs.org/api/fs.html

...