首页 > 解决方案 > 相同的模式适用于 chokidar-cli,但不适用于 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 上接受的语法的参考。

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

标签: node.jswindowschokidar

解决方案


虽然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'。这在某种程度上是不一致的,但它确实有效。


推荐阅读