npm-Installation schlägt beim Neuaufbau von Node-Gyp und Libpq fehl

npm-Installation schlägt beim Neuaufbau von Node-Gyp und Libpq fehl
> [email protected] install /home/johnsoct/bobtail/node_modules/libpq
> node-gyp rebuild

/home/johnsoct/.nvm/versions/node/v12.22.4/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory

Ich habe den Fehler gelesen, und nein, unter /usr/local/lib/... ist nichts installiert. Wenn ich node-gyp global installiere, wird es dort nicht installiert.

Ich habe es versucht:

  • Neuinstallation von Postgres (https://fedoraproject.org/wiki/PostgreSQL)
  • Installieren von libpq für Fedora
  • 512394823094 Mal neu gestartet
  • node_modules entfernen und neu installieren (immer und immer wieder, in der Hoffnung, dass etwas Magisches passiert)
  • Entfernen von package-lock.json und Neuinstallation
  • einige andere Sachen, die ich längst vergessen habe

Ein kleiner Hinweis, den ich kenne: Das Paket, das NICHT installiert wird, npm installist pg-native. Ich bin mir nicht sicher, ob das einen Unterschied macht, aber ich nehme an, dass es damit zusammenhängt, da libpqes im Installationsbericht erwähnt wird.

Falls es Sie interessiert, so sieht mein PATH aus (ich habe Postgres ursprünglich mit Linuxbrew installiert und deinstalliert): /home/johnsoct/bin:/usr/pgsql-10/bin:/usr/pgsql-10/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/.nvm/versions/node/v12.22.4/bin:/home/johnsoct/.local/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/var/lib/snapd/snap/bin

Jeder Ratschlag/Vorschlag wäre wirklich hilfreich … Ich verliere hier den Verstand.

Antwort1

Das ist sehr weit hergeholt, aber da ich beim Erstellen von libpq mit node-gyp dieselben Probleme hatte, dachte ich, ich teile meine Lösung trotzdem, nur für den Fall.

Meine Fehlerausgabe sah folgendermaßen aus:

$ npm install
npm ERR! code 1
npm ERR! path /home/ekik/Source/home/grafana/node_modules/libpq
npm ERR! command failed
npm ERR! command sh -c -- node-gyp rebuild
npm ERR! node:internal/modules/cjs/loader:936
npm ERR!   throw err;
npm ERR!   ^
npm ERR! 
npm ERR! Error: Cannot find module 'object-assign'
npm ERR! Require stack:

Es begann, als ich unter Manjaro Linux von NodeJS 14 auf 16 oder 18 aktualisierte. Anscheinend verwendet das mitgelieferte Node-Gyp-Paket jede Menge veraltetes Zeug (gesammelt aus den npm-Installationsprotokollen), das anscheinend nicht (mehr) standardmäßig installiert ist.

Meine wirklich schmutzige Lösung war einfach:

sudo npm install --global object-assign code-point-at number-is-nan request

Bitte beachten Sie, dass hierdurch Ihre globalen Knotenmodule verunreinigt werden.

verwandte Informationen