Gulp 大口泵错误:错误:泵每分钟至少需要两股水流

Gulp 大口泵错误:错误:泵每分钟至少需要两股水流,gulp,gulp-uglify,Gulp,Gulp Uglify,我在Gulp中创建了一个简单的删除任务。它删除dist文件夹 // DELETE TASK var DIST_PATH = 'public/dist'; gulp.task('clean', function(cb) { pump([del.sync([DIST_PATH])], cb); }); 但我得到了这个错误信息:错误:泵每最小需要两个流 发生了什么,有什么办法解决这个问题? 谢谢 Lino简短回答:您在数组中只提供1个流,这是泵的第一个参数,而2是最小值。考虑做< /P> //

我在Gulp中创建了一个简单的删除任务。它删除dist文件夹

// DELETE TASK
var DIST_PATH = 'public/dist';
gulp.task('clean', function(cb) {
  pump([del.sync([DIST_PATH])], cb);
});
但我得到了这个错误信息:错误:泵每最小需要两个流

发生了什么,有什么办法解决这个问题? 谢谢
Lino

简短回答:您在数组中只提供1个流,这是泵的第一个参数,而2是最小值。考虑做< /P>
// DELETE TASK
var DIST_PATH = 'public/dist';
gulp.task('clean', function(cb) {
  del.sync([DIST_PATH])
  .on('error', function(error) { console.error('ERROR: '+ error.toString() } )
});
长答案: 我试图丑化连接的es6脚本,但失败了,留下了这些无用的堆栈跟踪。这是我第一次大口大口大口大口地吃东西,所以有很多障碍(例如,uglify开箱即用不支持javascript6)。 每个人都说:‘使用泵’。所以我开始使用泵,然后得到了和你一样的错误。这似乎是一个完全不可理解的错误消息,但它提供了您需要的线索

您需要在pump的第一个参数(数组)中提供至少2个流。对于一个大口大口喝的新手来说:流意味着你希望大口大口喝执行的一系列(子)任务。因此,下面的代码给了我与您相同的错误,因为我只提供一个流的泵

var gulp = require('gulp');
var concat = require("gulp-concat");
var gutil = require('gulp-util');
var uglifyes = require('uglify-es'); //for es6 to work
var composer = require('gulp-uglify/composer');//for es6 to work
var uglify = composer(uglifyes, console);//for es6 to work
var rename = require('gulp-rename');
var pump = require('pump');

gulp.task('default', function(callback) {
  pump([
      gulp.src(['js/file0.js','js/file1.js')
      .pipe(concat('all.js'))
      .pipe(gulp.dest('build'))
      .pipe(uglify())
      .pipe(rename({ extname: '.min.js' }))
      .pipe(gulp.dest('build'))
    ],
    callback);
});
但是,再仔细看一下这些示例,您会发现必须在其单独的子任务中分割流。我将“吞咽”任务改写为

gulp.task('default', function(callback) {
  pump([
      gulp.src(['js/file0.js','js/file1.js']),
      concat('all.js'),
      gulp.dest('build'),
      uglify(),
      rename({ extname: '.min.js' }),
      gulp.dest('build')
    ],
    callback);
});
请注意,所有.pipe()调用都已删除,所有子任务(即流)都已由coma分隔,因此在pump的数组参数中添加的不是1个流,而是至少2个流

我的两分钱