我需要全局 ./../path/to/files/**/*.txt
但不是像这样接收匹配:
./../path/to/files/subdir/file.txt
我需要去掉根:
subdir/file.txt
目前,我有:
oldwd = process.cwd()
process.chdir(__dirname + "/../path/to/files")
glob.glob("**/*.txt", function (err, matches) {
process.chdir(oldwd)
});
但它有点难看,而且似乎还有一个竞争条件:有时 glob 出现在 oldwd 上。所以必须去。
我正在考虑简单地映射 matches
并使用字符串操作剥离前导路径。由于 glob 返回与 dotdirs 解析的匹配项,我想我必须对我的搜索和替换字符串执行相同的操作。这变得非常困惑,我想知道是否有更好的(内置或库?)方法来处理这个问题。
那么,在 Node.js 中进行 glob 并且 只是 获得“匹配”部分的好、简洁和正确的方法是什么? JavaScript 和 CoffeeScript 都适合我
最佳答案
将目录传递给选项,并由 glob 处理所有这些困惑。
glob.glob("**/*.txt", {cwd: '../../wherever/'}, function(err, matches) {
...
});
关于javascript - Node.js 中的 glob 并仅返回匹配项(无前导路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676979/