微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Chokidar 在 Windows 上为一个目录运行多个读取目录进程

如何解决Chokidar 在 Windows 上为一个目录运行多个读取目录进程

我注意到 Windows 上的 chokidar 运行的 _read 进程与所选目录中的文件一样多。它仅在 Windows 上发生,对于 Mac OS,chokidar 每个目录仅运行 1 个读取进程。

经过一些研究,看起来 chokidar 运行了一个巨大的循环,其中包含加载 cpu 并使 Electron 应用程序滞后的读取操作。

_read 进程是由 chokidar 触发的 readdirp 库产生的,用于扫描选定的目录,但我不明白为什么它的操作如此之多,尤其是针对 mac 的只有 1 个。

以下是 chokidar 配置示例:

const options = {
    awaitWriteFinish: true,binaryInterval: 500,depth: 9,ignoreInitial: false,ignorePermissionErrors: false,interval: 500,persistent: true,}

const watcher = chokidar.watch(folderPath,options)

watcher.on('add',(event,path) => {
  const buffer = fs.readFile(filePath,{
        flag: 'r',});
  const filehash = cr2.buf(buffer);
  console.log(filehash)
});

我注意到的读取操作与目录相关,而不是与文件相关,对于具有 5k 资产的目录,这与将被触发 5k 次的循环相同。

chokidar:3.5.1 视窗 10

为什么会这样?也许我的选项对象错了或者我错过了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。