npm Dependencies updaten

Nach dem Einrichten eines Projekts neigen wir möglicherweise dazu, unsere installierten Pakete nie wieder anzufassen. Schließlich hören sie ja nicht plötzlich auf zu funktionieren. Allerdings kommt irgendwann der Punkt, an dem wir ein weiteres Paket installieren möchten, das nur funktioniert, wenn wir ein bereits installiertes Paket aktualisieren. Wir können diese Gelegenheit direkt nutzen, um viele oder sogar alle unserer verwendeten Pakete mit einem einfachen Befehl zu aktualisieren. Wir wollen jetzt darum sprechen, warum wir unsere Pakete aktualisieren sollten, wie man dies am besten tut und was nach einem Update zu tun ist.

Warum wir unsere npm-Pakete aktualisieren sollten

Es gibt viele Gründe, warum wir unsere Pakete aktualisieren sollten:

  • Ein neues Paket, das wir verwenden möchten, erfordert eine höhere Version eines bereits genutzten Pakets.
  • Wir haben eines der vielen Tools zur Überprüfung von Sicherheitslücken wie Snyk oder npm audit verwendet, und diese zeigen uns an, dass die aktuellen Versionen Sicherheitslücken enthalten.
  • Eine Bibliothek hat ein neues Feature veröffentlicht, das wir in unserem Projekt nutzen möchten.

Aber selbst wenn keiner dieser Gründe auf uns zutrifft, sollten wir unsere Abhängigkeiten dennoch auf dem neuesten Stand halten. So geraten wir nicht in die Situation, mehrere Major-Releases auf einmal aktualisieren zu müssen, was viel Aufwand und Kopfschmerzen bereiten kann, da wir unseren Code potentiell an vielen Stellen anpassen müssten. Durch kontinuierliche kleinere Schritte kann der Aufwand gering gehalten werden, und wir können dies als Teil der täglichen Arbeit erledigen, sodass wir nicht das Problem haben, unseren Product Owner überzeugen zu müssen, eine größeres Update-Ticket im Backlog zu priorisieren.

Wie man Pakete aktualisiert

Natürlich könnten wir alle unsere Abhängigkeiten in unserer package.json manuell durchgehen und auf den entsprechenden npm-Seiten nach neueren Versionen suchen, aber es gibt einen einfacheren Weg: Interaktive Tools! Diese scannen automatisch deine package.json und prüfen die npm-Registry auf Updates für deine verwendeten Pakete. Sie bieten dir sogar eine einfache Mehrfachauswahl, bei der du genau die Pakete auswählen kannst, die du aktualisieren möchtest. Abhängig vom verwendeten Paketmanager kannst du eines der folgenden Tools verwenden:

Beide zeigen dir eine Benutzeroberfläche an, die so oder so ähnlich aussieht:

Hier kannst du auch direkt zur Dokumentation gehen, um zu sehen, ob die Änderungen durch das Versionsupdate die Anwendungsfälle in deinem Projekt betreffen. Dafür gibt es normalerweise irgendwo eine Changelog-Seite, wie z.B. hier: https://github.com/facebook/react/releases

Was nach dem Update zu tun ist

Im besten Fall kannst du deine umfangreiche Test-Suite ausführen, die Unit-Tests und End-to-End-Tests enthält und alle Aspekte deiner Anwendung abdeckt. Solange diese grün sind, bist du auf der sicheren Seite. Realistischerweise ist das jedoch oft nicht der Fall. Dinge, die du auf jeden Fall tun solltest, sind einen Build deiner Anwendung auszuführen und (falls du TypeScript verwendest) den Compiler laufen zu lassen, um nach Typfehlern nach den Updates zu suchen. Wenn das alles in Ordnung ist, solltest du dennoch deine Anwendung neu starten (um sicherzustellen, dass auch Updates an den Build-Tools berücksichtigt werden) und die wichtigsten Anwendungsfälle durchklicken, um zu prüfen, ob alles funktioniert. Und dann gehst du am besten direkt zu deiner Product Ownerin, um ihr zu sagen, dass ihr zumindest für die kritischen Teile End-to-End-Tests implementieren solltet, damit du bei zukünftigen Updates weniger manuelle Arbeit hast!