Open1
npm install がタイムアウトしてなんもできなくなった時にしたこと
結論
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アドレスのハンドリングに問題があるのか、というところだが……