条纹
本地访问 MacOS FSEvents in 节点.js
MacOS中的FSEvents API允许应用程序注册通知 更改给定目录树。 这是一个非常快和轻量级的替代品 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}去排队.
这是一个低层的图书馆。 用于跨平台文件监视模块 使用fenets,检查 乔基达尔。 。 。 .
使用量
npm install fsevents
仅支持 节点.js v8.16及以上。 。 。 .
const fsevents = require('fsevents');
// To start observation
const stop = fsevents.watch(__dirname, (path, flags, id) => {
const info = fsevents.getInfo(path, flags);
});
// To end observation
stop();
重要说明: API的行为与典型的JS API略有不同. 这个
stop函数 必须 为: 即使你不打算阻止监视者 也要找到并存放在某个地方 如果你忘了, 垃圾收集器 最终会踢入, 监视者将是不注册的, 和你召回 不再呼叫.
调用为第二个参数 .watch 只要操作系统发现
文件系统的更改。 这需要三个论点:
fsevents.watch(dirname: string, (path: string, flags: number, id: string) => void): () => Promise<undefined>
path: string- 文件系统中已更改的项目flags: number- 描述变化的数值id: string- 确定这一具体事件的独特身份
返回更紧密的回调, 当被调用为“ 返回承诺” 时, 当监视器进程被关闭时, 返回“ 返回承诺” .
fsevents.getInfo(path: string, flags: number, id: string): FsEventInfo
这个 getInfo 函数取 path, (中文(简体) ), flags 财务报告和审定财务报表 id 参数并将其转换为结构
比较容易消化 以确定是什么变化.
这个 FsEventsInfo 形状如下:
/**
* @typedef {'created'|'modified'|'deleted'|'moved'|'root-changed'|'cloned'|'unknown'} FsEventsEvent
* @typedef {'file'|'directory'|'symlink'} FsEventsType
*/
{
"event": "created", // {FsEventsEvent}
"path": "file.txt",
"type": "file", // {FsEventsType}
"changes": {
"inode": true, // Had iNode Meta-Information changed
"finder": false, // Had Finder Meta-Data changed
"access": false, // Had access permissions changed
"xattrs": false // Had xAttributes changed
},
"flags": 0x100000000
}
更改日志
- v2.3 支持苹果硅ARM CPU
- v2 支持节点8. 16+并大规模缩小包大小
- v1.2.8 支持节点 6+
- v1.2.7 支持节点 4+
解决问题
- 我开始
EBADPLATFORMUnsupported platform for fsevents错误. - 没事,没事的 FF77Ts是只马可斯。 其他平台被跳过 。 如果您想要隐藏此警告, 请向 NPA 错误跟踪器报告一个错误, 要求他们默认隐藏错误平台警告 .
许可证
MIT许可版权(C) 2010-2020 由菲利普·邓克尔(Philipp Dunkel),本·诺德怀斯(Ben Noordhuis),埃兰·尚卡尔(Elan Shankar),保罗·米勒(Paul Miller)所著——参见LICENSE文件.