deno.com

监控文件系统

在创建框架或 CLI 工具时,通常需要监听文件系统的变化。

监听文件系统最简单的方法是使用 Deno 内置的 watchFsDeno.watchFs 返回一个 FsWatcher,它是一个异步迭代器。
let watcher = Deno.watchFs("./");
与异步迭代器交互最简单的方法是使用 JavaScript 的 for await of 语法。
for await (const event of watcher) {
  console.log(">>>> event", event);
要停止监听器,我们只需调用 watcher.close()
  watcher.close();
}
在实际应用中,应用程序很少需要立即响应每个变化。事件可能会重复,并且对相同的变化会分派多个事件。为了解决这个问题,我们可以“去抖”我们的函数。
import { debounce } from "jsr:@std/async/debounce";
在这种特定情况下,我们使用标准库来完成这项工作。此函数每两百毫秒最多运行一次。
const log = debounce((event: Deno.FsEvent) => {
  console.log("[%s] %s", event.kind, event.paths[0]);
}, 200);

watcher = Deno.watchFs("./");

for await (const event of watcher) {
  log(event);
}

使用 Deno CLI 在本地运行此示例

deno run -R https://docs.deno.org.cn/examples/scripts/watching_files.ts

您找到所需内容了吗?

隐私政策