Open1

npm install がタイムアウトしてなんもできなくなった時にしたこと

Kumasun MorinoKumasun Morino

結論

getaddrinfoでIPv4を優先して使うようにする

設定

/etc/gai.confの下記の行のコメントを外して保存、ホストごと再起動で有効化

/etc/gai.conf
precedence ::ffff:0:0/96  60

gai = getaddrinfo の短縮形とのこと

状況

$ node -v
v18.15.0

$ pnpm -v
7.29.1
  • npm installを行おうとすると、かなり待たされた結果connect ETIMEDOUTが出て止まってしまう。
  • registry.npmjs.orgの名前解決、ICMP Ping、ブラウザからのアクセスは問題ない。
  • プロキシ環境下ではない

解決策

いろいろ探し回り、解決策として紹介されていた下記を行っても改善されず

  • npmのキャッシュクリア
  • .npmrc のプロキシ設定を消す

nodejsのバージョンを落とせば直るという情報もあったが、使用しているアプリケーションへの影響を考えダウングレードはできればやめておきたい

結果的に、冒頭に記載した解決策にて改善された。

想像するに、nodejsとnpm(pnpm)の組み合わせに問題があるのか、あるいはIPv6表記のIPv4アドレスのハンドリングに問題があるのか、というところだが……