您好,登錄后才能下訂單哦!
這篇“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如何解決”文章吧。
在一個(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.
依賴(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
其實(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
實(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è)資訊頻道。
免責(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)容。