npm の ECONNRESET エラー:原因と解決策

結論 npm error code ECONNRESET は、接続が相手側から切られたという意味です。npm はこのコードを他のネットワーク系と同じ分岐で扱うため、固有の説明は出ません。表示されるのは「ネットワーク接続に関する問題である」「多くの場合は中継の設定かネットワーク設定に問題がある」という2文と、中継設定の確認を促す1文だけです。 つまり文言からは原因を絞れません。切り分けの材料は3つあります。どの回線で起きるか、失敗する対象が毎回同じか変わるか、そして失敗するまでの時間です。 npm は取得に失敗した場合、既定で2回まで再試行します。待ち時間は10秒から始まり、上限は1分です。これを踏まえると、実行してすぐ落ちる場合と、数十秒かけて落ちる場合では見るべき場所が違います。 最初に確認すること まず、経路の設定を並べて確認します。 npm config get proxy npm config get https-proxy npm config get registry npm config get maxsockets proxy と https-proxy が null なのに社内の回線から実行している場合、原因1に当たります。環境変数側だけに設定されていることもあるため、そちらも見てください。 printenv | grep -i proxy 次に、失敗する対象が毎回同じかを確かめます。 npm install --loglevel verbose 2>&1 | tail -40 対象が実行ごとに変わるなら、特定のパッケージではなく接続の総量が問題です。同じ対象で止まるなら、その向き先が届いていません。 原因別の確認方法と解決策 原因1:中継の設定が npm に渡っていない 社内の回線からのみ失敗する場合です。npm の説明文も、まずこの可能性を挙げます。 確認方法は設定値の突き合わせです。公式の説明によれば、HTTP_PROXY や http_proxy の環境変数が設定されていれば、その内容が利用されます。npm 側の設定と環境変数のどちらか一方だけに値が入っていると、経路が定まりません。 対処は、組織から指定されている中継先へ揃えることです。 npm config set proxy http://proxy.example.com:8080 npm config set https-proxy http://proxy.example.com:8080 中継先を通さない宛先がある場合は、除外する一覧も設定してください。 ...

2026年8月8日 · ErrorLog