錯誤訊息
Mac 上的「npm error code ETIMEDOUT」
ETIMEDOUT 表示另一端沒有及時回應。Node.js 說明文件寫道:「the connected party did not properly respond after a period of time.」(連線的另一方在一段時間後仍未正確回應。)
症狀
npm install停止並顯示npm error code ETIMEDOUT。- npm 另外指出這是與網路連線有關的問題。
- 在特定網路(例如公司網路或熱點)上失敗。
可能原因
- npm 不知道的代理伺服器。在需要代理伺服器的網路上,npm 需要設定
proxy和https-proxy。 - 無法連到的 registry。舊的
registry設定可能指向私人伺服器。 - 緩慢或會遺失封包的連線。在訊號弱的 Wi-Fi 或熱點上,大型套件會逾時。
- IPv6 路徑故障。registry 有 IPv6 位址,但你的網路上 IPv6 無法運作。
如何檢查
顯示 npm 的 registry 和代理伺服器設定。
npm config get registry npm config get proxy npm config get https-proxy確認 registry 有回應。
npm ping使用 curl 測試 registry,只用 IPv4。
curl -4 -I https://registry.npmjs.org/測量連線。
networkQuality
如何修正
如果網路需要代理伺服器,請為 npm 設定。
npm config set https-proxy http://proxy.example.com:8080移除舊的 registry 設定,讓 npm 使用預設值。
npm config delete registry在連線緩慢時增加 npm 的重試次數。
npm config set fetch-retries 5可以的話,在較快的網路上再次執行安裝。
使用 Kilobat
Kilobat 的連線診斷會逐層測試 registry:網路、代理伺服器、DNS、規則、IPv4、IPv6、TLS 和伺服器,並指出是哪一層失敗。
kilobat why https://registry.npmjs.org/進行大型安裝前,先檢查網路是否為計量網路、是否經過 VPN,或速度是否很慢。
kilobat conditions這些 Kilobat 檢查都是免費的。AI 代理程式可透過 MCP 以
diagnose_connection和diagnose_network執行。請參閱找出某個網站或 API 連不上的原因。
常見問題
npm 會等多久?
npm 的文件指出,fetch-timeout 預設為 300000 ms(五分鐘),fetch-retries 預設為 2。
資料來源
- Node.js 說明文件:Common system errors
- npm 文件:config
- curl(1) 和 networkQuality(8),macOS 27.2 內建的 man 頁面
資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。