Задать вопрос
@vohaha

Как завершить таск в gulp 4?

Сначала была ошибка: ce78296fda.jpg
Потом добавил callback и теперь вот: f08117f13f.jpg

Таск:

'use strict';

var $ = require('gulp-load-plugins')();
var gulp = require('gulp');
// var path = require('path');
var merge = require('merge-stream');

module.exports = function(options) {

    return function(cb) {

        return $.folders('./app/images', function (folder) {

            var folderCheck = new RegExp(options.spriteFolderPrefix, 'g'),
                imgStream,
                cssStream,
                spriteStream;

            if (folder.match(folderCheck)) {

                var spriteData = gulp.src('app/images/ico-first/*.png')
                    .pipe($.spritesmith({
                        imgName: options.imgPrefix + folder + '.png',
                        cssName: options.stylesPrefix + folder + '.scss'
                    }));
                imgStream = spriteData.img
                    .pipe(gulp.dest(options.imgDest));
                cssStream = spriteData.css
                    .pipe(gulp.dest(options.stylesDest));

                spriteStream = merge(imgStream, cssStream);

                return spriteStream;
            }
            
        }, cb())(); // в консоле ошибку выдает на эту строку, начиная с последних скобок
    };

};

Вызываю так:
function lazyRequireTask(taskName, path, options) {
    options = options || {};
    options.taskName = taskName;
    gulp.task(taskName, function(callback) {
        var task = require(path).call(this, options);

        return task(callback); // в консоле ошибку выдает на эту строку, начиная с "task"
    });
}

lazyRequireTask('img:sprite', './tasks/img-sprite', {
    src: 'src'
    spriteFolderPrefix: 'ico-',
    imgPrefix: 'sprite-',
    stylesPrefix: 'sprite-',
    imgDest: 'images',
    stylesDest: 'styles'
});

Что я делаю не так?
  • Вопрос задан
  • 757 просмотров
Подписаться 1 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
Промис, return или callback.
Подробно не объясню, сам не до конца переехал на 4ку.
Вот чудеснейший скринкаст по 4ке, там есть всё. Вот прямо таки всё, даже ответ на этот вопрос.
Ответ написан
Ваш ответ на вопрос

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

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