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)文章
基于socket.io+express實現(xiàn)多房間聊天
本文給大家分享的是使用node.js,基于socket.io+express實現(xiàn)多房間聊天的代碼,非常的實用,有需要的小伙伴可以來參考下2016-03-03Nodejs實現(xiàn)的一個簡單udp廣播服務(wù)器、客戶端
這篇文章主要介紹了Nodejs實現(xiàn)的一個簡單udp廣播服務(wù)器、客戶端,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2014-09-09Node.js中path.resolve與path.join的區(qū)別與作用詳解
path.resolve和path.join都是屬于path核心模塊下的方法,用來拼接路徑,下面這篇文章主要給大家介紹了關(guān)于Node.js中path.resolve與path.join的區(qū)別與作用的相關(guān)資料,需要的朋友可以參考下2023-03-03詳解使用Node.js 將txt文件轉(zhuǎn)為Excel文件
這篇文章主要介紹了詳解使用Node.js 將txt文件轉(zhuǎn)為Excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07