node-gypとlibpqを再構築すると、npmのインストールが失敗します。

node-gypとlibpqを再構築すると、npmのインストールが失敗します。
> [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

エラーを読みましたが、いいえ、/usr/local/lib/には何もインストールされていません。 node-gypをグローバルにインストールすると、そこにはインストールされません。

私は試した:

  • Postgresの再インストール(https://fedoraproject.org/wiki/PostgreSQL)
  • Fedora用のlibpqのインストール
  • 512394823094回再起動しました
  • node_modulesを削除して再インストールします(魔法のようなことが起こり続けるようにしてください)。
  • package-lock.json 削除後の再インストール
  • 私が長い間忘れていた他のもの

私が知っている小さなヒント:削除されたパッケージnpm installはですpg-native。これがどのような影響を与えるかはわかりませんが、libpqインストールレポートに記載されているので、関係があると思います。

気になるなら、私のPATHは次のようになります。 (元のlinuxbrewを使用してpostgresをインストールして削除しました。) /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

どんな意見や提案でもとても役に立ちます。ここで精神を失っています。

ベストアンサー1

これは非常に不思議なことですが、node-gypでlibpqをビルドするときに同じ問題があったので、万が一に備えてとにかく私の修正を共有すると思いました。

私のエラー出力は次のとおりです。

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

Manjaro LinuxからNodeJS 14から16または18にアップグレードしたときにこれが発生し始めました。明らかに、リリースされるnode-gypパッケージは、廃止された多くのエントリ(npmインストールログから収集)を使用しますが、これは明らかにデフォルトでは(もはや)インストールされません。

私の解決策は簡単です。

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

これはグローバル node_modules を汚染します。

おすすめ記事