chokidar - chokidar 初识(初识案例演示、初识案例解读、初识案例测试)

一、chokidar

1、chokidar 概述
  1. chokidar 是一个用于监视文件系统变化的 Node.js

  2. chokidar 提供了一种简单、高效的方式来监视文件和目录的创建、修改、删除等操作

  3. chokidar 是是 fs.watchfs.watchFile方法 的增强版,解决了它们在一些平台上的不一致性和局限性

2、chokidar 的特点
  1. 跨平台的支持:chokidar 在 Windows、Linux、macOS 上都能很好地工作,并且处理了不同平台上的文件系统事件差异

  2. 丰富的 API:chokidar 提供了丰富的 API 来监听文件系统的各种变化,包括文件或目录的创建、修改、删除、重命名

  3. 灵活的配置:chokidar 可以通过配置选项来调整监视行为,例如,忽略某些文件、延迟事件触发等

  4. 高性能:chokidar 使用了原生文件系统事件(例如,inotify、kqueue 等)来提供高效的文件系统监视

3、chokidar 的适用场景
  1. 开发工具:在开发过程中自动重新编译、重新加载、重新运行测试等

  2. 文件同步:在文件发生变化时自动同步到其他位置或服务器

  3. 日志监控:实时监控日志文件的变化并进行分析或报警

  • chokidar 被许多流行的工具和框架使用,例如,Webpack、Vite、Gulp 等
4、chokidar 引入
  • 通过 npm 安装 chokidar
npm install chokidar

二、chokidar 初识案例

1、案例演示
const chokidar = require("chokidar");const watcher = chokidar.watch(".", {ignored: /(^|[\/\\])\../,persistent: true,ignoreInitial: true,
});watcher.on("add", (path) => {console.log(`文件被添加: ${path}`);
});watcher.on("change", (path) => {console.log(`文件被修改: ${path}`);
});watcher.on("unlink", (path) => {console.log(`文件被删除: ${path}`);
});watcher.on("addDir", (path) => {console.log(`目录被添加: ${path}`);
});watcher.on("unlinkDir", (path) => {console.log(`目录被删除: ${path}`);
});watcher.on("all", (event, path) => {console.log(`事件: ${event}, 路径: ${path}`);
});
2、案例解读
(1)创建监视器
  1. 通过 require 引入 chokidar
const chokidar = require("chokidar");
  1. 创建监视器,监视当前目录(.)及其子目录中的文件和目录
const watcher = chokidar.watch(".", {ignored: /(^|[\/\\])\../,persistent: true,ignoreInitial: true,
});
配置项说明
ignored:...忽略以点(.)开头的文件或目录(例如,.git.env 等)
persistent: true持续监视文件系统
ignoreInitial: true忽略初始扫描时的事件,如果设置为 false,则会在启动监视器时触发所有现有文件的事件
(2)监听事件
  1. 监听文件添加事件
watcher.on("add", (path) => {console.log(`文件被添加: ${path}`);
});
  1. 监听文件修改事件
watcher.on("change", (path) => {console.log(`文件被修改: ${path}`);
});
  1. 监听文件删除事件
watcher.on("unlink", (path) => {console.log(`文件被删除: ${path}`);
});
  1. 监听目录添加事件
watcher.on("addDir", (path) => {console.log(`目录被添加: ${path}`);
});
  1. 监听目录删除事件
watcher.on("unlinkDir", (path) => {console.log(`目录被删除: ${path}`);
});
  1. 监听所有事件
watcher.on("all", (event, path) => {console.log(`事件: ${event}, 路径: ${path}`);
});
3、案例测试
  1. 在当前目录,新建 test.txt 文件,输出结果
文件被添加: test.txt
事件: add, 路径: test.txt
  1. 在当前目录,修改 test.txt 文件,输出结果
文件被修改: test.txt
事件: change, 路径: test.txt
  1. 在当前目录,删除 test.txt 文件,输出结果
文件被删除: test.txt
事件: unlink, 路径: test.txt
  1. 在当前目录,新建 test 目录,输出结果
目录被添加: test
事件: addDir, 路径: test
  1. 在当前目录,删除 test 目录,输出结果
目录被删除: test
事件: unlinkDir, 路径: test

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38085.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七、服务器远程桌面报错

🌻🌻目录🌻🌻 一、远程桌面报错-用户账户限制(例如,时间限制)会阻止你登录。 一、远程桌面报错-用户账户限制(例如,时间限制)会阻止你登录。 原因是被远程的系…

不做颠覆者,甘为连接器,在技术叠层中培育智能新物种

--- 一、技术融合的必然:从“非此即彼”到“兼容共生” 当大模型的热浪撞上传统IT的礁石,企业智能化的真相浮出水面: 新旧技术的“量子纠缠”:MySQL与向量数据库共享数据总线,规则引擎与大模型共处决策链路 需求进…

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中,数据是核心资产。然而,虽然许多网站的文本内容可以免费访问,但手动一条一条采集,不仅耗时耗力,还容易出错。这种情况下,使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…

Blazor+PWA技术打造全平台音乐播放器-从音频缓存到离线播放的实践之路

基于PWA技术打造全平台音乐播放器:从音频缓存到离线播放的实践之路 这篇文章是自己的想法结合AI之后润色的。在数字音乐领域,用户期望随时随地享受音乐,无论是手机还是电脑,无论是在线还是离线。**渐进式Web应用(PWA&…

众乐影音-安卓NAS-Player的安装和设置说明

众乐影音是耘想公司基于原有的安卓NAS,增加影音和图片播放功能后,推出的一款新概念NAS-Player。它不仅可以接收手机端推送的视频,音频和图片文件进行播放,还可以把任何一台安卓设备,比如手机、机顶盒、各种安卓盒子等&…

Linux shell脚本-概述、语法定义、自定义变量、环境变量、预设变量、变量的特殊用法(转义字符、单双引号、大小括号)的验证

目录 1.shell概述 1.1作为应用程序: 1.2 shell 作为一门语言 2.shell 语法 2.1 shell脚本的定义与执行 (1)新建文件 (2)程序开头第一行 必须写shell的类型 (3)程序编写完后&#xff0c…

redis集群的原理是什么?

大家好,我是锋哥。今天分享关于【redis集群的原理是什么?】面试题。希望对大家有帮助; redis集群的原理是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 集群(Redis Cluster)是一种分布式解决方案&…

PicFlow:一个图片处理与上传工作流工具(图床上传工具)

自从学习搭建网站以来,我就把很多图片托管在七牛云等图床平台上。以前总是通过网页批量上传,需要登录并一步步跳转网页操作,久而久之就厌烦了,于是花了一天时间用 Python 写了一个工具 —— PicFlow,从名字可以看出&am…

常⻅CMS漏洞之一:WordPress

WordPress是⼀个以PHP和MySQL为平台的⾃由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截⾄2018年4⽉,排名前1000万的⽹站中超过30.6%使⽤WordPress。 WordPress是最受欢迎的⽹站 内容管理系统。全球有⼤约30%的⽹站(7亿5000个)都是使⽤WordP…

一文说清预训练与微调:AI的双重训练法则

什么是预训练? 预训练是大型语言模型训练的第一步。它在资金和计算能力的支持下,通过深入分析大量的文本数据,使模型建立起语言的基本构架。在这一阶段,模型通过学习海量的书籍、文章和网页,识别出语言的语法、句法和…

【TI MSPM0】Timer学习

一、计数器 加法计数器:每进入一个脉冲,就加一减法计算器:每进入一个脉冲,就减一 当计数器减到0,触发中断 1.最短计时时间 当时钟周期为1khz时,最短计时时间为1ms,最长计时时间为65535ms 当时…

Vue 中的日期格式化实践:从原生 Date 到可视化展示!!!

📅 Vue 中的日期格式化实践:从原生 Date 到可视化展示 🚀 在数据可视化场景中,日期时间的格式化显示是一个高频需求。本文将以一个邀请码关系树组件为例,深入解析 Vue 中日期格式化的 核心方法、性能优化 和 最佳实践…

C语言的数据类型与变量(完整版)

目录 一、基本数据类型 (一)字符类型 (二)整数类型 1、短整型 — short 2、整型 — int 3、长整型 — long 4、长长整型 — long long (三)布尔类型 (四)浮点类型 1、单精…

免费下载 | 2025低空经济产业发展报告

低空经济概览 产业链条:低空经济产业链分为上游的低空经济基础设施(如空管系统、飞行基地等)、中游的低空制造(包括无人机、eVTOL、直升机等飞行器的设计、研发、生产)和下游的低空运营及飞行服务。低空经济以低空空域…

git_version_control_proper_practice

git_version_control_proper_practice version control,版本控制的方法之一就是打tag 因为多人协作的项目团队,commit很多,所以需要给重要的commit打tag,方便checkout,检出这个tag 参考行业的实践方式。如图git、linux…

金桔网桥连载4-详解

上一节我讲到小王升职加薪,越活越年轻,然后我们的网络就成这样的 如果继续往下进行网络扩展,恐怕看的人就越看越糊涂,如果一篇文章看到人越少,那么存在的价值越小,使我想起了每年一部的梦工厂电影&#xff…

从GTC2025首次量子日看英伟达量子AI融合算力网络前景与趋势

GTC2025 Quantum Day 最新内容全部汇总: 技术名称描述合作伙伴/开发者应用场景/目标量子模拟器优化方案NVIDIA与IonQ、D-Wave合作,针对量子模拟器进行性能优化,提升量子计算任务效率。IonQ、D-Wave量子算法开发、复杂系统模拟混合量子-经典计算架构结合量子计算与经典GPU加速…

24.map和set的使用

一、序列式容器和关联式容器 序列式容器:逻辑结构为线性序列的容器,两个位置所存放的数据一般没有紧密关系,例如两个位置交换一下,逻辑结构没有改变。 关联式容器:通常是非线性结构(堆例外)&…

免费Typora1.8.6安装教程

🌟 Typora - 极简主义的 Markdown 编辑器免费指南 🌟 📌 什么是 Typora? Typora 是一款广受好评的 **所见即所得** 的 Markdown 编辑器,以极致简洁的界面和流畅的写作体验闻名。它让 Markdown 写作变得像使用 Word 一…

元音辅音及其字母组合发音

文章目录 单元音长元音/ɑː//ɔ://u://i://ɜː/// 短元音/ʌ//ɒ//ʊ//ɪ//ə//e/ 双元音/eɪ//aɪ//ɔɪ//ɪə//eə//ʊə//əʊ//aʊ/ 辅音3个鼻辅音m n ŋ 5个独立浊辅音w j r l h 20个清浊相对的辅音s zʃ ʒf vθ p bt dk gts dztʃ dʒtr dr 以下是列举的部分字母组合…