低速のインターネット接続で NPM タイムアウト エラーを修正する方法


低速または不安定なインターネット接続で作業している場合、npmnpm installnpm update のようなコマンドをタイムアウト エラーで完了できないことがよくあります.このような状況では、 npmfetch-retriesfetch-retry-mintimeoutfetch-retry-maxtimeout などの cache-min 構成を変更して、これらのタイムアウト エラーを最小限に抑えることができます.

フェッチ再試行



この構成は、パッケージをフェッチするときに npm がレジストリへの接続を試行する回数を制御します.デフォルト値は 2 ですが、必要に応じて 3~5 またはそれ以上に増やすことができます.ターミナル ウィンドウを開き、最後に目的の再試行回数を指定して次のコマンドを実行します.

npm config set fetch-retries 3


fetch-retry-mintimeout



この構成は、レジストリからパッケージを取得するときにタイムアウトになるまでの最小時間 (ミリ秒単位) npm を制御します.デフォルト値は 10000 ミリ秒 (10 秒) です.100000 以上に変更してください.

npm config set fetch-retry-mintimeout 100000


フェッチ再試行最大タイムアウト



この構成は、レジストリからパッケージをフェッチするときにタイムアウトになるまでの最大待機時間 (ミリ秒単位) を制御します.デフォルト値は 10000 ミリ秒 (10 秒) です.600000 以上に変更してください.

npm config set fetch-retry-maxtimeout 600000


キャッシュ最小



この構成は、レジストリを再チェックする前に項目を保持する最小時間 (秒単位) を制御します.デフォルト値は 10 秒ですが、3600 秒 (1 時間) 以上に変更してください.

npm config set cache-min 3600


最後に、このコマンドを実行して、すべての構成変更が正常に適用されたかどうかを確認します.

npm config ls -l


ここで、失敗したコマンドをいくつか実行して、それらが機能しているかどうかを確認してください.この質問で言及されている期間の値は、デモンストレーションのみを目的としており、状況に応じて値を増減してさまざまな値を試すことができます.利用可能なその他の構成については、npm-config のドキュメントを参照してください.

その他の関連コンテンツについては、devtonight.com にアクセスしてください.