我需要匹配 ./../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返回已解决的点目录匹配,我想我也必须对我的搜索和替换字符串进行相同的处理。这变得越来越混乱,我想知道是否有更好的方法(内置或库?)来处理这个问题。
那么,在Node.js中进行全局匹配的好、整洁和正确的方法是什么,只需获取"匹配"部分?JavaScript和CoffeeScript都可以。
cwd
的情况下使用它。如果与wavy一起使用,它可以使从任何模块以相同方式(相对于您的应用程序的根目录)要求事物变得容易:例如require('~/app/file.txt');
- DJDaveMark