iNotify 是一个基于 Node.js 的 npm 包,可以监听文件夹内的变化事件并触发回调函数。在前端开发中,经常需要监听文件夹内文件的变化,并自动刷新页面。iNotify 可以帮助我们实现这个功能。
安装
使用 npm 命令进行安装:
--- ------- -------
使用
iNotify 提供了两种使用方式:Promise 和回调函数。
使用 Promise
----- - ------- - - ------------------- ----- -------- ------- - ----- -------- - ----- --------------------- ------------------- ----- ----------------- ---------- ----- ----- ---------------------- - ------------------- --- -------------------- ----- ----- -- - ----------------- ------------- ----------- -- ------- ---- ---- -- - --------
首先,我们引入 Inotify
类并创建一个 notifier 实例。通过 addWatch()
方法添加要监听的文件夹路径,设置监听的事件类型(如文件写入和移动)。然后,在 notifier.on('event', callback)
中注册事件回调函数,当文件夹内有变化时触发该函数。
使用回调函数
----- - ------- - - ------------------- -------- ------- - ----- -------- - --- ---------- ------------------- ----- ----------------- ---------- ----- ----- ---------------------- - ------------------- -- ------- -- - ----------------- ------------- ----------- -- ------- ---- ---- --- - --------
这种方式与 Promise 类似,只是事件回调函数直接传递给 addWatch()
方法。
参数说明
addWatch() 方法参数
path
:要监听的文件夹路径。recursive
:是否递归监听子文件夹,默认为false
。mask
:要监听的事件类型,可以使用|
运算符组合多个事件类型。常用事件类型包括:Inotify.IN_ACCESS
:文件被访问。Inotify.IN_MODIFY
:文件被修改。Inotify.IN_ATTRIB
:文件元数据改变(如权限、所有者等)。Inotify.IN_CLOSE_WRITE
:文件被关闭且内容写入成功。Inotify.IN_DELETE
:文件被删除。Inotify.IN_MOVE
:文件被移动或重命名。Inotify.IN_MOVED_FROM
:文件被移出监听的文件夹。Inotify.IN_MOVED_TO
:文件被移入监听的文件夹。
event 对象属性
事件回调函数的参数 event
是一个对象,包含以下属性:
name
:发生变化的文件名。mask
:触发事件的事件类型。cookie
:用于区分重复事件的编号。watch
:指向监视器的描述符。time
:事件发生时间戳(秒)。mtime
:文件最后修改时间戳(秒)。
深度解析
iNotify 使用了 Linux 的 inotify 机制,它是基于内核的文件系统事件通知接口,可以监听文件和目录的各种事件,如打开、读取、关闭、写入、删除、移动、重命名等。当文件系统中发生指定事件时,内核会触发一个 inotify 事件,并将事件信息放入内核缓冲区中。iNotify 通过读取该缓冲区获取事件信息并触发回调函数。
因为 inotify 是 Linux 特有的机制,所以 iNotify 只能运行在 Linux 或类 Unix 系统上。如果需要在 Windows 上使用类似功能,可以使用其他 npm 包,如 chokidar
。
指导意义
iNotify 可以帮助开发者实现在文件夹内监听文件变化的功能
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/36050