EasyBot

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でプロキシが必要な場合は、正しい設定を管理者に確認します。

  1. 公式または組織指定のregistry URLを確認する
  2. DNSと443番ポートへの接続を検査する
  3. 古いproxy設定が残っていないか見る

安全な再試行

一時的な障害なら時間を置いて再試行します。同時に複数のnpm installを動かすと帯域やディスクを消費するため、一つずつ実行します。

  • 重複したインストール処理を止める
  • 回線が安定してから一度だけ再試行する
  • npmのログを保存して発生時刻を控える

キャッシュと容量

npm cache cleanを最初に実行する必要はありません。キャッシュの検証を行い、容量が足りないならログや不要ファイルを特定して整理します。

  • npm cache verifyでキャッシュを検証する
  • df -hとdf -iで保存先を確認する
  • 削除前に対象ファイルとバックアップを確認する