今天在使用npm安裝程序時出現了以下問題如下:
npm cache clean --force
,若這個方法沒有生效,建議找到npm文件(可通過npm config list
), npm cache add <tarball file>
添加文件
npm cache add <folder>
添加文件夾
npm cache add <name>@<version>
通過npm添加文件并規定版本號(可選)
npm cache clean [<path>]
已知路徑的緩存清除
npm cache verify
驗證緩存包
三個常用命令: add:將指定的包添加到本地緩存中。此命令主要用于NPM內部,但它可以提供一種將數據顯式添加到本地安裝緩存的方法。
clean:刪除緩存文件夾中的所有數據。
verify:驗證緩存文件夾的內容,垃圾收集任何不需要的數據,并驗證緩存索引和所有緩存數據的完整性。
那么為什么緩存包會出現問題呢?官網上是這樣說的:
npm將緩存數據存儲在已配置緩存中的opaque目錄中,名為_cacache。 此目錄是基于cacache的內容可尋址緩存,它存儲所有http請求數據以及其他與包相關的數據。 該目錄主要通過pacote訪問,pacote負責從npm @ 5開始的所有包提取。
通過緩存的所有數據都經過完全驗證,以確保插入和提取的完整性。 高速緩存損壞將觸發錯誤,或發出信號以確認必須重新獲取數據,這將自動執行。 出于這個原因,除了回收磁盤空間之外,永遠不需要清除緩存,因此為什么現在清理需要--force運行。
目前沒有通過npm公開的方法來檢查或直接管理此緩存的內容。 要訪問它,必須直接使用cacache。
npm不會自行刪除數據:緩存將隨著新軟件包的安裝而增長。 簡而言之就是npm會把緩存存在一個名為_acache的目錄中,緩存會在所有用到npm包的地方,所以會出現損壞,這樣就導致npm運行時出錯,而catch的清空是需要攜帶 --force參數方可生效,此外NPM不會自行刪除數據:隨著新包的安裝,緩存將增長。