[英]Gulp exits too early
有簡單的gulpfile但它沒有按預期執行:
var gulp = require('gulp');
var rename = require('gulp-rename');
var mapStream = require('map-stream');
var fs = require('fs');
gulp.task('default', function () {
gulp.src('123.js')
.pipe(log('before'))
.pipe(rename({prefix: '_'}))
.pipe(gulp.dest('.'))
.pipe(log('after'))
;
});
function log (txt) {
return mapStream(function (file, cb) {
console.log(txt, fs.statSync(file.path).size, !!file.contents.toString());
cb();
});
}
僅記錄“之前”,但不記錄“之后”。 為什么?
您需要返回流 :
gulp.task('default', function () {
return gulp.src('123.js')
.pipe(log('before'))
.pipe(rename({prefix: '_'}))
.pipe(gulp.dest('.'))
.pipe(log('after'));
});
除了按照Sindre的建議返回流之外,還需要將'file'傳遞給'map-stream'的回調函數,以便通過流傳遞數據。
function log (txt) {
return mapStream(function (file, cb) {
console.log(txt, fs.statSync(file.path).size, !!file.contents.toString());
cb(null, file);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.