Gulp for循环不迭代

时间:2014-06-28 12:31:51

标签: javascript arrays node.js gulp

我正在开发一个新的gulp构建过程,由于某些原因我不能让它循环,它运行得很好,但它只生成第一个较少的文件,所以它永远不会迭代。

var files = ['style.less', 'core.less', 'theme.less']
gulp.task('build', function () {
    for (var i = 0; i < files.length; i++) {
        return gulp.src(lessDir + files[i])
        .pipe(plumber({
            errorHandler: onError
        }))
        .pipe(less()).pipe(notify(files[i] + " Rendered!"))
        .pipe(csscomb()).pipe(notify(files[i] + " Sorted!"))
        .pipe(cssbeautify({
            indent: '  ',
            autosemicolon: true
        })).pipe(notify(files[i] + " Spaced!"))
        .pipe(gulp.dest(cssDir))
        .pipe(minifyCSS({
            keepBreaks: false,
            processImport: true,
            noAdvanced: false
        }))
        .pipe(gulp.dest(cssminDir)).pipe(notify(files[i] + " Minified!"));
    }
});

1 个答案:

答案 0 :(得分:2)

return将从整个任务返回,因此循环将只进行1次迭代。

更改文件数组以包含lessDir后,最好在gulp.src中指定文件,如gulp.src(files)。然后让gulp的.pipe通过其管道发送每个文件。