„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Migration von Chokidar nach

Migration von Chokidar nach

Veröffentlicht am 01.11.2024
Durchsuche:820

Ein großer Gewinn in letzter Zeit im e18e-Bereich ist, dass Chokidar eine neue 4.x-Version veröffentlicht hat!

Diese neue Version beseitigt eine ganze Reihe von Abhängigkeiten, vereinfacht die interne Logik erheblich und stützt sich stärker auf moderne Plattformfunktionen.

Für diejenigen unter Ihnen, die nicht wissen, was Chokidar ist – es ist ein weit verbreiteter Dateisystem-Watcher, der eine Abstraktion über die Node-eigenen Watch-Funktionen hinaus bietet. Höchstwahrscheinlich befindet es sich bereits irgendwo in Ihrem Abhängigkeitsbaum!

Unterschied im Abhängigkeitsdiagramm

In Chokidar 3.x:

Migrating from chokidar  to

In Chokidar 4.x:

Migrating from chokidar  to

Änderungen in 4.x

Die meisten Änderungen sind intern und sollten sich nicht auf die Verwendung der Bibliothek auswirken, werden aber die Leistung enorm verbessern.

Ein paar bemerkenswerte Änderungen:

  • fsevents wurde gelöscht, da Node selbst heutzutage gut mit der plattformübergreifenden Kompatibilität zurechtkommt
  • ES-Modulunterstützung
  • Verbesserte TypeScript-Typen
  • Verschiedene Leistungsverbesserungen
  • Glob-Unterstützung entfernt

Die einzige große Änderung aus dieser Liste, die sich auf Benutzer auswirken wird, ist die Entfernung von Globs.

Leben ohne Kugeln

In Chokidar 3.x war es möglich, einen Globus zu beobachten. Zum Beispiel könnten wir src/*.ts beobachten und chokidar würde das Muster intern erweitern, um alle TypeScript-Dateien in src/.

zu überwachen

In 4.x wurde diese Funktionalität entfernt, da Sie dasselbe mit Filtern oder einer externen Glob-Bibliothek erreichen können.

Ein Beispiel:


// chokidar v3 watch('src/*.ts'); // chokidar v4 (RegExp) watch('src', { // jeder Pfad, dessen Ende nicht durch „.ts“ vorangestellt ist ignoriert: /(? Statistiken?.isFile() && !path.endsWith('.ts') }); // Chokidar v4 (Glob) // HINWEIS: Neu hinzugefügte Dateien werden nicht überwacht. Es // überwacht nur den ersten Satz Dateien importiere {glob} aus 'tinyglobby'; watch(await glob(['src/*.ts']));
// chokidar v3
watch('src/*.ts');

// chokidar v4 (RegExp)
watch('src', {
  // any path whose end is not preceded by `.ts`
  ignored: /(?
    stats?.isFile() &&
    !path.endsWith('.ts')
});

// chokidar v4 (glob)
// NOTE: this will not watch newly added files. It
// will only watch the initial set of files
import {glob} from 'tinyglobby';
watch(await glob(['src/*.ts']));
In den meisten Fällen können Sie wahrscheinlich auf eine Glob-Bibliothek verzichten und stattdessen eine Filterfunktion oder RegExp verwenden (was in vielen Fällen auch viel schneller ist).

Rückmeldung

Wenn Sie ein Upgrade durchführen und Feedback haben oder Fehler finden, würden wir uns freuen, von Ihnen bei Problemen zu hören.

Sie können auch viele von uns im e18e-Discord dabei beobachten, wie sie hart an der Migration beliebter Pakete von 3.x auf 4.x arbeiten.

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/43081j/migrating-from-chokidar-3x-to-4x-5ab5?1 reproduziert. Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3