Задать вопрос
Ответы пользователя по тегу Gulp.js
  • Как автоматически создавать пустые файлы внутри созданной папки?

    leon9208
    @leon9208 Автор вопроса
    Начинающий web-developer
    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 за наводку, за ссылки на документацию (на нужный раздел) и на статьи по теме!
    Ответ написан
    Комментировать
  • Почему не удаляются стили при генерации свг-спрайта?

    leon9208
    @leon9208
    Начинающий web-developer
    Может кому поможет: .removeAttr() заменить на .remove(), в селекторе убрать квадратные скобки []
    .pipe(cheerio({
          run: function ($) {
            $('fill').remove();
            $('stroke').remove();
            $('style').remove();
            $('class').remove();
          },
          parserOptions: {xmlMode: true}
        }))
    Ответ написан