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


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

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

我目前的代码:

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

通过输出返回的值 gulp.src() 同 index[0] 我明白了 undefined 而整个 index 只输出一个没有任何文件路径的大字典。


5906
2017-08-02 11:40


起源



答案:


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

gulp.src(globs [,options])

发出匹配提供的glob或一组globs的文件。返回一个   可以通过管道连接到插件的乙烯基文件流。

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

glob指的是node-glob语法,或者它可以是直接文件路径。

水珠

类型:字符串或数组

要读的全球或一系列球。

选项

类型:对象

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

除了支持的选项之外,gulp还添加了一些其他选项   通过node-glob和glob-stream

所以看来你需要进一步研究这个问题。否则这可能有帮助 在gulp.src()中获取当前文件名


2
2017-08-02 12:54



我用nodejs的内部创建了一个解决方法 js 图书馆。 fs.readdirSync() 列出已定义文件夹的所有文件。 - user3147268


答案:


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

gulp.src(globs [,options])

发出匹配提供的glob或一组globs的文件。返回一个   可以通过管道连接到插件的乙烯基文件流。

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

glob指的是node-glob语法,或者它可以是直接文件路径。

水珠

类型:字符串或数组

要读的全球或一系列球。

选项

类型:对象

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

除了支持的选项之外,gulp还添加了一些其他选项   通过node-glob和glob-stream

所以看来你需要进一步研究这个问题。否则这可能有帮助 在gulp.src()中获取当前文件名


2
2017-08-02 12:54



我用nodejs的内部创建了一个解决方法 js 图书馆。 fs.readdirSync() 列出已定义文件夹的所有文件。 - user3147268


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

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

5
2017-07-29 19:00





目前的解决方案是:

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

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

2
2017-11-28 12:42





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);
        });
});


1
2018-04-20 08:33





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

const glob = require("glob");

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

1
2018-04-20 14:36