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'))
        .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);
    });
}

关于javascript - Gulp 退出太早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634322/

相关文章:

javascript - 如何在 JavaScript 中正确使用 alert 和 apply?

javascript - 仅通过悬停显示滚动条

javascript - 使用 Gulp 遍历目录?

javascript - 更改 html 文档时保存注入(inject) svg 文件

python - 自定义部署到 Azure 网站

javascript - 使用 Browserify API,在本地文件上使用 require 和排除

javascript - 如何在 switch Javascript 中使用类型转换比较而不是严格比较?

javascript - jQuery-Galleriffic,获取当前图像的标题

javascript - 如何动态加载 facebook 之类的按钮?

html - 错误 : [$injector:unpr] Unknown provider: tProvider <- t <- myActiveLinkDirective mean? 是什么意思