Bun implementiert das node:fs-Modul, einschließlich der fs.watch-Funktion zum Lauschen auf Dateisystemänderungen.
Dieser Codeblock lauscht auf Änderungen an Dateien im aktuellen Verzeichnis. Standardmäßig ist dieser Vorgang flach, was bedeutet, dass Änderungen an Dateien in Unterverzeichnissen nicht erkannt werden.
import { watch } from "fs";
const watcher = watch(import.meta.dir, (event, filename) => {
console.log(`${event} in ${filename} erkannt`);
});Um auf Änderungen in Unterverzeichnissen zu lauschen, übergeben Sie die Option recursive: true an fs.watch.
import { watch } from "fs";
const watcher = watch(import.meta.dir, { recursive: true }, (event, relativePath) => {
console.log(`${event} in ${relativePath} erkannt`);
});Mit dem node:fs/promises-Modul können Sie mit for await...of anstelle eines Callbacks auf Änderungen lauschen.
import { watch } from "fs/promises";
const watcher = watch(import.meta.dir);
for await (const event of watcher) {
console.log(`${event.eventType} in ${event.filename} erkannt`);
}Um das Lauschen auf Änderungen zu stoppen, rufen Sie watcher.close() auf. Es ist üblich, dies zu tun, wenn der Prozess ein SIGINT-Signal empfängt, z. B. wenn der Benutzer Strg-C drückt.
import { watch } from "fs";
const watcher = watch(import.meta.dir, (event, filename) => {
console.log(`${event} in ${filename} erkannt`);
});
process.on("SIGINT", () => {
// watcher schließen, wenn Strg-C gedrückt wird
console.log("Watcher wird geschlossen...");
watcher.close();
process.exit(0);
});Weitere Informationen zur Arbeit mit Uint8Array und anderen binären Datenformaten in Bun finden Sie unter API > Binary data > Typed arrays.