使用第三方库处理文件
本文介绍一些第三方库解决实际开发中的特定问题
fs-extra
fs-extra 库包装了 fs 模块,在 fs 模块原本API的基础上,提供了新的实际开发中常用操作的API封装,支持回调、Promise用法,以及增加后缀Sync
的同步方法。
js
const fse = require('fs-extra')
fse.copy() // 复制文件或目录
fse.emptyDir() // 清空目录
fse.ensureFile() // 确保 filePath 文件存在,不存在则创建
fse.ensureDir() // 确保 dirPath 目录存在,不存在则创建
fse.move() // 移动文件或目录
fse.remove() // 删除文件或目录
// ...
chokidar
chokidar 库是替代 fs.watch
、fs.watchFile
的跨平台文件监视库,被广泛用于 webpack、vscode、pm2 等需要监视文件改动的应用。
js
const chokidar = require('chokidar')
// . 表示 process.cwd()
chokidar.watch('.').on('all', (event, path) => {
console.log(event, path)
})
上面的代码监视进程启动目录下,文件的添加(add)、删除(unlink)、修改(change)事件
glob
glob 库用于实现 shell 使用的模式匹配文件用法
js
// glob.js
const { glob } = require('glob')
;(async ()=>{
const files = await glob('**/*.js')
console.log(files) // ['glob.js']
})()