Глоток: как я вижу имена моего шара?
В Gulp у меня есть шаблон глобуса, который я хочу проверить. Например:
gulp.task('clean-requirejs', function() {
return gulp.src([
'./public/res-min/**/*.js'
])
.pipe(clean());
});
Я хочу увидеть, как шар ['./public/res-min/**/*.js']
расширен. Как распечатать аргументы / список файлов, который генерируется gulp.src
в этом примере?
ОБНОВЛЕНИЕ: Оказывается, это действительно просто gulp-print
который может решить эту задачу так:
var print = require('gulp-print').default;
[....]
.pipe(print());
2 ответа
Решение
Оказывается, Gulp-Debug как раз подходит для подобных ситуаций.
Пример:
$ npm install --save-dev gulp-debug
var debug = require('gulp-debug');
gulp.task('clean-requirejs', function() {
return gulp.src([
'./public/res-min/**/*.js'
])
.pipe(debug())
.pipe(clean());
});
Хотя, безусловно, есть более чистые решения, когда я не хочу беспокоиться о том, чтобы npm устанавливал новые пакеты, я использую следующую функцию:
var through2 = require('through2');
function logFile(msg, lines) {
lines = lines || 5;
return through2.obj(function(file, enc, done) {
console.log('logFile ' + msg);
console.log(file.path);
console.log(file.contents.toString().split('\n').splice(0,lines).join('\n'))
this.push(file);
done();
});
}
И тогда, в вашей задаче
return gulp.src('...').pipe(logFile('name-of-task',5)).pipe(...)
Важными частями являются то, что вы вызываете this.push(file) и done().
Вероятно, есть библиотеки, которые делают то же самое.