资讯专栏INFORMATION COLUMN

NPM酷库:chokidar监视文件变化

forsigner / 1678人阅读

摘要:酷库,每天两分钟,了解一个流行库。像等工具都提供模式,当磁盘文件变化后自动重新运行打包。今天我们要学习的就是一款专门用于文件监控的库。可以监控各种文件文件夹变化事件,包含等。

NPM酷库,每天两分钟,了解一个流行NPM库。

像 webpack / grunt /gulp 等工具都提供watch模式,当磁盘文件变化后自动重新运行打包。今天我们要学习的chokidar就是一款专门用于文件监控的库。

Node.js 标准库

其实Node.js 标准库中提供 fs.watch 和 fs.watchFile 两个方法用于处理文件监控,但是为什么我们还需要chokidar呢?因为 fs.watch 和 fs.watchFile 存在以下问题:

OS X 系统环境不报告文件名变化

OS X 系统中使用Sublime等编辑器时,不报告任何事件

经常会报告两次事件

多数事件通知为 rename

还有其他大量的问题

不能够简单地递归监控文件树

chokidar 用法
const chokidar = require("chokidar");

const watcher = chokidar.watch("file, dir, glob, or array", {
  ignored: /(^|[/])../,
  persistent: true
});

watcher
  .on("add", path => console.log(`File ${path} has been added`))
  .on("change", path => console.log(`File ${path} has been changed`))
  .on("unlink", path => console.log(`File ${path} has been removed`))
  .on("addDir", path => console.log(`Directory ${path} has been added`))
  .on("unlinkDir", path => console.log(`Directory ${path} has been removed`))
  .on("error", error => console.log(`Watcher error: ${error}`))
  .on("ready", () => console.log("Initial scan complete. Ready for changes"))
  .on("all", (event, path) => console.log(event,path))
  .on("raw", (event, path, details) => {
    log("Raw event info:", event, path, details);
  });

chokidar 可以用于监控文件、文件夹变化,我们可以传入 glob 文件匹配模式,并可以简单实现递归目录监控。chokidar 可以监控各种文件、文件夹变化事件,包含 add , change , unlink , addDir , unlinkDir 等。

参考资料

https://github.com/paulmillr/...

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92512.html

相关文章

  • 重构smart-import

    摘要:前情提要自动工具,前端打字员的自我救赎记第一次发布包经历,是重构中的代码是版本可以工作的代码配置文件待导入的模块引用模块的文件引用模块的方式忽略的模块实现监听文件的删除和添加以上代码主要使用了来监听文件的变化。 前情提要 自动 Import 工具,前端打字员的自我救赎 记第一次发布npm包经历,smart-import GitHub:smart-import develop是重构中的代...

    Pocher 评论0 收藏0
  • NPM酷库:semver 语义化版本判断

    摘要:今天在此向大家推荐一种非常流行的版本号命名规则语义化版本。语义化版本约定修订版本号代表在和之前接口不变的前提下修正了。就是专门用于语义化版本号检查的库,其也是语义化版本标准的制定者。 NPM酷库,每天两分钟,了解一个流行NPM库。 软件的命运就是不断维护、更新、迭代,所以我们用版本号来区分一个软件的不同时期和形态,版本号的命名方式有各种各样,有的以小数表示(几点几),有的以日期表示,有...

    Carbs 评论0 收藏0
  • NPM酷库:depd 声明弃用功能

    摘要:有没有优雅的方式呢今天我们了解的库就是专门来控制输出弃用功能警告日志的。声明弃用函数使用包裹一层我们要废弃的函数,那么这个函数在被第一次调用时,就会自动输出警告信息。声明弃用属性使用声明对象指定的属性被弃用。 NPM酷库,每天两分钟,了解一个流行NPM库。 Node.js 高效率编程的基础是大量的NPM开源库,开发应用时,找特定领域的NPM库要比自己从头写代码要高效得多。如果某个领域没...

    paulquei 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    baukh789 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<