yann-fs
v2.0.3
Published
Enhanced fs-extra with better error handling
Maintainers
Readme
yann-fs
一个增强版的 fs-extra 工具库,提供更优雅的错误处理方式和完整的 TypeScript 类型支持。
特性
- 完整封装 fs-extra 的异步方法
- 统一的错误处理返回格式
[error, data] - 支持全局错误处理配置
- 完整的 TypeScript 类型支持
- 同时支持 ESM 和 CommonJS
- 支持 Promise 和 async/await
安装
npm i yann-fs -S快速上手
mjs 模式
import fs, { remove } from 'yann-fs';
const [err, data] = await fs.remove(path);
// or
const [err, data] = await remove(path);cjs 模式
const fs = require('yann-fs);
const [err, data] = await fs.remove(path);API 文档
错误处理
fsConfig: 全局错误处理配置对象errHandler: 设置全局错误处理函数
fsTo<T>: 统一的错误处理包装函数,将 [error, data] 转换为单一返回值
文件操作
copy(src: string, dest: string, options?: CopyOptions): 复制文件或目录move(src: string, dest: string, options?: MoveOptions): 移动文件或目录remove(path: string): 删除文��或目录emptyDir(path: string): 清空目录但保留目录本身ensureFile(path: string): 确保文件存在,如果不存在则创建createFile(file: string): 创建新文件readFile(path: string, options?: ReadOptions): 读取文件内容writeFile(file: string, data: any, options?: WriteFileOptions): 写入文件内容appendFile(path: string, data: any, options?: WriteFileOptions): 追加内容到文件truncate(path: PathLike, len?: number): 截断文件到指定长度unlink(path: PathLike): 删除文件链接
JSON 操作
readJson<T>(path: string, options?: ReadOptions): 读取 JSON 文件writeJson(file: string, data: any, options?: WriteOptions): 写入 JSON 文件outputJson(file: string, data: any, options?: WriteOptions): 写入 JSON 文件,自动创建目录
目录操作
ensureDir(path: string, options?: EnsureOptions): 确保目录存在,如果不存在则创建mkdir(dir: string, options?: EnsureOptions): 创建目录mkdirs(dir: string, options?: EnsureOptions): 递归创建目录mkdtemp(prefix: string, options?: ObjectEncodingOptions): 创建临时目录readdir(path: string, options?): 读取目录内容rmdir(path: string): 删除目录
链接操作
ensureLink(src: string, dest: string): 确保硬链接存��,如果不存在则创建ensureSymlink(src: string, dest: string): 确保符号链接存在,如果不存在则创建createLink(src: string, dest: string): 创建硬链接createSymlink(src: string, dest: string): 创建符号链接
文件信息
stat(path: PathLike): 获取文件状态信息lstat(path: PathLike): 获取文件状态信息(不解析符号链接)pathExists(path: string): 检查路径是否存在isDir(path: PathLike, errHandler?): 检查路径是否为目录exists(path: string): 检查文件是否存在(不推荐使用)
权限操作
chmod(path: PathLike, mode: Mode): 修改文件权限chown(path: PathLike, uid: number, gid: number): 修改文件所有者access(path: PathLike, mode?: number): 检查文件访问权限
时间戳操作
utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): 修改文件访问和修改时间
文件监听
watch: 监听文件或目录变化
