Fünf Jahre lang war [ERR_REQUIRE_ESM] require() of ES Module not supported die Fehlermeldung, die wir alle zu hassen gelernt haben. CommonJS und ESM zu mischen, fühlte sich an, als würde man gegen eine Wand laufen – gestützt von dem jahrelangen Glaubenssatz, dass die beiden Welten synchron einfach nicht miteinander spielen können.
Die Erlösung kam Ende letzten Jahres
Joyee Cheung hat den Status quo hinterfragt, tief im Core gegraben und den Fix geliefert, auf den wir alle gewartet haben. Node.js unterstützt jetzt synchrones require(esm).
Kleine Einschränkung: Es funktioniert nur für ESM Module, die keintop-level await nutzen. Da die absolute Mehrheit der Libraries aber darauf verzichtet, löst das die Kopfschmerzen für fast alle Dependencies, mit denen du dich täglich rumschlägst.
Der Fix: Du brauchst keinen Hack. Du musst nur dein Node Environment aktualisieren:
✅ Node v20.19.0+ (LTS)
✅ Node v22.12.0+ (LTS)
✅ Node v24 (LTS)
Das Ergebnis: Sobald das Upgrade durch ist, funktioniert require() für Standard-ESM-Pakete sofort. Du kannst endlich ESM-only publishen, ohne das Ökosystem zu brechen oder alten CJS-Ballast mitzuschleppen.
Check deine node -v und erledige dein Hybrid-Modul-Chaos ein für alle male. 👋