如果我在循环中运行 Gulp,我应该重新调整什么

What do I retun if I am running Gulp in a loop?

本文关键字:新调整 调整 什么 我应该 循环 Gulp 运行 如果      更新时间:2023-09-26

从这篇 StackOverflow 帖子中,我了解到在 gulp 任务中不返回任何内容通常不是一个好主意。我希望调用方等待异步任务。

这是我gulpfile.js目前的样子:

'use strict';
var gulp = require('gulp'),
    uglify = require('gulp-uglify'),
    livereload = require('gulp-livereload'),
    del = require('del'),
    util = require('gulp-util'),
    paths = {
        scripts: {
            main: 'app.js',
            controllers: 'controllers/*.js',
            services: 'services/*.js'
        },
        css: 'css/*.css',
        html: {
            index: 'index.html',
            views: 'views/*.html',
            directives: 'directives/*.html'
        },
        bower_components: 'bower_components/*.*'
    };
gulp.task('build-js', function() {
    var destination;
    for (var key in paths.scripts) {
        util.log('Building ' + key);
        if (/'*'.js$/.test(paths.scripts[key])) { // just so I catch app.js correctly in the paths
            destination = 'build/' + paths.scripts[key].slice(0, -4);
        } else {
            destination = 'build/';
        }
        gulp.src(paths.scripts[key])
            .pipe(uglify())
            .pipe(gulp.dest(destination));
    }
    util.log('returning..');
    return;
});

我不确定我应该在我的build-js任务中返回什么。

执行此操作的最佳做法是什么?我不想安装另一个模块来解决此问题。

谁能指出我正确的方向?

Gulp 将为您迭代所有文件,而无需循环。如果你想做有条件的事情,那就用gulp-if。这是基本思想:

gulp.task('build-js', function() {
    var destination;
    return gulp.src(paths.scripts)
            //.pipe(gulp-if(....))
            .pipe(uglify())
            .pipe(gulp.dest(destination));
    }
});