fs-extra 是一个比 node 内置 fs 模块更安全、更强大的文件操作库,支持 promise
和 async/await
,为使用者免去了很多心理负担。
一、安装使用
安装:
pnpm add fs-extra
文件复制代码演示:
const {
copy,
copySync
} = require('fs-extra')
// 异步
copy('/tmp/myfile', '/tmp/mynewfile', err => {
if (err) return console.error(err)
console.log('success!')
})
// 同步
try {
copySync('/tmp/myfile', '/tmp/mynewfile')
console.log('success!')
} catch (err) {
console.error(err)
}
二、常用API
- copy : 复制文件或目录,目录可以包含内容。
- emptyDir : 确保目录为空。如果目录不为空,则删除目录内容。如果该目录不存在,则创建该目录。目录本身不会被删除。
- ensureDir : 确保目录存在。如果目录结构不存在,则创建它。
- ensureFile : 确保文件存在。如果请求创建的文件位于不存在的目录中,则会创建这些目录。如果文件已存在,则不会对其进行修改。
- ensureLink : 确保链接存在。如果目录结构不存在,则创建它。
- ensureSymlink : 确保符号链接存在。如果目录结构不存在,则创建它。
- move : 移动文件或目录,甚至跨设备移动。
- outputFile : 几乎与(即它覆盖)相同 writeFile ,只是如果父目录不存在,则会创建它。 file 必须是文件路径(不允许使用缓冲区或文件描述符)。
- outputJson : 与 几乎 writeJson 相同,只是如果目录不存在,则会创建该目录。
- pathExists : 通过检查文件系统来测试给定路径是否存在。
- readJson : 读取 JSON 文件,然后将其分析为对象。
- remove : 删除文件或目录。目录可以包含内容。如果路径不存在,则静默不执行任何操作。
- writeJson : 将对象写入 JSON 文件。
同步方法在对应方法后面加上 Sync
即可,如:copySync
、emptyDirSync
等。
参考文档:https://github.com/jprichardson/node-fs-extra
欢迎访问:天问博客