如何在没有迭代的情况下循环遍历gulp任务,直到每个循环完成

时间:2015-01-23 21:14:49

标签: node.js sass gulp

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

使用NodeJ我循环浏览目录。该目录中的文件每个都有不同的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个流,而是一个接一个地处理它?<​​/ p>

如果需要某种承诺,我该如何去做呢?还是其他一些不错的解决方案或建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

这应该是等效的:

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