const gulp = require('gulp');
const fs = require('fs');
const allBlocks = './src/blocks/'; // Путь до директории с блоками
// Отслеживаем добавление новых директорий
gulp.watch(allBlocks).on('addDir', function() {
const dirs = fs.readdirSync(allBlocks); // Получаем список дочерних директорий
// Перебираем список с проверкой на наличие внутри директорий совпадений с файлами (.pug/.sass/.js), все эти файлы с названием блока(папки)
for(i = 0; i < dirs.length;i++){
if(fs.existsSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.pug') === false && fs.existsSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.sass') === false && fs.existsSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.js') === false){
fs.appendFileSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.pug', ''); // Добавляем пустой файл с названием блока blockName.pug
fs.appendFileSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.js', ''); // Добавляем пустой файл с названием блока blockName.js
fs.appendFileSync(allBlocks+'/'+dirs[i]+'/'+dirs[i]+'.sass', ''); // Добавляем пустой файл с названием блока blockName.sass
}
try {
fs.statSync(allBlocks+'/'+dirs[i]+'/img');
}
catch (err) {
// Если в блоке нет директории img, то соответственно добавляем.
if (err.code === 'ENOENT') {
fs.mkdirSync(allBlocks+'/'+dirs[i]+'/img');
console.log('Папка img добавлена в директорию' + ' — ' + dirs[i]);
}
}
}
});
P.S. Отдельное спасибо
Сергей delphinpro за наводку, за ссылки на документацию (на нужный раздел) и на статьи по теме!