您好,我正在尝试在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'
。这在某种程度上是不一致的,但它可以工作。