エラーメッセージ

Macで「npm error code ETIMEDOUT」と表示される

ETIMEDOUTは、相手側が時間内に応答しなかったことを意味します。Node.jsのドキュメントには「the connected party did not properly respond after a period of time.」(接続先が一定時間後も適切に応答しなかった)とあります。

対象:npm 10以降は「npm error」、それより前のバージョンは「npm ERR!」と表示します。現行のすべてのmacOS。確認日:2026年10月29日

症状

  • npm installがnpm error code ETIMEDOUTで止まる。
  • npmが、ネットワーク接続に関する問題だと付け加える。
  • 会社のネットワークやテザリングなど、特定のネットワークで失敗する。

考えられる原因

  • npmが知らないプロキシ。プロキシが必要なネットワークでは、npmにproxyとhttps-proxyの設定が必要です。
  • 到達できないレジストリ。古いregistryの設定が、プライベートサーバを指していることがあります。
  • 遅い、またはパケットロスの多い接続。弱いWi-Fiやテザリングでは、大きなパッケージがタイムアウトします。
  • 壊れたIPv6の経路。レジストリにはIPv6アドレスがありますが、使っているネットワークではIPv6が機能していません。

確認方法

  1. npmのレジストリとプロキシの設定を表示します。

    npm config get registry
    npm config get proxy
    npm config get https-proxy
  2. レジストリに応答を求めます。

    npm ping
  3. IPv4のみで、curlを使ってレジストリをテストします。

    curl -4 -I https://registry.npmjs.org/
  4. 接続を測定します。

    networkQuality

解決方法

  1. ネットワークでプロキシが必要な場合は、npmに設定します。

    npm config set https-proxy http://proxy.example.com:8080
  2. 古いレジストリ設定を削除して、npmがデフォルトを使うようにします。

    npm config delete registry
  3. 遅い接続では、npmの再試行回数を増やします。

    npm config set fetch-retries 5
  4. 可能であれば、より速いネットワークでもう一度インストールします。

Kilobatを使う場合

  1. Kilobatの接続ドクターは、レジストリへの接続をネットワーク、プロキシ、DNS、ルール、IPv4、IPv6、TLS、サーバの層ごとにテストし、失敗した層を特定します。

    kilobat why https://registry.npmjs.org/
  2. 大きなインストールの前に、ネットワークが従量制か、VPN経由か、遅いかを確認します。

    kilobat conditions
  3. これらのKilobatのチェックは無料です。AIエージェントはMCPを通じてdiagnose_connectionとdiagnose_networkで実行します。1つのサイトやAPIに接続できない原因を見つけるを参照してください。

よくある質問

npmはどれくらい待ちますか?

npmのドキュメントによると、fetch-timeoutのデフォルトは300000 ms(5分)、fetch-retriesは2回です。

出典

出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」でman <name>を実行すると開けます。