2

我是 Gulp 的新手(对 js 不太熟悉)。当我使用

gulp.task('sass', function () {
  gulp
    .src('myfile.scss')
    .pipe(sourcemaps.init())
    .pipe(sass(myoptions))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('mypath'))
    .pipe(browserSync.stream({match: '**/*.css'}));
});

编译在几毫秒内完成

但是当我使用

gulp.task('sass', function () {
  return gulp
    ...
});

编译需要几秒钟。

有人可以解释一下为什么吗?

谢谢。

4

1 回答 1

5

Gulp 使用协调器来执行任务。您的任务返回一个承诺或一个流(在您的情况下它是一个流),用于排序。

当您什么都不返回时,调用者无法知道您的任务尚未完成,这至少有两个影响:

  • 您可能认为它已经完成(从日志中)在它真正完成之前
  • 以下任务可能开始得太早,甚至可能使用已编译 CSS 数据的旧版本
于 2016-01-22T09:19:45.323 回答