咕噜.js任务,返回src?

2022-08-30 04:25:29

我是新手,一直在研究示例设置。有些人有以下结构:

gulp.task("XXXX", function() {
    gulp.src("....

其他人有这个:

gulp.task("XXXX", function() {
   return gulp.src("....

我想知道src上的回报有什么不同??


答案 1

指示任务是异步的。 返回一个流,因此它是异步的。returngulp.src()

没有它,任务系统将不知道它何时完成。阅读文档


答案 2

如果您有依赖任务,则需要返回流,以便任务等待其依赖任务完成,然后再运行它们自己。

例如

// without return
gulp.task('task1', function() {
    gulp.src('src/coffee/*.coffee')
      /* eg compile coffeescript here */
     .pipe(gulp.dest('src'));
});

gulp.task('task2', ['task1'], function() {
    gulp.src('src/*.js')
      /* eg minfify js here */
     .pipe(gulp.dest('dest'));
});

在这个例子中,你会期望task1task2运行之前完成(例如编译咖啡脚本或其他任何东西) ...但是除非我们添加 return(如下面的示例所示),否则它们将同步运行,而不是异步运行;并且编译的咖啡脚本不会被缩小,因为 task2 不会等待任务 1 完成,因此不会拾取 task1 的编译输出。因此,在这种情况下,我们应该始终返回。

// with return
gulp.task('task1', function() {
    return gulp.src('**/*.coffee')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

gulp.task('task2', ['task1'], function() {
    return gulp.src('**/*.js')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

编辑:这里的食谱进一步解释了它。https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md