Abschaffung veralteter JavaScript-Abhängigkeiten: CRA, Moment, jQuery und weitere
Welche veralteten JavaScript-Bibliotheken und -Tools sollten schrittweise abgeschafft werden, warum jede von ihnen zu einem Risiko wurde, was sie ersetzt, und wie man verhindert, dass die Liste der Abhängigkeiten erneut unübersichtlich wird.
Quellen: **JavaScript Libraries and Tools Heading Toward Deprecation: What to Drop in 2026**
Die meisten JavaScript-Projekte enthalten einige Abhängigkeiten, die bei der Erstellung des Repositoriums als offensichtliche Wahl galten und heute nur noch Ballast darstellen: große Pakete, unbehebte Sicherheitslücken, unpassende Integrationen in moderne Laufzeiten oder Funktionen, die die Plattform mittlerweile kostenlos anbietet. Keine davon führt über Nacht zu Problemen – genau deshalb bleiben sie bestehen. Dieser Leitfaden zeigt Ihnen die Bibliotheken und Tools auf, die veraltet sind, im Wartungsmodus feststecken oder stetig an Bedeutung verlieren, erklärt, warum jede von ihnen zurückgeblieben ist, und nennt die Ersatzlösungen, auf die Sie zurückgreifen sollten, damit Sie Migrationspläne bewusst statt unter Druck erstellen können.
Build- und Scaffolding-Tools
Create React App
Jahrelang war Create React App (CRA) die Methode, mit der React-Projekte gestartet wurden. Anfang 2025 deaktivierte das React-Team es offiziell als Ausgangspunkt für neue Anwendungen, und es erhält seitdem keine bedeutenden Updates mehr, wodurch Sicherheitsprobleme in seiner Toolchain ungelöst bleiben. Die Downloadzahlen sinken rapide, da Teams zu anderen Lösungen wechseln.
Die zugrundeliegenden Gründe sind strukturell: Niemand wartet es aktiv, seine Annahmen bezüglich des Bundelns und der Entwicklungsserver sind veraltet, und die Alternativen erfüllen moderne Anforderungen wie Server-Rendering, schnellere Builds sowie eine bessere Entwicklererfahrung ohne zusätzliche Einrichtungen. Gute Ersatzlösungen sind:
- Vite mit
@vitejs/plugin-reactfür typische Single-Page-Anwendungen - Next.js, Remix/React Router oder ein anderes vollständiges Framework, falls die Anwendung einen Router, Konventionen für das Abrufen von Daten oder Serverseitencode benötigt
Weil eine CRA-Anwendung hauptsächlich aus Standard-React-Code sowie einer versteckten Build-Konfiguration besteht, ist die Migration in der Regel viel geringer, als Teams erwarten: Man wechselt das Build-Tool, verschiebt den HTML-Eintrittspunkt sowie die Konventionen für Umgebungsvariablen, während die Komponenten selbst unverändert bleiben. Wenn Sie von vorne anfangen, behandelt der Leitfaden in unserem React- und Vite-Einrichtungsguide die neuen Grundlagen.
Webpack für neue Projekte
Webpack ist keineswegs tot. Eine große Anzahl von Produktivanwendungen wird weiterhin damit erstellt, und das wird sich in absehbarer Zeit nicht ändern. Was abnimmt, ist sein Anteil an neuen Projekten – hauptsächlich aufgrund der komplexen Konfiguration sowie langsamerer Startzeiten im Vergleich zu neueren Tools. Für komplett neue Frontend-Projekte ist Vite derzeit die Standardwahl, wobei auch Konfigurationen auf Basis von Rspack und esbuild gute Alternativen darstellen. Webpack bleibt für sehr komplexe, bereits vorhandene Konfigurationen sinnvoll, doch selten sollte ein neues Projekt damit beginnen. Für einen ausführlicheren Vergleich der Optionen siehe die Auswahl eines Bundlers.
Bibliotheken, die von der Plattform übernommen wurden
Moment.js
Fast jeder JavaScript-Entwickler hat zu irgendeinem Zeitpunkt Moment.js verwendet. Seine eigenen Betreuer bezeichnen es bereits seit längerem als ein Legacy-Projekt im Wartungsmodus. Es ist groß, seine Objekte sind standardmäßig veränderbar (was zu Fehlern führen kann, wenn ein Datum an einer Stelle geändert und an einer anderen Stelle abgerufen wird), und es lässt sich kaum effektiv komprimieren.
Die native Datumsbearbeitung hat sich verbessert, und kleine, unveränderliche Bibliotheken erledigen die Aufgabe nun mit besseren Leistungen. Ihre Optionen, grob in Reihenfolge der Präferenz:
Intl.DateTimeFormatfür formatierungsspezifische Anpassungen an die lokale Einstellung- Temporal, die neue eingebaute API für Datum und Zeit, auf die Entwickler jahrelang gewartet haben; sie wird derzeit in verschiedenen Laufzeiten und Browsern eingeführt – überprüfen Sie vor der Nutzung die aktuelle Unterstützung für Ihre Zielumgebungen
- date-fns, Luxon oder Day.js, falls eine Bibliothek weiterhin notwendig ist
Falls Moment noch in Ihrem Abhängigkeitsbaum enthalten ist, planen Sie die Migration. Allein die Verringerung der Bundle-Größe ist oft erheblich.
jQuery
jQuery hat in den 2010er Jahren echte Probleme zwischen verschiedenen Browsern gelöst. Für neuen Code heute ist es fast nie gerechtfertigt, da standardisierte DOM-APIs, fetch sowie Komponentenframeworks alles abdecken, was jQuery früher ausgleichen musste. Einfaches JavaScript mit querySelector, classList, addEventListener sowie dem nativen fetch erledigt die meisten direkten DOM-Aufgaben, und React, Vue, Svelte oder Solid übernehmen die Aufgabe, wenn komponentenbasierte Schnittstellen benötigt werden. Legacy-Codebasen werden jQuery noch viele Jahre lang nutzen – das ist in Ordnung –, aber im Rahmen eines völlig neuen Projekts darauf zurückzugreifen, ist ein Warnsignal.
Lodash und Underscore
Vor ES2015 war Lodash nahezu unverzichtbar. Heute gibt es für die meisten seiner Hilfsfunktionen native Entsprechungen: Array-Methoden wie map, filter und reduce, Object.entries, optionales Chaining, nullish Coalescing und vieles mehr. Es ist schwer zu rechtfertigen, die gesamte Bibliothek oder sogar große Teile davon mitzuliefern, nur um ein paar Funktionen zu nutzen. Beginnen Sie mit der Sprache selbst und fügen Sie nur dann gezielte Hilfsfunktionen hinzu, wenn die native API tatsächlich unzureichend ist – beispielsweise bei der Prüfung auf tiefe Gleichheit oder beim Debouncing. Unser Artikel zu nativen Funktionen, die Abhängigkeiten von Hilfsbibliotheken ersetzen zeigt konkrete Ersatzlösungen.
Testing und Netzwerk
Enzyme
Enzyme war lange Zeit die dominierende Methode zum Testen von React-Komponenten, passte sich jedoch nie gut an React 18 und seine koncurrenten Funktionen an, wodurch die Nutzung stark zurückgegangen ist. Da Enzyme das Testen der internen Strukturen von Komponenten (State, Instanzmethoden, flache Render-Bäume) förderte, bedeutet die Migration teilweise auch einen Wandel der Denkweise. React Testing Library, die von der Community sowie dem React-Team empfohlene Alternative, prüft hingegen das, was der Benutzer sieht und tut. Es wird in Kombination mit Vitest oder Jest als Ausführungstool verwendet.
request und node-fetch v2
request wurde bereits vor langer Zeit offiziell abgekündigt und erhält keine Sicherheitsaktualisierungen mehr, wodurch jede noch vorhandene Nutzung ein offenes Risiko darstellt. Auch die Downloads von node-fetch v2 sind stark zurückgegangen, da Node.js 18 und neuer eine globale fetch-Funktion bereitstellen (in den frühen Versionen wurde sie als experimentell gekennzeichnet, daher prüfen Sie das Verhalten in Ihrer Node-Version). Verwenden Sie die eingebettete fetch-Funktion, die nun in modernen Node-Versionen sowie allen aktuellen Browsern funktioniert. Wenn Sie Wiederholungsversuche, Interzeptoren oder leistungsstärkeres Streaming benötigen, schauen Sie sich undici, ky oder got an.
Weitere Aspekte, die im Auge behalten werden sollten
Noch einige weitere Änderungen verdienen einen Platz auf Ihrer Upgrade-Liste:
- Laut dem Veröffentlichungsplan erreicht ESLint 9.x im August 2026 das Ende seiner Unterstützung; planen Sie den Umstieg auf die v10-Reihe und überprüfen Sie die Daten auf der ESLint-Website.
@aws-sdk/*, die es Ihnen außerdem ermöglichen, nur die benötigten Clients zu importieren.Eine Routine zur Aktualisierung der Abhängigkeiten
Es reicht nicht aus, diese Bibliotheken nur einmal zu ersetzen; das Ziel ist eine Gewohnheit, die veraltete Abhängigkeiten davon abhält, sich weiter anzuhäufen.
- Überprüfen Sie regelmäßig
package.jsonund führen Sienpm outdatedsowienpm auditaus, damit Abweichungen sichtbar werden.
fetch, Temporal, sofern unterstützt, sowie die aktuellen Hauptversionen der Frameworks.Eine nützliche Abwägung, die man im Hinterkopf behalten sollte: Nicht jede veraltete Abhängigkeit erfordert sofortige Umgestaltung. Ein stabiles internes Tool, das jQuery oder Webpack verwendet, kann mehr Kosten verursachen als es je einsparen wird. Priorisieren Sie nach dem Grad der Exponiertheit. Alles, was nicht gewartet wird und auf das Netzwerk, Benutzereingaben oder Ihren Build-Prozess zugreift (request, CRA, AWS SDK v2), kommt zuerst; Optimierungen bezüglich der Bundle-Größe wie Moment und Lodash folgen danach; rein stilistische Modernisierungen können warten.
Kernpunkte
- Veraltete und nicht gewartete Pakete stellen zunächst ein Sicherheitsproblem und erst in zweiter Linie ein Leistungsproblem dar, daher sollten Migrationsmaßnahmen nach dem Risikograd eingestuft werden.
- Viele ehemals unverzichtbare Bibliotheken (Moment, Lodash, jQuery,
request) wurden bereits in die Sprache, das DOM oder den Laufzeitumfeld integriert, wodurch die Ersatzlösungen kleiner ausfallen als die ursprünglichen Abhängigkeiten.