在某些極端情況下,可能需要頻繁發布 npm 套件,而 npm 預設的快取時間為 5 分鐘。換句話說,在五分鐘內只會請求一次 npm 套件的元資料,如果在更新後的五分鐘內再次發布套件,預設情況下將無法偵測到新版本。
這時候,如果你搭配 ncu(npm-check-updates 套件)更新了 package.json 中的套件到最新版本,由於 npm 的快取,執行 npm i
將顯示找不到目標 npm 套件的指定版本而更新失敗。
解決方案#
使用 --prefer-online
標誌
執行 npm install 或 npm update 時添加 --prefer-online 標誌,設定優先從遠端 registry 取得。
npm install --prefer-online xxx
要將 prefer-online 設定應用於專案範圍內,可以在專案根目錄下的 .npmrc
檔案中添加以下設定:
prefer-online=true
類似的選項還有 --prefer-offline
等,--cache-max=0
選項其實是 --prefer-online
的別名。有關 npm config 的更多資訊請參考 npm doc。