您好,我正在尝试在Windows上设置Chokidar。我必须使用chokidar-cli进行操作,这是正确报告事件的命令行:

 chokidar "D:\PATH\**\WATCHED_FOLDER\*.TXT"


但是,当我尝试使用node index.js使用以下代码执行相同的操作时,不会报告该事件。

const chokidar = require('chokidar');
chokidar
    .watch('D:\\PATH\\**\\WATCHED_FOLDER\\*.TXT')
    .on('all', (event, path) => {
        console.log(event, path)
    })


我不知道为什么相同的glob表达式在命令行而不是在javascript中工作。我也没有找到Windows上chokidar接受的语法参考。

有人可以在这里指出问题吗?谢谢。

最佳答案

chokidar-cli使用反斜杠时,chokidar在全局路径中需要正斜杠。这有效:

const chokidar = require('chokidar');
chokidar
    .watch('D:/PATH/**/WATCHED_FOLDER/*.TXT')
    .on('all', (event, path) => {
        console.log(event, path)
    })


但请注意,变量path中的字符串仍然带有反斜杠:例如'D:\\PATH\\SUBFOLDER\\WATCHED_FOLDER\\TEST.TXT'。这在某种程度上是不一致的,但它可以工作。

10-08 04:47