Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我在循环中大口大口喝,我该怎么做?_Javascript_Gulp - Fatal编程技术网

Javascript 如果我在循环中大口大口喝,我该怎么做?

Javascript 如果我在循环中大口大口喝,我该怎么做?,javascript,gulp,Javascript,Gulp,从中,我了解到,在吞咽任务中不归还任何东西通常不是一个好主意。我希望调用方等待异步任务 这就是我的gulpfile.js当前的样子: 'use strict'; var gulp = require('gulp'), uglify = require('gulp-uglify'), livereload = require('gulp-livereload'), del = require('del'), util = require('gulp-util'),

从中,我了解到,在吞咽任务中不归还任何东西通常不是一个好主意。我希望调用方等待异步任务

这就是我的
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;

});
我不确定在我的
buildjs
任务中应该返回什么

这样做的最佳实践是什么?我不想安装其他模块来解决此问题


谁能给我指出正确的方向吗?

Gulp将为您迭代所有文件,而无需循环。如果你想做有条件的事情,那么如果需要的话,就用“吞咽”。基本思路如下:

gulp.task('build-js', function() {
    var destination;

    return gulp.src(paths.scripts)
            //.pipe(gulp-if(....))
            .pipe(uglify())
            .pipe(gulp.dest(destination));
    }

});