console.log到吞咽事件的标准输出

当gulp任务正在运行或运行时,我想要login到stdout(configuration环境)。

像这样的东西:

gulp.task('scripts', function () { var enviroment = argv.env || 'development'; var config = gulp.src('config/' + enviroment + '.json') .pipe(ngConstant({name: 'app.config'})); var scripts = gulp.src('js/*'); return es.merge(config, scripts) .pipe(concat('app.js')) .pipe(gulp.dest('app/dist')) .on('success', function() { console.log('Configured environment: ' + environment); }); }); 

我不知道我应该回应什么事件或在哪里find这些列表。 任何指针? 非常感谢。

Gulp的gulp-util提供日志logging,并由Gulp团队构build。

 var gutil = require('gulp-util'); gutil.log('Hello world!'); 

要添加日志logging, Gulp的API文档告诉我们.src返回:

返回可以传送给插件的乙烯基文件stream。

Node.js的Stream文档提供了一个事件列表。 放在一起,这里是一个例子:

 gulp.task('default', function() { return gulp.src('main.scss') .pipe(sass({ style: 'expanded' })) .on('end', function(){ gutil.log('Almost there...'); }) .pipe(minifycss()) .on('end', function(){ gutil.log('Done!'); }); }); 

注意: end事件可能在插件完成之前调用(并且已经发送了它自己的所有输出),因为当“所有数据已经​​刷新到底层系统”时调用该事件。

为了build立Jacob Budin的答案,我最近尝试了这个,发现它很有用。

 var gulp = require("gulp"); var util = require("gulp-util"); var changed = require("gulp-changed"); gulp.task("copyIfChanged", function() { var nSrc=0, nDes=0, dest="build/js"; gulp.src("app/**/*.js") .on("data", function() { nSrc+=1;}) .pipe(changed(dest)) //filter out src files not newer than dest .pipe(gulp.dest(dest)) .on("data", function() { nDes+=1;}) .on("finish", function() { util.log("Results for app/**/*.js"); util.log("# src files: ", nSrc); util.log("# dest files:", nDes); }); }