deno.com

观看文件系统

在 Github 上编辑

在创建框架或 CLI 工具时,通常需要监视文件系统的更改。

监视文件系统最简单的方法是使用 Deno 内置的 watchFs。Deno.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 --allow-read https://docs.deno.org.cn/examples/scripts/watching_files.ts

您找到所需的内容了吗?

隐私政策