@DenJel

Task'а Gulp'а в цикле?

Объясните, пожалуйста, как выполнить task'у в цикле. Либо можно ли как нибудь продебажить таску console.log'ом.
Суть:
gulp.task('sprite', function() {
  var pages = [
    'index',
    'about',
    'members'
  ]
  for (var i = 0; i < pages.length; i++){
      var spriteData = 
          gulp.src('./img/sprite/before/'+pages[i]+'/') // путь, откуда берем картинки для спрайта
          .pipe(console.log(pages[i]))
          .pipe(spritesmith({
            imgName: 'sprite_'+pages[i]+'.png',
            cssName: 'sprite_'+pages[i]+'.styl',
            cssFormat: 'stylus',
            algorithm: 'binary-tree',
            padding: 1,
            cssTemplate: 'stylus.template.mustache',
            cssVarMap: function(sprite) {
              sprite.name = 's-' + sprite.name
            }
          }));
      spriteData.img.pipe(gulp.dest('./img/sprite/')); // путь, куда сохраняем картинку
      spriteData.css.pipe(gulp.dest('./stylus/')); // путь, куда сохраняем стили
      console.log(gulp.src);
  }
});

есть такая таска, если обойтись без цикла и массива, все прекрасно работает, она жрет изображения из папки и делает спрайт, но мне нужно чтобы таска ела изображения из разных папок и делала соответствующие спрайты. С вводом цикла и массива таска как бы работает(терминал ошибок не кидает), но эффекта нет. Объясните, пожалуйста, в чем проблема, либо как это правильно организовать. Заранее спасибо.
  • Вопрос задан
  • 579 просмотров
Решения вопроса 1
MhMadHamster
@MhMadHamster
У вас ошибка в коде
pages.lenght
Вы тут вероятно хотели обратиться к длине, но при том создали объект и получаете undefined поле
Если хотите работать с pages как с массивом, создавайте его как массив
var pages = ['index', 'about', 'members'];
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
./img/sprite/before/**/*.(png|jpg|jpeg)+ так со всех уровней поддиректорий получишь png jpg jpeg
Ответ написан
Ваш ответ на вопрос

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

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