将 gulp.series 与具有回调的 gulp 任务一起使用

Using gulp.series with a gulp task that has a callback

我正在尝试使用 gulp.series 一次为 CircleCI 生成我所有的构建资产。

const circleciBuild = gulp.series(styles, js, generate-favicon)

lando gulp circleciBuild 失败并显示消息:

ReferenceError: generate is not defined

但是在gulp文件中定义:

gulp.task('generate-favicon', function(done) {
  realFavicon.generateFavicon({
  // Long function
  }, function() {
    done();
  });

});

我尝试将函数的名称更改为 generateTheFavicon,但随后出现错误:

ReferenceError: generateTheFavicon is not defined

我猜这与任务的定义方式有关,因为 jsstylesfunction js()function styles(),而问题函数是 gulp.task。如何重写 gulp.task 函数以在 gulp.series 中使用它?

这可能很简单,但我是 gulp 的新手,对 js 不是很好。

由于您使用这种定义任务的方式:

gulp.task('generate-favicon',...

那么您将始终将这些任务称为它们的字符串名称。所以

const circleciBuild = gulp.series(styles, js, 'generate-favicon')

你没有显示你的其他任务,所以我不知道它们是如何定义的。

如果您改用这种形式:

function generate-favicon ()  {...

那么你就不会将它们称为字符串,而只是它们的函数名所以

const circleciBuild = gulp.series(styles, js, generate-favicon)

是正确的。由于其他原因,比如传递参数,后面的函数名方法是推荐的方法。