1

使用node-glob,是否可以指定只返回前 X 个匹配文件而不是所有匹配的模式?

例如,如果我想要所有 JavaScript 文件,我的模式将是**/*.js. 但是如果我只想要前 5 个 JavaScript 文件怎么办?

我意识到还有其他选择,例如我可以获取生成的文件集数组并将其切片。这里的基本情况使这变得困难,所以我试图直接从 glob 模式中完成这一点。

4

1 回答 1

6

您可以像这样创建自己的 Glob 对象:

var i = 0;
var Glob = require("glob").Glob;
var mg = new Glob(pattern, options, cb);
mg.on("match", function(matched) {
    console.log(matched);
    i++;
    if(i == 5) mg.abort();
});

它是一个事件发射器,因此您可以侦听match找到文件时将触发的事件。随着每次匹配增加计数器,如果它达到您的阈值,您可以调用mg.abort()停止搜索。

于 2014-03-16T17:19:39.253 回答