npm 问题(一)
今天在使用npm安裝程序時(shí)出現(xiàn)了以下問(wèn)題如下:
我解決了問(wèn)題,這是由于緩存清除錯(cuò)誤(但他們自動(dòng)修復(fù))有一些數(shù)據(jù)損壞,沒(méi)有讓JSON文件解析,使用以下命令可以解決: 即: npm cache clean --force,若這個(gè)方法沒(méi)有生效,建議找到npm文件(可通過(guò)npm config list), 然后從文件夾中刪除完整的npm緩存和npm文件,然后完全重新安裝。 剛開(kāi)始不太理解這個(gè)命令,所以Google了一下 npm官網(wǎng)上關(guān)于cache有以下命令:npm cache add <tarball file> 添加文件
npm cache add <folder> 添加文件夾
npm cache add <name>@<version>通過(guò)npm添加文件并規(guī)定版本號(hào)(可選)
npm cache clean [<path>]已知路徑的緩存清除
npm cache verify 驗(yàn)證緩存包
三個(gè)常用命令: add:將指定的包添加到本地緩存中。此命令主要用于NPM內(nèi)部,但它可以提供一種將數(shù)據(jù)顯式添加到本地安裝緩存的方法。
clean:刪除緩存文件夾中的所有數(shù)據(jù)。
verify:驗(yàn)證緩存文件夾的內(nèi)容,垃圾收集任何不需要的數(shù)據(jù),并驗(yàn)證緩存索引和所有緩存數(shù)據(jù)的完整性。
那么為什么緩存包會(huì)出現(xiàn)問(wèn)題呢?官網(wǎng)上是這樣說(shuō)的:
npm將緩存數(shù)據(jù)存儲(chǔ)在已配置緩存中的opaque目錄中,名為_(kāi)cacache。 此目錄是基于cacache的內(nèi)容可尋址緩存,它存儲(chǔ)所有http請(qǐng)求數(shù)據(jù)以及其他與包相關(guān)的數(shù)據(jù)。 該目錄主要通過(guò)pacote訪問(wèn),pacote負(fù)責(zé)從npm @ 5開(kāi)始的所有包提取。
通過(guò)緩存的所有數(shù)據(jù)都經(jīng)過(guò)完全驗(yàn)證,以確保插入和提取的完整性。 高速緩存損壞將觸發(fā)錯(cuò)誤,或發(fā)出信號(hào)以確認(rèn)必須重新獲取數(shù)據(jù),這將自動(dòng)執(zhí)行。 出于這個(gè)原因,除了回收磁盤(pán)空間之外,永遠(yuǎn)不需要清除緩存,因此為什么現(xiàn)在清理需要--force運(yùn)行。
目前沒(méi)有通過(guò)npm公開(kāi)的方法來(lái)檢查或直接管理此緩存的內(nèi)容。 要訪問(wèn)它,必須直接使用cacache。
npm不會(huì)自行刪除數(shù)據(jù):緩存將隨著新軟件包的安裝而增長(zhǎng)。 簡(jiǎn)而言之就是npm會(huì)把緩存存在一個(gè)名為_(kāi)acache的目錄中,緩存會(huì)在所有用到npm包的地方,所以會(huì)出現(xiàn)損壞,這樣就導(dǎo)致npm運(yùn)行時(shí)出錯(cuò),而catch的清空是需要攜帶 --force參數(shù)方可生效,此外NPM不會(huì)自行刪除數(shù)據(jù):隨著新包的安裝,緩存將增長(zhǎng)。
轉(zhuǎn)載于:https://juejin.im/post/5bfe879a51882516dc619872
總結(jié)
- 上一篇: 梦到牙掉了父母不好吗
- 下一篇: 总是梦到和领导在一起了是什么意思