Skip to content

Bun implémente le module node:fs, y compris la fonction fs.watch pour écouter les changements du système de fichiers.

Ce bloc de code écoute les changements de fichiers dans le répertoire actuel. Par défaut, cette opération est superficielle, ce qui signifie que les changements dans les sous-répertoires ne seront pas détectés.

ts
import { watch } from "fs";

const watcher = watch(import.meta.dir, (event, filename) => {
  console.log(`${event} détecté dans ${filename}`);
});

Pour écouter les changements dans les sous-répertoires, passez l'option recursive: true à fs.watch.

ts
import { watch } from "fs";

const watcher = watch(import.meta.dir, { recursive: true }, (event, relativePath) => {
  console.log(`${event} détecté dans ${relativePath}`);
});

En utilisant le module node:fs/promises, vous pouvez écouter les changements en utilisant for await...of au lieu d'un callback.

ts
import { watch } from "fs/promises";

const watcher = watch(import.meta.dir);
for await (const event of watcher) {
  console.log(`${event.eventType} détecté dans ${event.filename}`);
}

Pour arrêter d'écouter les changements, appelez watcher.close(). Il est courant de faire cela lorsque le processus reçoit un signal SIGINT, comme lorsque l'utilisateur appuie sur Ctrl-C.

ts
import { watch } from "fs";

const watcher = watch(import.meta.dir, (event, filename) => {
  console.log(`${event} détecté dans ${filename}`);
});

process.on("SIGINT", () => {
  // fermer le watcher lorsque Ctrl-C est pressé
  console.log("Fermeture du watcher...");
  watcher.close();

  process.exit(0);
});

Consultez API > Données binaires > Tableaux typés pour plus d'informations sur l'utilisation de Uint8Array et d'autres formats de données binaires dans Bun.

Bun édité par www.bunjs.com.cn