Start·Fehlermeldungen

node 17+ · npm

Die Meldung

Error: error:0308010C:digital envelope routines::unsupported

Was es bedeutet

node 17 brachte OpenSSL 3 mit, das einen alten Hash-Algorithmus aus den Standards entfernte, und ein Werkzeug, das ihn weiter verlangt, stürzt genau in diesem Hash-Aufruf ab. Fast immer ist es ein altes webpack 4 — oder ein Werkzeug, das eines mitbringt — auf einem modernen node. export NODE_OPTIONS=--openssl-legacy-provider schaltet die alten Algorithmen für diesen Prozess wieder ein und ist für einen Build harmlos. Doch damit hält man ein totes Werkzeug am Leben: ein Upgrade auf webpack 5 oder auf die aktuelle Version Ihres Frameworks macht die Option ganz überflüssig.

Die Lösung

export NODE_OPTIONS=--openssl-legacy-provider
Ausgegeben von
node 17+
npm
20

Bei npm steht die Ursache in der ersten code-XXXX-Zeile und nicht in den letzten sechs npm-ERR!-Zeilen, und wenn der Fehler aus dem Abhängigkeitsbaum oder einem Native-Build statt aus eigenem Code kommt, löst das Löschen von node_modules mit erneuter Installation etwa die Hälfte.

Eine Fehlermeldung lesen

  • Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
  • Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
  • Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
  • Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
  • Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.

Häufige Fragen

Q. Was bedeutet „Error: error:0308010C:digital envelope routines::unsupported“?

node 17 brachte OpenSSL 3 mit, das einen alten Hash-Algorithmus aus den Standards entfernte, und ein Werkzeug, das ihn weiter verlangt, stürzt genau in diesem Hash-Aufruf ab. Fast immer ist es ein altes webpack 4 — oder ein Werkzeug, das eines mitbringt — auf einem modernen node. export NODE_OPTIONS=--openssl-legacy-provider schaltet die alten Algorithmen für diesen Prozess wieder ein und ist für einen Build harmlos. Doch damit hält man ein totes Werkzeug am Leben: ein Upgrade auf webpack 5 oder auf die aktuelle Version Ihres Frameworks macht die Option ganz überflüssig.

Q. Wie behebe ich das?

export NODE_OPTIONS=--openssl-legacy-provider — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.

Q. Welches Werkzeug gibt das aus?

node 17+. Es gehört zu npm, und die Meldung hat 4 Wörter.

Verwandte Fehler