Wie man NodeJS / NPM "TypeError: Class extends value undefined is not a constructor or null" in /usr/lib/node_modules/npm/node_modules behebt

Problem:

Wenn du versuchst, einen beliebigen npm-Befehl wie npm start auszuführen, siehst du eine Fehlermeldung wie

error.txt
/usr/lib/node_modules/npm/lib/es6/validate-engines.js:31
    throw err
    ^

TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/fs-minipass/lib/index.js:136:4)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:119:18)
    at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/cacache/lib/content/read.js:4:13)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)

Lösung

Dies ist ein interner Fehler in npm oder Paketen, die von npm benötigt werden. Typischerweise wird er durch ein unvollständiges Update von NodeJS und npm verursacht, das npm oder seine Abhängigkeiten in einem defekten Zustand hinterlässt.

Die Lösung besteht darin, NodeJS neu zu installieren:

  • Deinstalliere NodeJS mit einem Befehl wie
uninstall_node.sh
sudo apt remove nodejs
  • Entferne den NodeJS-Paketordner vollständig, auf Linux kann er an einen Backup-Speicherort verschoben werden mit z.B.
backup_node_modules.sh
sudo mv /usr/lib/node_modules ~/node_modules_backup
  • Neuinstallation von NodeJS mit einem Befehl wie
install_node.sh
sudo apt -y install nodejs
  • Neuinstallation aller global installierten Pakete, die du benötigst, wie npm i -g @angular/cli

Ähnliche Beiträge nach Kategorie: NodeJS