繁体   English   中英

使用 gulp.src() 列出数组中的所有文件

[英]List all files in array with gulp.src()

我正在尝试为给定文件夹中的所有文件(路径)创建索引。 到目前为止,我使用gulp.src(filePath)来实现这一点。 根据这篇博客文章,它应该可以工作:

gulp.src(files) 是包含文件/文件路径的字符串或数组。

我目前的代码:

gulp.task("createFileIndex", function(){
    var index = gulp.src(['./content/**/*.*']);
    console.log("INDEX:", index[0]);
});

通过使用index[0]输出gulp.src()的返回值,我得到了undefined并且整个index只输出一个没有任何文件路径的大字典。

目前的解决办法是:

var gulp = require('gulp');
var debug = require('gulp-debug');

gulp.src(sources)
  .pipe(debug());

正如 OP 在评论中所述,这个问题的一个简单解决方案是使用fs.readdirSync而不是gulp.src

fs = require("fs");
fs.readdirSync(directoryPath); // ["file1", "file2"]

 var through = require('through2'); gulp.task('getFileList', function () { var fileList = []; gulp.src(['./someFolder/**/*.ext', '!./someFolder/unwantedFolder/**/*']) .pipe(through.obj(function (file, enc, cb) { fileList.push(file.path); cb(null); })) .pipe(gulp.dest('./temp/')) .on ('end', function () { console.log(fileList); }); });

根据gulp.src ( https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options ) 上的gulp文档

gulp.src(globs[, options])

发出与提供的 glob 或一组 glob 匹配的文件。 返回可以通过管道传输到插件的 Vinyl 文件流。

 gulp.src('client/templates/*.jade') .pipe(jade()) .pipe(minify()) .pipe(gulp.dest('build/minified_templates'));

glob 是指 node-glob 语法,也可以是直接文件路径。

球体

类型:字符串或数组

要读取的 Glob 或 glob 数组。

选项

类型:对象

通过 glob-stream 传递给 node-glob 的选项。

gulp 除了 node-glob 和 glob-stream 支持的选项外,还增加了一些额外的选项

因此,您似乎需要进一步研究这一点。 否则这可能有帮助在 gulp.src() 中获取当前文件名

如果您想要的是来自 glob(如 gulp.src)的文件名数组,请使用:

const glob = require('glob');

const fileArray = glob.sync('./content/**/*.*');

或者你可以使用原生 Node.js 函数readdirSync

const fs = require('fs');

const syncImgFolder = (done) => {
    const files = fs.readdirSync('/path/');
}

您可以在 gulp 4 中执行以下操作:

gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM