Gulp:如何查看我的 glob 的文件名

Jes*_*sen 3 gulp node-glob

在 Gulp 中,我有一个想要验证的 glob 模式。例如:

gulp.task('clean-requirejs', function() {
    return gulp.src([
        './public/res-min/**/*.js'
    ])
        .pipe(clean());
});
Run Code Online (Sandbox Code Playgroud)

我想看看 glob['./public/res-min/**/*.js']是如何扩展的。如何打印本示例中生成的参数/文件列表gulp.src

更新:事实证明有一个非常简单的方法gulp-print可以解决这个问题,如下所示:

var print = require('gulp-print').default;


[....]

.pipe(print());
Run Code Online (Sandbox Code Playgroud)

Rob*_*cki 5

虽然肯定有更干净的解决方案,但当我不想用 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();
  });
}
Run Code Online (Sandbox Code Playgroud)

然后,在你的任务中

return gulp.src('...').pipe(logFile('name-of-task',5)).pipe(...)
Run Code Online (Sandbox Code Playgroud)

重要的部分是调用 this.push(file) 和 done()。

可能有一些库可以做同样的事情。