npm?install編譯時報"Cannot?read?properties?of?null?(reading?‘pickAlgorithm‘)"錯誤的解決辦法
先看報錯:

先說下網(wǎng)上大多數(shù)的解決方案:
方案一:
重新安裝node解決
方案二:
刪了node models重新下
或者直接下載CNPM(淘寶鏡像)進行安裝 CNPM安裝辦法
npm install -g cnpm -registry=https://registry.npm.taobao.org
查看cnpm是否真安裝成功 cnpm -v
方案三:
清除緩存npm cache clear --force之后再重新安裝依賴npm install
我的解決方案
基本上都是以上這三種方法,先說下我的項目為什么會出現(xiàn)這種報錯,項目原先用的node13和14的版本,然后我們將node 升到16后發(fā)現(xiàn)原先的所有項目都編譯不了了,全報這種錯誤。
測試的時候遇到的假象,當(dāng)將node13升到16的時候,重新編譯,編譯是正常的,但是后來發(fā)現(xiàn)當(dāng)node_modules 刪除后重新編譯就會出現(xiàn)上面的錯,原因可能是我們node13編譯的node_modules沒有刪除,項目一直讀的node13編譯的東西,給我們以為我們安裝的node16是成功的。
遇到這類問題,牽扯到node升級,以上的解決方案并沒能解絕。
最后解決方案,找到package-lock.json文件。將圖中圈紅的內(nèi)容保留,其余的全部刪除,然后npm install重新編譯,package-lock.json會生成一份新的文件。最后編譯成功。得以解決。

總結(jié):
node13生成的 package-lock.json 在結(jié)構(gòu)上可能與node16的package-lock.json 結(jié)構(gòu)上進行了大變動。所以我們用node13生成的package-lock.json讓node16去解析,肯定是解析不了的。所有我們將內(nèi)容刪掉,node16給我們生成了一份新的內(nèi)容。理論上說不會影響我們的項目,因為我們用的各種包的版本是在package.json內(nèi)定義的,生成的package-lock.json內(nèi)的版本依賴也是參照的package.json生成出來的,并不影響整體框架的使用。
到此這篇關(guān)于npm install編譯時報“Cannot read properties of null (reading ‘pickAlgorithm‘)“錯誤的解決辦法的文章就介紹到這了,更多相關(guān)npm install編譯時報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.JS獲取GET,POST數(shù)據(jù)之queryString模塊使用方法詳解
本文將詳細介紹nodeJS中的queryString模塊使用方法,包括Node.JS獲取GET,POST數(shù)據(jù)的方法,需要的朋友可以參考下2020-02-02
Windows中安裝nvm進行Node版本控制與詳細使用教程
nvm和npm都是node.js版本管理工具,但是為了解決node各種不同之間版本存在不兼容的問題,因此可以通過nvm安裝和切換不同版本的node,感興趣的可以了解一下2023-09-09
nodeJs爬蟲獲取數(shù)據(jù)簡單實現(xiàn)代碼
這篇文章主要為大家詳細介紹了nodeJs爬蟲獲取數(shù)據(jù)簡單實現(xiàn)代碼,感興趣的小伙伴們可以參考一下2016-03-03
Node.js?搭建后端服務(wù)器內(nèi)置模塊(?http+url+querystring?的使用)
這篇文章主要介紹了Node.js搭建后端服務(wù)器內(nèi)置模塊(http+url+querystring的使用),文章圍繞主題展開詳細的內(nèi)容戒殺,具有一定的參考價值,需要的朋友可以參考一下2022-09-09
node.js事件循環(huán)機制及與js區(qū)別詳解
這篇文章主要為大家介紹了node.js事件循環(huán)機制及與js區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09

