極端な場合には、頻繁に npm パッケージをリリースする必要があるかもしれませんが、npm のデフォルトのキャッシュ時間は 5 分です。つまり、5 分以内には npm パッケージのメタデータのリクエストは 1 回しか行われません。更新後の 5 分以内に再度パッケージを送信しても、デフォルトでは新しいバージョンが検出されません。
この場合、package.json のパッケージを最新バージョンに更新するために ncu(npm-check-updates パッケージ)を使用した場合、npm のキャッシュのためにnpm i
を実行すると、指定したバージョンの npm パッケージのターゲットが見つからないというエラーが表示され、更新が失敗します。
解決策#
--prefer-online
フラグを使用する
npm install または npm update を実行する際に、--prefer-online フラグを追加して、リモートレジストリから優先的に取得するように設定します。
npm install --prefer-online xxx
prefer-online をプロジェクト全体に適用するには、プロジェクトのルートディレクトリにある.npmrc
ファイルに次の設定を追加します:
prefer-online=true
同様のオプションには、--prefer-offline
などもあります。--cache-max=0
オプションは実際には--prefer-online
のエイリアスです。npm config の詳細については、npm docを参照してください。