在前端开发中,需要对文件进行筛选和操作,而使用 glob
工具可以更加方便地实现这些操作。glob-extra
是基于 glob
的扩展工具,提供了更加强大的功能,使用起来也非常简单方便。
安装
使用 npm
进行安装:
npm install glob-extra --save-dev
示例代码
const glob = require('glob-extra'); glob('src/**/*.{js,json}', (err, files) => { console.log(files); });
上面的代码使用了 glob-extra
的 glob
方法来查找 src
文件夹下的所有 js
和 json
文件,并将结果输出到控制台上。
支持的特性
glob-extra
支持以下的特性:
- 修改
cwd
- 修改
root
- 修改
nocase
- 修改
mark
- 修改
nosort
- 修改
nodir
- 修改
follow
- 修改
symlink
- 修改
realpathCache
- 修改
statCache
- 修改
readdirCache
- 修改
readdirOpts
- 修改
absolute
- 修改
globstar
- 修改
negate
- 修改
dot
- 修改
nomount
- 修改
silent
- 修改
cache
- 修改
stat
- 修改
ignore
- 修改
matchBase
- 修改
nonegate
- 修改
nonull
- 支持
async
和await
使用方法
修改 cwd
cwd
是当前工作目录的路径,可以使用 glob.cwd()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 cwd
:
glob.cwd('path/to/dir');
修改 root
root
是根目录的路径,可以使用 glob.root()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 root
:
glob.root('path/to/dir');
修改 nocase
nocase
表示是否区分大小写,可以使用 glob.nocase()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nocase
:
glob.nocase(true);
修改 mark
mark
表示是否使用尾随斜杠,可以使用 glob.mark()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 mark
:
glob.mark(true);
修改 nosort
nosort
表示是否排序结果,可以使用 glob.nosort()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nosort
:
glob.nosort(true);
修改 nodir
nodir
表示是否包含目录,可以使用 glob.nodir()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nodir
:
glob.nodir(true);
修改 follow
follow
表示是否跟随符号链接,可以使用 glob.follow()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 follow
:
glob.follow(true);
修改 symlink
symlink
表示是否跟随符号链接,可以使用 glob.symlink()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 symlink
:
glob.symlink('path/to/dir');
修改 realpathCache
realpathCache
表示缓存符号链接的路径,可以使用 glob.realpathCache()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 realpathCache
:
glob.realpathCache({ 'path/to/symlink': 'path/to/dir', });
修改 statCache
statCache
表示缓存 fs.stat()
的结果,可以使用 glob.statCache()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 statCache
:
glob.statCache({ 'path/to/file': {}, });
修改 readdirCache
readdirCache
表示缓存 fs.readdir()
的结果,可以使用 glob.readdirCache()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 readdirCache
:
glob.readdirCache({ 'path/to/dir': ['file1', 'file2', 'file3'], });
修改 readdirOpts
readdirOpts
表示传递给 fs.readdir()
的选项,可以使用 glob.readdirOpts()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 readdirOpts
:
glob.readdirOpts({ withFileTypes: true, });
修改 absolute
absolute
表示是否返回绝对路径,可以使用 glob.absolute()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 absolute
:
glob.absolute(true);
修改 globstar
globstar
表示是否启用 **
匹配,可以使用 glob.globstar()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 globstar
:
glob.globstar(false);
修改 negate
negate
表示是否包含匹配的文件,可以使用 glob.negate()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 negate
:
glob.negate(true);
修改 dot
dot
表示是否匹配文件名第一个字符为 .
的文件,可以使用 glob.dot()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 dot
:
glob.dot(false);
修改 nomount
nomount
表示是否不跟随 mount 点,可以使用 glob.nomount()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nomount
:
glob.nomount(true);
修改 silent
silent
表示是否不输出错误信息,可以使用 glob.silent()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 silent
:
glob.silent(true);
修改 cache
cache
表示缓存匹配的结果,可以使用 glob.cache()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 cache
:
glob.cache({ 'path/to/file.js': true, });
修改 stat
stat
表示是否使用 fs.stat()
来检查文件,可以使用 glob.stat()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 stat
:
glob.stat(true);
修改 ignore
ignore
表示忽略的文件,可以使用 glob.ignore()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 ignore
:
glob.ignore([ '.git/*', 'node_modules/*', ]);
修改 matchBase
matchBase
表示是否使用 basename 进行匹配,可以使用 glob.matchBase()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 matchBase
:
glob.matchBase(true);
修改 nonegate
nonegate
表示禁用 !
排除符号,可以使用 glob.nonegate()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nonegate
:
glob.nonegate(true);
修改 nonull
nonull
表示如果没有匹配,返回一个空数组,可以使用 glob.nonull()
来修改。例如,在执行 glob()
方法前,可以使用以下代码修改 nonull
:
glob.nonull(true);
支持 async
和 await
glob-extra
支持 async
和 await
,可以使用以下代码调用:
(async () => { try { const files = await glob.async('path/to/dir/**/*'); console.log(files); } catch (error) { console.error(error); } })();
总结
本文介绍了 glob-extra
的使用方法和支持的特性,如果你需要更为灵活和强大的文件操作工具,不妨试试 glob-extra
。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/62112