查看全局依赖的存放路径
npm root -g
查看当前项目的源镜像 && 设置当前项目的源镜像
npm config get registry
npm config set registry https://registry.npmmirror.com/
__filename && __dirname
CJS下使用
__filename
:当前正在执行脚本的绝对路径。__dirname
:当前执行脚本所在目录的绝对路径。
EMS下使用
import { fileURLToPath } from 'url'
import { dirname } from 'path'
import { createRequire } from 'module'
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
console.log('__filename', __filename)
console.log('__dirname', __dirname)
const require = createRequire(import.meta.url)
console.log('name', require('./package.json').name)
process 用法
process.argv:返回一个数组,包含启动nodejs进程时传递的命令行参数。
第一个参数是 Node 在机器上的位置。
第二个参数是执行文件的绝对路径。
后续参数为命令行传递的自定义参数。
process.cwd():获取当前工作目录的绝对路径。
process.env:获取当前执行环境的环境变量(对象形式)
process.exit([code]):退出node进程
path
1.path.join()
将多个路径拼接成一个相对路径(或者绝对路径,取决于第一个参数是否是根路径)。
2.path.resolve
将多个路径拼接成一个绝对路径,返回一个解析后的绝对路径。
即如果传入相对路径,会以当前工作目录为基准,计算出绝对路径。如果传入的是绝对路径,则以传入的绝对路径为基础准
3.path.dirname
返回路径的目录名
4.path.basename
返回路径中的文件名,并可选的去给定的文件扩展名
5.path.extname
获取路径中的文件拓展名
6.path.normalize
规范化路径,将路径中不规范部分调整为标准格式,并处理以下问题:
- 路径中斜杠数量过多
- 路径中存在的
./
和../
,即相对路径情况。
7.path.parse
用于解析文件路径,将其拆解为一个对象
fs
一.文件操作
1.读取文件
fs.readFileSync
- 参数一:设置要读取的文件路径。
- 参数二:设置读取的编码格式。
utf-8方式读取
import fs from 'fs';
const con = fs.readFileSync('./demo.js', 'utf8');
console.log(con);
二进制方式读取
import fs from 'fs';
const buffer = fs.readFileSync('./demo.js');
console.log(buffer.toString());
2.写入文件
fs.writeFileSync
:
- 参数 1:输出文件路径
- 参数 2:输出内容
- 参数 3(可选):编码格式
import fs from 'fs';
fs.writeFileSync('./1.txt', 'hellow word', 'utf-8');
3.追加文件内容输出
使用 fs.appendFileSync
向文件末尾追加写入内容
import fs from 'fs';
fs.appendFileSync('./1.txt', '\nyangmy', 'utf-8');
4.移动/重命名文件
使用 fs.renameSync
重命名文件,或者移动文件位置
重命名文件:
import fs from 'fs';
fs.renameSync('./1.txt', '2.txt');
移动文件:
import fs from 'fs';
fs.renameSync('./2.txt', './src/2.txt');
5.删除文件
fs.rmSync
// 删除文件
fs.rmSync('./3.txt');
// 删除目录及下面的文件
fs.rmSync('test-dir', { recursive: true });
二.目录操作
1.### 读取目录所有文件
fs.readdirSync
,获取目录下的文件信息。
import fs from 'fs';
const files = fs.readdirSync('./src');
console.log(files);
可通过指定第二个参数 withFileTypes:true
使返回结果包含类型。
import fs from 'fs';
const files = fs.readdirSync('./src', { withFileTypes: true });
console.log(files.map((f) => ({ name: f.name, isDirectory: f.isDirectory() })));
2.创建目录
fs.mkdirSync
创建目录,可以根据设置recursive: true
参数来创建多级目录。
import fs from 'fs';
fs.mkdirSync('a/b/c', { recursive: true });
3.删除目录
fs.rmdirSync('a')
删除目录(不为空时不能删除)
import fs from 'fs';
fs.rmdirSync('a');
fs.rmdirSync('a', { recursive: true })
删除目录及目录下的文件和文件夹
import fs from 'fs';
fs.rmdirSync('a', { recursive: true });
4.监听目录变更
fs.watch
监听文件
import fs from 'fs';
// 监听当前目录下所有的文件和子目录中的文件
fs.watch('./src', { recursive: true }, (eventType, filename) => {
console.log(`File '${filename}' has changed: ${eventType}`);
});