使用node-glob ,是否可以指定一个仅返回前 X 个匹配文件而不是所有匹配的模式?
例如,如果我想要所有 JavaScript 文件,我的模式将是 **/*.js
。但是如果我只想要前 5 个 JavaScript 文件怎么办?
我意识到还有其他选项,例如我可以获取生成的文件集数组并将其切片。这里的基本情况使这变得很困难,因此我尝试直接从 glob 模式来完成此任务。
最佳答案
您可以像这样创建自己的 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()
来停止搜索。
关于node.js - 如何使用 Node glob 获取前 X 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439681/