Rushelex
@Rushelex
Frontend engineer

Как в JS в пути к файлам указать *все папки*?

Добрый день!

Есть структура:
/scr
+--- assets
|    +--- folder1
|         +--- folder2
|              +--- file_1.html
|              +--- thatsfile_1.html
|         +--- folder2
|              +--- file_1.html
|              +--- thatsfile_1.html

Как в JS прописать путь ко всем 4-м файлам «file_1.html» и «thatsfile_1.html», чтобы не прописывать название папки «folder2». Название этой папки будет постоянно меняться и их будет много (названий файлов, впрочем, тоже), поэтому не вижу смысла каждый раз в конфиг вставлять абсолютные пути с названием каждой новой папки.
Должно получиться что-то вроде `${folder2}` в синтаксисе ES6, но я не знаю как это реализовать.

UPD1. Хочу написать сборщик на Webpack с использованием БЭМ и Pug. Оф. документы по БЭМ не предполагают использование Webpack и Pug.
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
@freelion93
Во первых так будет правильно
/src
+--- assets
|    +--- Folder
|         +--- Sub-Folder-1
|              +--- file_1.html
|              +--- thatsfile_1.html
|         +--- Sub-Folder-2
|              +--- file_1.html
|              +--- thatsfile_1.html


Потом пишем функцию для нахождения файлов в папках

var getFoldersAll = function(path)  
{  
     //объект новой папки
     var dir = new Folder(path);  
     //Выжимаем из нее все что можно
     var f = dir.getFiles();  
     //Едем по всем файлам в данной папке
     for (var i = 0; i < f.length; i++)  
     {  
          if (f[i] instanceof File)  
          {   
               //читаем имя в строку
               var fileName = String(f[i]);  
               //смотрим нужные нам расширения
               if (fileName.match(/.(html|js|php)$/))  
               {  
                    //если все ок то в консоль 
                    console.log(fileName);  
               }
          }
          else  
          {    
               //поищем в подпапках тоже
               getFoldersAll(f[i]);  
          }   
     }  
}  
getFoldersAll('src/assets/Folder');


Полный профит!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы