相同的模式适用于chokidar-cli,但不适用于Windows上的chokidar

时间:2018-05-17 11:54:45

标签: node.js windows chokidar

您好我试图在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中。另外,我没有找到关于chokidar在Windows上接受的语法的参考。

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

1 个答案:

答案 0 :(得分:1)

虽然chokidar-cli使用反斜杠,但chokidar需要在glob路径中使用正斜杠。这有效:

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'。这有点不一致,但它确实有效。