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 (将#修改为@)