我在Gulp中创建了一个简单的删除任务。删除dist文件夹
// DELETE TASK
var DIST_PATH = 'public/dist';
gulp.task('clean', function(cb) {
pump([del.sync([DIST_PATH])], cb);
});
但是我收到此错误消息:错误:泵至少需要两个流
正在发生什么,如何解决这个问题有什么想法? 谢谢 莉诺
答案 0 :(得分:1)
简短答案::您只能在数组中提供1个流,这是泵的第一个参数,而最小值是2个。考虑做
// 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脚本丑陋,但失败了,使我陷入了这些无用的堆栈跟踪中。这是我第一次使用Gulp,因此存在很多障碍(例如,开箱即用的uglify不支持javascript6)。 大家都说:“用泵”。因此,我开始使用泵,然后得到与您相同的错误。似乎是完全无法理解的错误消息,但却为您提供了所需的线索。
您需要在Pump的第一个参数(数组)中至少提供2个流。对于gulp新手:流意味着您希望gulp执行的(子)任务的字符串。因此以下代码给了我与您相同的错误,因为我只为泵提供一个流。
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任务重写为
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()调用已被删除,所有子任务(即流)已被逗号分隔,从而在Pump的数组参数中添加的不是1个流,而是至少添加了2个流。
我的两分钱