npm 包 iNotify 使用教程

阅读时长 4 分钟读完

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

纠错
反馈