В чем отличие в gulp, return gulp.src(...) и cb()?

1- способ через cb

const html = (cb) => {
   gulp.src(config.src.html)
      .pipe(plumber())
      .pipe(include())
      .pipe(gulpif(config.isProd, htmlmin({
         collapseWhitespace: true,
         removeComments: true,
      })))
      .pipe(gulp.dest(config.build.html))
   cb();
}


2- способ через return

const html = () => {
   return gulp.src(config.src.html)
      .pipe(plumber())
      .pipe(include())
      .pipe(gulpif(config.isProd, htmlmin({
         collapseWhitespace: true,
         removeComments: true,
      })))
      .pipe(gulp.dest(config.build.html))
}

Единственное различие вижу в скорости билда, если использовать способ через cb().
Какой из этих способов лучше или в каких моментах лучше использовать то или другое и почему?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Gulp.js
frontend developer
В первом случае у вас коллбэк срабатывает сразу, а не после завершения задачи.
Правильно писать так:

const html = (cb) => {
   gulp.src(config.src.html)
      .on('end', cb) // Вызвать коллбэк после завершения таска.
      .pipe(plumber())
      .pipe(include())
      .pipe(gulpif(config.isProd, htmlmin({
         collapseWhitespace: true,
         removeComments: true,
      })))
      .pipe(gulp.dest(config.build.html))
}


И когда так написано – нет никакой разницы, какой из вариантов использовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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