使用返回时,Gulp sass(libsass)非常慢

Chu*_*ris 2 javascript performance return gulp libsass

我是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'}));
});
Run Code Online (Sandbox Code Playgroud)

编译在几毫秒内完成

但是当我使用时

gulp.task('sass', function () {
  return gulp
    ...
});
Run Code Online (Sandbox Code Playgroud)

编译需要几秒钟.

有人能解释一下为什么吗?

谢谢.

Den*_*ret 5

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

什么都不返回,调用者无法知道您的任务没有完成,其中至少有2个影响:

  • 你可能认为它已经完成(从日志开始)
  • 以下任务可能会很快启动,甚至可能使用旧版本的已编译CSS数据