您好我试图在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上接受的语法的参考。
有人可以在这指出问题吗?感谢。
答案 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'
。这有点不一致,但它确实有效。