Gulp sass (libsass) 使用 return 时速度极慢
Gulp sass (libsass) extremely slow when using return
我是 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 来执行任务。您的任务 return 是一个 promise 或一个流(在您的例子中是一个流),用于排序。
当你return什么都没有的时候,调用者无法知道你的任务没有完成,这至少有两个影响:
- 你可能认为它在它真正完成之前(从日志中)已经完成
- 以下任务可能启动得太早,甚至可能使用旧版本的已编译 CSS 数据
我是 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 来执行任务。您的任务 return 是一个 promise 或一个流(在您的例子中是一个流),用于排序。
当你return什么都没有的时候,调用者无法知道你的任务没有完成,这至少有两个影响:
- 你可能认为它在它真正完成之前(从日志中)已经完成
- 以下任务可能启动得太早,甚至可能使用旧版本的已编译 CSS 数据