Оператор задачи < /h3> мне нужен скрипт node.js, который:
✅ рекурсивно сканирует каталог и перечисляет все файлы и папки.
✅ исключает ненужные каталоги, такие как Node_modules < /code>, .git < /code>, delt < /код>, и т. Д. В разных форматах (TXT, JSON и YAML).
✅ использует отдельные сценарии для каждого формата вместо одного сценария. Есть лучшие практики для обработки больших структур каталогов в node.js?
📌 Должен ли я добавить параметры CLI, чтобы облегчить выбор формата? /> [list] [*] Сохранить структуру папки как txt ([code]generate_txt.js) [/list] import { readdirSync, statSync, writeFileSync } from "fs"; import { join } from "path";
const EXCLUDED_DIRS = new Set(["node_modules", ".git", "dist", "build", "out"]);
/** * Recursively retrieves folder structure and formats it as a TXT hierarchy. */ function getFolderStructure(dir, prefix = "") { let structure = ""; const items = readdirSync(dir).filter( (item) => !EXCLUDED_DIRS.has(item) && !item.startsWith(".") );
// Get directory to scan const rootDir = process.argv[2] || process.cwd(); const outputFile = process.argv[3] || "folder_structure.txt";
// Generate structure and save const folderStructure = getFolderStructure(rootDir); writeFileSync(outputFile, folderStructure, "utf8"); console.log(`Folder structure saved to ${outputFile}`);
< /code>
[list] [*] Сохранить структуру папки как json (generate_json.js) [/list] import { readdirSync, statSync, writeFileSync } from "fs"; import { join } from "path";
const EXCLUDED_DIRS = new Set(["node_modules", ".git", "dist", "build", "out"]);
/** * Recursively retrieves folder structure as a JSON object. */ function getFolderStructure(dir) { let structure = {}; const items = readdirSync(dir).filter( (item) => !EXCLUDED_DIRS.has(item) && !item.startsWith(".") );
// Get directory to scan const rootDir = process.argv[2] || process.cwd(); const outputFile = process.argv[3] || "folder_structure.json";
// Generate structure and save const folderStructure = getFolderStructure(rootDir); writeFileSync(outputFile, JSON.stringify(folderStructure, null, 2), "utf8"); console.log(`Folder structure saved to ${outputFile}`); < /code>
[list] [*] Сохранить структуру папки как yaml (generate_yaml.js) [/list] import { readdirSync, statSync, writeFileSync } from "fs"; import { join } from "path";
const EXCLUDED_DIRS = new Set(["node_modules", ".git", "dist", "build", "out"]);
/** * Recursively retrieves folder structure and converts it to YAML format. */ function getFolderStructure(dir, depth = 0) { let structure = ""; const items = readdirSync(dir).filter( (item) => !EXCLUDED_DIRS.has(item) && !item.startsWith(".") );