glob模块
glob 是一种文件匹配模式,起源于 Unix ,比如我们常见 *.js 匹配所有 js 文件就是使用了 glob 模式。
- 使用方法:
glob(pattern, [options], callback)
glob 方法接收三个参数:pattern: 匹配规则字符串,options: 配置项(可选),callback: 回调函数 (error, matchFiles) => {}
如果不想使用回调的方式,可以使用同步方法 glob.sync(pattern, options) ,用法一致,返回值即是匹配文件数组。
官网链接:https://github.com/isaacs/node-glob
注意:glob 模块本身不直接支持正则表达式语法,而是它提供了一些特殊的通配符模式来匹配文件路径,例如,*、?、等通配符可以用来匹配文件名中的字符,** 可以用来匹配任意数量的子目录等。
在 glob 模式中,*
和 ?
是用于匹配文件名的通配符,它们分别表示不同的匹配规则:
-
*
(星号):*
匹配任意数量(包括零个)的字符,包括字母、数字、符号等。- 例如,
*.js
匹配所有以.js
结尾的文件名,而file*.txt
匹配所有以 “file” 开头的.txt
文件名。
-
**
匹配任意数量的字符串- 例如:
scripts/**/*.js
- 例如:
-
?
(问号):?
匹配单个字符,可以是任意字符,但只匹配一个字符。- 例如,
f?le.txt
匹配 “file.txt”、“fable.txt” 等文件名,但不匹配 “files.txt”。
因此,区别在于 *
匹配任意数量的字符(包括零个),而 ?
只匹配单个字符。这两个通配符在文件路径匹配中经常被使用,可以帮助您灵活地指定文件名的匹配规则。
ensureDir()
fs-extra
是一个流行的 Node.js 模块,它提供了一些扩展的文件系统操作功能。ensureDir
方法是其中之一,它用于确保指定的目录存在。如果目录不存在,ensureDir
方法会创建该目录;如果目录已经存在,则不会做任何操作。这个方法非常方便,可以确保在操作文件之前,所需的目录已经存在。
process.chdir
process.chdir () 方法是 process 模块的内置应用程序编程接口,用于更改当前工作目录。句法:
process.chdir(目录)
参数:此方法接受如上所述和如下所述的单个参数:
目录:这是必需的参数,指定当前工作目录要更改到的目录的路径。
返回值:此方法成功时不会返回任何值,但如果无法更改目录并指定“没有这样的文件或目录”,则会引发异常。下面的示例说明了Node.js 中process.chdir() 方法的使用:示例 1:
// Node.js program to demonstrate the
// process.chdir() Method
// Include process module
const process = require('process');
try {
// Change the directory
process.chdir('../os');
console.log("directory has successfully been changed");
} catch (err) {
// Printing error if occurs
console.error("error while changing directory");
}