EASYBOT GUIDE
npm ECONNRESET・ネットワークエラーでinstallできない時の対処
npm install中のECONNRESETやfetch failedを、レジストリ接続、DNS、プロキシ、タイムアウトに分けて調査する方法を解説します。
npm ECONNRESETは、npmレジストリとの接続が途中で切れた時に出るネットワークエラーです。DNS、プロキシ、回線不安定、ファイアウォール、容量不足など複数の原因を切り分けます。
実際の失敗原因を読む
ログにENOSPCやEAI_AGAINなど別のエラーが含まれていないか確認します。ネットワークエラーのように見えて、書き込み先のディスク不足が原因のケースもあります。
- 最初に出たnpm error codeとsyscallを見る
- ログファイルの直前の原因を確認する
- ディスク空き容量とinodeも確認する
レジストリとDNS
npm config get registryで接続先を確認し、名前解決とHTTPS接続を調べます。組織やVPSでプロキシが必要な場合は、正しい設定を管理者に確認します。
- 公式または組織指定のregistry URLを確認する
- DNSと443番ポートへの接続を検査する
- 古いproxy設定が残っていないか見る
安全な再試行
一時的な障害なら時間を置いて再試行します。同時に複数のnpm installを動かすと帯域やディスクを消費するため、一つずつ実行します。
- 重複したインストール処理を止める
- 回線が安定してから一度だけ再試行する
- npmのログを保存して発生時刻を控える
キャッシュと容量
npm cache cleanを最初に実行する必要はありません。キャッシュの検証を行い、容量が足りないならログや不要ファイルを特定して整理します。
- npm cache verifyでキャッシュを検証する
- df -hとdf -iで保存先を確認する
- 削除前に対象ファイルとバックアップを確認する