如何最好地循环 gulp 任务而不迭代直到每个循环完成

How best to loop over a gulp task without iterating until each loop is complete

谁能建议从多个 sass 文件构建多个 css 文件的最佳方法?

我正在使用 NodeJs 循环访问一个目录。该目录中的每个文件都有不同的 sass 变量。我需要遍历所有文件并构建它们的等价物 css.

一个简化的例子:

fs.readdir('folderPath', function(err, files){
   _.forEach(files, function(file){
       return gulp
           .src(file)
           .pipe(sass())
           .pipe(gulp.dest('somewhere'))
   })
})

这行得通,但我正在处理 100 多个 sass 大文件(有很多 @imports),因为它是同步完成的,所以速度非常慢。我相当强大的机器爬行。这是一个猜测,但异步执行是否意味着 gulp 不是一次处理 100 个流,而是一个接一个地处理?

如果它需要某种承诺,我将如何去做?或者其他一些好的解决方案或建议?

谢谢!

这应该等效于:

gulp.task('something', function() {
   return gulp.src('folderPath/*')
       .pipe(sass())
       .pipe(gulp.dest('somewhere'))
});

如果您只想定位 sass 个文件,请使用 folderPath/*.scss 作为 glob。

https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options