javascript - Gulp sass (libsass) 使用 return 时速度极慢

标签 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'}));
});

编译在几毫秒内完成

但是当我使用时

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

编译需要几秒钟。

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

谢谢。

最佳答案

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

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

  • 您可能认为它已经完成(从日志中),但实际上还没完成
  • 以下任务可能启动得太快,甚至可能使用旧版本的已编译 CSS 数据

关于javascript - Gulp sass (libsass) 使用 return 时速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34942831/

相关文章:

javascript - CoffeeScript 中带有回调设计模式的 If 语句

javascript - JavaScript 对象的动态属性?

android - Buck 和 Android Material 主题

c++ - C++ 是否在失败时返回 0 或 NULL?

javascript - JS 函数返回什么

c++ - return() 内的函数调用

javascript - Angular js ng样式不起作用

javascript - Node.js - 为什么我的两个查询没有执行?

iPhone 位图性能

android - 在 multidex 应用程序中加速 gradle 构建