npm install編譯時報"Cannot read properties of null (reading ‘pickAlgorithm‘)"錯誤的解決辦法
先看報錯:
先說下網上大多數的解決方案:
方案一:
重新安裝node解決
方案二:
刪瞭node models重新下
或者直接下載CNPM(淘寶鏡像)進行安裝 CNPM安裝辦法
npm install -g cnpm -registry=https://registry.npm.taobao.org
查看cnpm是否真安裝成功 cnpm -v
方案三:
清除緩存npm cache clear –force之後再重新安裝依賴npm install
我的解決方案
基本上都是以上這三種方法,先說下我的項目為什麼會出現這種報錯,項目原先用的node13和14的版本,然後我們將node 升到16後發現原先的所有項目都編譯不瞭瞭,全報這種錯誤。
測試的時候遇到的假象,當將node13升到16的時候,重新編譯,編譯是正常的,但是後來發現當node_modules 刪除後重新編譯就會出現上面的錯,原因可能是我們node13編譯的node_modules沒有刪除,項目一直讀的node13編譯的東西,給我們以為我們安裝的node16是成功的。
遇到這類問題,牽扯到node升級,以上的解決方案並沒能解絕。
最後解決方案,找到package-lock.json
文件。將圖中圈紅的內容保留,其餘的全部刪除,然後npm install
重新編譯,package-lock.json會生成一份新的文件。最後編譯成功。得以解決。
總結:
node13生成的 package-lock.json 在結構上可能與node16的package-lock.json 結構上進行瞭大變動。所以我們用node13生成的package-lock.json讓node16去解析,肯定是解析不瞭的。所有我們將內容刪掉,node16給我們生成瞭一份新的內容。理論上說不會影響我們的項目,因為我們用的各種包的版本是在package.json內定義的,生成的package-lock.json內的版本依賴也是參照的package.json生成出來的,並不影響整體框架的使用。
到此這篇關於npm install編譯時報“Cannot read properties of null (reading ‘pickAlgorithm‘)“錯誤的解決辦法的文章就介紹到這瞭,更多相關npm install編譯時報錯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解npm和cnpm混用的坑
- vue踩坑記之npm install報錯問題解決總結
- Node.js包管理器npm的具體使用
- Vue安裝依賴npm install時的報錯問題及解決
- vue腳手架安裝以及安裝失敗問題解決辦法