Javascript 一饮而尽太早了

Javascript 一饮而尽太早了,javascript,gulp,Javascript,Gulp,有一个简单的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'))

有一个简单的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();
    });
}
只记录“之前”,不记录“之后”。为什么?

您需要:


除了按照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);
    });
}

非常感谢。但它的日志还是一样的,只有以前。
function log (txt) {
    return mapStream(function (file, cb) {
        console.log(txt, fs.statSync(file.path).size, !!file.contents.toString());
        cb(null, file);
    });
}