Gulp泵错误:错误:泵至少需要两个流

  • 本文关键字:错误 两个 Gulp gulp
  • 更新时间 :
  • 英文 :


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

// DELETE TASK
var DIST_PATH = 'public/dist';
gulp.task('clean', function(cb) {
pump([del.sync([DIST_PATH])], cb);
});

但我收到了这样的错误消息:错误:泵需要每个最小两个流

发生了什么,有什么解决办法吗?ThxLino

简短回答:您在阵列中只提供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(。每个人都说:"用泵"。所以我开始使用泵,然后得到了和你一样的错误。这似乎是一个完全无法理解的错误信息,但它给了你所需要的线索。

你需要在泵的第一个参数(数组(中至少给出2个流。对于gump新手来说:流意味着你想要gump执行的一系列(子(任务。所以下面的代码给了我和你相同的错误,因为我只提供了一个流的泵。

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的数组参数中添加了至少2个流,而不是1个流。

我的两美分

吞下丑陋的

最新更新