溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

npm安裝依賴(lài)報(bào)錯(cuò)ERESOLVE?unable?to?resolve?dependency?tree如何解決

發(fā)布時(shí)間:2023-05-08 15:29:09 來(lái)源:億速云 閱讀:90 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“npm安裝依賴(lài)報(bào)錯(cuò)ERESOLVE unable to resolve dependency tree如何解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“npm安裝依賴(lài)報(bào)錯(cuò)ERESOLVE unable to resolve dependency tree如何解決”文章吧。

報(bào)錯(cuò)信息

在一個(gè)安裝了 react@18.2.0 的項(xiàng)目中安裝依賴(lài) ali-react-table,就會(huì)出現(xiàn)以下錯(cuò)誤。仔細(xì)閱讀錯(cuò)誤原因可以得知,ali-react-table 中使用 peerDependencies 定義了依賴(lài)于react@"^16.8.0 || ^17.0.1" 項(xiàng)目,和我們項(xiàng)目中的 React 版本號(hào)沖突了。雖然這里是因?yàn)?ali-react-table 已經(jīng)疏于維護(hù)并沒(méi)有更新依賴(lài)版本信息,但是我們對(duì)第三方依賴(lài)的可控性是比較低的,除了等待第三方依賴(lài)更新或者提 PR 等待合并之后發(fā)版,我們還有一些其他方法可以暫時(shí)解決這個(gè)問(wèn)題。

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: vite-project@0.0.0
npm ERR! Found: react@18.2.0
npm ERR! node_modules/react
npm ERR! react@"^18.2.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0 || ^17.0.1" from ali-react-table@2.6.1
npm ERR! node_modules/ali-react-table
npm ERR! ali-react-table@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

方案一:降級(jí)

依賴(lài)規(guī)則校驗(yàn)是在 npm@7 之后引入的,我們可以降級(jí) Node.js 或者 npm 來(lái)繞過(guò)校驗(yàn)就不會(huì)報(bào)錯(cuò)了。

nvm use 14.17.4

## or

npm i -g npm@6

方案二:-f 或者 --legacy-peer-deps

其實(shí)我們知道 ali-react-table 時(shí)由于疏于維護(hù),所以沒(méi)有及時(shí)更新依賴(lài)版本信息。實(shí)際測(cè)試和我們項(xiàng)目里的 react@18.2.0 是可以運(yùn)行沒(méi)有問(wèn)題的,那么我們就可以安裝的時(shí)候帶上 --force 參數(shù)(簡(jiǎn)寫(xiě) -f)告訴 npm 強(qiáng)制安裝。

npm install -f

另一個(gè)參數(shù)是 --legacy-peer-deps, 可以不用降級(jí) npm 也讓 npm install 的行為和舊版本一樣,參考文檔。不過(guò)這個(gè)參數(shù)實(shí)際使用效果可能依據(jù)項(xiàng)目存異,需要自行測(cè)試。

npm install --legacy-peer-deps

方案三:yarn 的 resolutions 或者 npm 的 overrides

實(shí)際項(xiàng)目中可能不僅僅存在一個(gè)以上類(lèi)似 ali-react-table 依賴(lài)版本和項(xiàng)目所需要的依賴(lài)版本不一致的問(wèn)題,可能會(huì)有好多依賴(lài)都會(huì)有該問(wèn)題,有時(shí)候我們知道項(xiàng)目的依賴(lài)版本關(guān)系,可以使用 resolutions(只有使用 yarn 才能使用,參考文檔) 或者 overrides(只有 npm@8 以上才能使用,參考文檔 ) 來(lái)指定、覆蓋第三方包指定的依賴(lài)版本。這個(gè)參數(shù)在其他一些場(chǎng)景也非常有效,比如所需要的第三方依賴(lài)缺少維護(hù)了、指定的版本是有問(wèn)題的版本等。

{"name": "project","version": "1.0.0","dependencies": {},"resolutions": {"react": "^18.2.0"}
}
{"overrides": {"react": "^18.2.0"}}

以上就是關(guān)于“npm安裝依賴(lài)報(bào)錯(cuò)ERESOLVE unable to resolve dependency tree如何解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI