本篇不对node命令做详细介绍。仅总结node常见模块的常见命令,仅起查阅作用。
1、global全局对象
__filename表示当前正在执行的脚本文件的绝对路径。__dirname表示当前执行脚本所在目录的绝对路径。
这 2 个变量,只在 CJS 模块下存在,如果是 ESM 将会出现以下的报错信息。 如果ESM模块中需要
dirname,可参考下面的文章:
2、process
-
process.argv返回一个数组,包含启动 Node.js 进程时传递的命令行参数。 -
process.cwd()获取当前工作目录的绝对路径。 -
process.env获取当前执行环境的环境变量 (对象形式)。 -
process.version获取当前 Node 版本。 -
process.exit([code]):终止 Node.js 进程,如果指定了code参数,则使用该参数作为退出状态码。 -
process.pid:返回进程的 PID (进程 ID); -
process.platform:返回运行 Node.js 的操作系统平台; -
process.arch:获取 CPU 架构信息。 -
process.stdout:标准输出流,常用process.stdout.write进行数据写入。 -
process.stdin:用于从标准输入流 (stdin) 读取数据。
3、path 模块
-
path.join将多个路径拼接成一个相对路径 (或绝对路径,取决于第一个路径是否为根路径)。 -
path.resolve将多个路径拼接成一个绝对路径,返回一个解析后的绝对路径。 -
path.dirname返回路径中的目录名。 -
path.basename返回路径中的文件名,并可选地去除给定的文件扩展名。 -
path.extname获取路径中的文件扩展名。 -
path.normalize用于规范化路径,将路径中的不规范部分调整为标准格式,可以用于处理以下问题:
- 路径中的斜杠数量过多的情况。
- 路径中存在的
./或../,即相对路径的情况。
-
path.parse用于解析文件路径,将其拆分为一个对象。 -
path.sep返回当前系统文件路径使用的分隔符。
4、fs 模块
-
fs.readFileSync同步读取内容。 -
fs.readFile异步读取内容。 -
fs.writeFileSync同步写入文件。 -
fs.statSync获取文件或者目录的基本信息。
返回的对象上还包含可直接调用的方案,用于判断文件类型。
const fileInfo = fs.statSync('./test.txt')
// 判断是文件还是目录
console.log(fileInfo.isFile(), fileInfo.isDirectory())
const dirInfo = fs.statSync('./test-dir')
// 判断是文件还是目录
console.log(dirInfo.isFile(), dirInfo.isDirectory())
try {
// 查询一个不存在的文件/目录信息(会抛出异常,需要自行捕获)
fs.statSync('not_exist.txt')
} catch (e) {
console.log('文件不存在')
}
-
fs.appendFileSync向文件末尾追加写入内容。 -
fs.renameSync方法用于文件移动,当然也可以是重命名文件。 -
fs.unlinkSync和fs.rmSync都可用于单文件删除。 -
fs.readdirSync获取目录下的文件信息。 -
fs.mkdirSync创建目录。(可通过设置recursive:true来递归创建多级目录) -
fs.rmdirSync删除目标目录。(recursive: true表明删除包含其子目录) -
fs.watch监听目录变更。