2023年10月12日 星期四

npm 安裝不依賴 --legacy-peer-deps 解決 Conflicting Peer Dependency 錯誤

當執行 npm install 時,出現錯誤 Conflicting peer dependecy: XXX,並出現提示:Fix the upstream dependecy conflict, or retry this commaned with --force or --legacy-peer-deps

此時只要嘗試執行

npm install --legacy-peer-deps

確實能夠避免這個錯誤,然而卻無法保證套件運作都是正常的,這個方法只能當作緩解,更正確的作法是將套件更新以保證互相兼容,以避免未來引發其他潛在問題。


首先,列出目前套件版本落後的項目:

npm outdated

可以注意我們會得到哪些訊息,Current 為目前安裝的版本;Wanted則是 npm 自動安裝的版本,確保版號的第一碼一致,盡可能地安裝最新的版本;Lastest 則是目前最新的版本。例如下方這個設定,對照圖片上的訊息,npm會自動安裝版本 7.23.2。

{
  "devDependencies": {
    "@babel/core": "^7.16.12"
  }
}

因為下一步我們會將package-lock.json移除,因此若 Current 和 Wanted 不一致,必須確保 Wanted 顯示的版本並不會影響到目前的專案,根據版本的需求做出對應的調整。若確定不升級,請記得務必調整package.json,確保安裝正確的版本。

下一步,移除目錄node_modules/和檔案package-lock.json

最後重新安裝套件:

npm install

確認一下專案是否都正常,大功告成!