gulp タスクが実行中または実行されたときにstdout(構成環境)にログを記録したい。
このようなもの:
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);
});
});
どのイベントに応答する必要があるのか、またはこれらのリストをどこで見つけることができるのかわかりません。ポインタはありますか?どうもありがとう。
(2017年12月、ロギングを提供するgulp-util
モジュール、 廃止予定 。Gulpチームは、開発者がこの機能をfancy-log
モジュールに置き換えることを推奨しました。この答えはそれを反映するように更新されました。)
fancy-log
はロギングを提供し、元々はGulpチームによって構築されました。
var log = require('fancy-log');
log('Hello world!');
ロギングを追加するには、 GulpのAPIドキュメント.src
が返すことを教えてください:
プラグインにパイプできるビニールファイルのストリームを返します。
Node.jsの Stream
ドキュメントには、イベントのリストが記載されています。まとめると、ここに例があります:
gulp.task('default', function() {
return gulp.src('main.scss')
.pipe(sass({ style: 'expanded' }))
.on('end', function(){ log('Almost there...'); })
.pipe(minifycss())
.pipe(gulp.dest('.'))
.on('end', function(){ log('Done!'); });
});
注:イベントは「すべてのデータが基本システムにフラッシュされた」ときに呼び出されるため、end
イベントはプラグインが完了する前に呼び出される可能性があります(そして独自の出力をすべて送信します)。
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);
});
}
悲しいことにgulp.util
は減価償却されません。代わりにfancy-log
を使用してください: https://www.npmjs.com/package/fancy-log 。