node.js - 相同的模式适用于 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 上接受的语法的参考。
有人可以在这里指出问题吗?谢谢。
解决方案
虽然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'
。这在某种程度上是不一致的,但它确实有效。
推荐阅读
- linux - 没有建立连接时 TCP 服务器接受()连接
- typescript - 如何在打字稿中使用条纹类型
- c# - C# BinaryWriter/BinaryReader - 阅读器顺序与写入顺序不匹配
- azure - Azure Function 2.0 使用应用程序设置 json
- ios - 如何在 SwiftUI 中淡化 SF 符号的顶部或底部边缘?
- python - 我正在寻找一个类似于“str.isupper()”但带有符号的函数?
- python - 为什么看和说序列的这两种实现有不同的执行时间?
- markdown - 在 bookdown 和 markdown 中转义 HTML 仍然很困扰
- javascript - React Apollo Client useQuery Hook gql Uncaught TypeError:(...) is not a function
- php - 类别页面上的 ACF 组