問題原因
此問題通常會發生在歷史悠久的專案上,而這個錯誤表示當前C套件1.0.0的版本,不符合A套件所需要的版本,但是B套件需要C套件的1.0.0版本,然而 npm 無法替我們解決互相依賴套件的版本衝突,這時候有可能就會導致安裝失敗等問題。
解決方法一:使用 --force
啥都不管直接強迫安裝,很暴力,會導致版本不正確依賴的風險(不建議)npm install --force
解決方法二:使用 --legacy-peer-deps
網路上有很多文章說明這個指令是用來做什麼的,有興趣可以去查看看,而我這邊的理解是忽略互相依賴的C套件(共同持有),讓A套件和B套件各自擁有C套件的版本。
npm install --legacy-peer-deps
解決方法三:手動解決依賴衝突
手動調整依賴版本,看互相依賴的套件需要的版本是在哪個區間並手動調整
解決方法四:清理快取和重新安裝
也有可能只是卡住,不仿試試看清除快取,重新安裝
npm cache clean --force
結語
以上提供四種可以解決安裝衝突的方式,請評估專案和使用時機,選擇適合自己的解決方法吧~