14 Punkte von carnoxen 2025-02-10 | Noch keine Kommentare. | Auf WhatsApp teilen

Bis vor Kurzem stand ich einer radikalen Umstellung aller JavaScript-Bibliotheken auf ESM noch kritisch gegenüber. Da sich die ESM-bezogenen Technologien und ihre Verbreitung inzwischen täglich weiterentwickeln, wünsche ich mir nun, dass alle Entwickler unbedingt auf ESM umsteigen. Die Gründe dafür sind folgende.

Gründe

  • Verfügbare Werkzeuge
    • Es sind viele Tools erschienen, die beim Umstieg auf ESM helfen können, etwa Vite, ESLint und tsx.
    • Da es für den bisherigen Bibliotheksansatz (CJS) nicht einfach ist, vom modernen Ansatz ESM abhängig zu sein, sollten wir im Sinne der künftigen Weiterentwicklung nach vorn gehen.
    • In aktuellem Node.js wurde eine Möglichkeit entwickelt, ESM-Bibliotheken mit der Funktion require() zu laden, wodurch sich ESM leichter einsetzen lässt.
  • Probleme mit doppelter Unterstützung
    • Da sich die beiden Ansätze im Design deutlich unterscheiden, ist ihre Interoperabilität stark eingeschränkt.
    • Nutzer müssen mühsam einzeln prüfen, ob ESM unterstützt wird.
    • Weil beide Ansätze unterstützt werden müssen, werden Pakete sehr groß.

Wann sollte man umstellen?

  • Neue Pakete sollten ausnahmslos auf ESM umgestellt werden.
  • Bei Bibliotheken für den Browser lassen sich leichtere Bundles erstellen.
  • Auch bei CLI-Programmen können deren Nutzer dadurch ganz natürlich auf ESM wechseln.
  • Davor ist es jedoch wichtig, den Zustand der bislang verwendeten abhängigen Bibliotheken und die Anforderungen der Nutzer zu kennen.

Wie weit sollte man umstellen?

Um die Abhängigkeiten einer Bibliothek zu analysieren, habe ich den Dependency Inspector erstellt. Damit kann man den Status der abhängigen Bibliotheken sowie die Auswirkungen einer Umstellung auf ESM sehen.

Was kommt als Nächstes?

Ich plane, die von mir betreuten Pakete schrittweise auf ESM umzustellen und ihre Abhängigkeiten genau zu prüfen. Außerdem habe ich viele interessante Ideen rund um node-modules-inspector vorbereitet, um nützlichere Einblicke zu liefern und auch künftig dabei zu helfen, die beste Vorgehensweise zu finden.

Ich freue mich auf ein leichteres, flexibleres und optimierteres JavaScript/TypeScript-Ökosystem. Ich hoffe, das war hilfreich.

Noch keine Kommentare.

Noch keine Kommentare.