Skip to content
导航

使用第三方库处理文件

本文介绍一些第三方库解决实际开发中的特定问题

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.watchfs.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']
})()

Demo