如何最好地循环 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
谁能建议从多个 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