Comment corriger NodeJS / NPM "TypeError: Class extends value undefined is not a constructor or null" dans /usr/lib/node_modules/npm/node_modules

Problème :

Quand vous essayez d’exécuter n’importe quelle commande npm telle que npm start , vous voyez un message d’erreur tel que

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)

Solution

Ceci est une erreur interne dans npm ou les paquets requis par npm. Typiquement, elle est causée par une mise à jour incomplète de NodeJS et npm qui laisse npm ou ses dépendances dans un état cassé.

La solution est de réinstaller NodeJS :

  • Désinstallez NodeJS en utilisant une commande telle que
uninstall_node.sh
sudo apt remove nodejs
  • Supprimez entièrement le dossier du paquet NodeJS, sur Linux il peut être déplacé vers un emplacement de sauvegarde en utilisant par ex.
backup_node_modules.sh
sudo mv /usr/lib/node_modules ~/node_modules_backup
  • Réinstallation de NodeJS en utilisant une commande telle que
install_node.sh
sudo apt -y install nodejs
  • Réinstallation de tous les paquets globalement installés dont vous avez besoin, tels que npm i -g @angular/cli

Consultez les articles similaires par catégorie : NodeJS