instalação do npm falhando na reconstrução do node-gyp e libpq

instalação do npm falhando na reconstrução do node-gyp e libpq
> [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

Eu li o erro e não, não há nada instalado em /usr/local/lib/... Quando instalo o node-gyp globalmente, ele não é instalado lá.

Eu tentei:

  • reinstalando o postgres (https://fedoraproject.org/wiki/PostgreSQL)
  • instalando libpq para fedora
  • reiniciando 512394823094 vezes
  • removendo node_modules e reinstalando (repetidamente, apenas esperando que algo mágico aconteça)
  • removendo package-lock.json e reinstalando
  • algumas outras coisas que esqueci há muito tempo

Estou ciente de uma pequena dica: o pacote que NÃO ESTÁ sendo instalado npm installé o pg-native. Não tenho certeza se isso faz diferença, mas acho que está relacionado, já que libpqestá sendo mencionado no relatório de instalação.

Se você estiver curioso, esta é a aparência do meu PATH (instalei e desinstalei o postgres usando o linuxbrew originalmente): /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

Qualquer conselho/sugestão seria muito útil... Estou perdendo a cabeça aqui.

Responder1

Isso é muito improvável, mas como tive os mesmos problemas ao construir apenas libpq usando node-gyp, pensei em compartilhar minha correção de qualquer maneira, só para garantir.

Minha saída de erro ficou assim:

$ 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:

Isso começou a acontecer quando atualizei do NodeJS 14 para 16 ou 18 no Manjaro Linux. Aparentemente, o pacote node-gyp que está sendo enviado está usando toneladas de coisas obsoletas (coletadas dos logs de instalação do npm), que aparentemente não estão instaladas por padrão (mais).

Minha solução muito suja foi simplesmente:

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

Esteja ciente de que isso polui seus node_modules globais.

informação relacionada