Console.log в stdout на событиях gulp
Я хочу войти в stdout (среда конфигурации), когда запущена или запущена задача gulp.
Что-то вроде этого:
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);
});
});
Я не уверен, на какое событие я должен ответить или где найти список из них. Любые указатели? Большое спасибо.
Ответы
Ответ 1
Gulp gulp-util
обеспечивает ведение журнала и был создан командой Gulp.
var gutil = require('gulp-util');
gutil.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(){ gutil.log('Almost there...'); })
.pipe(minifycss())
.on('end', function(){ gutil.log('Done!'); });
});
Примечание. Событие end
может быть вызвано до того, как плагин будет завершен (и отправил весь его собственный вывод), потому что событие вызывается, когда "все данные были сброшены в базовую систему".
Ответ 2
Чтобы опираться на ответ 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);
});
}