npm 6 · npm
報錯原文
npm WARN react-dom@17.0.2 requires a peer of react@17.0.2 but none is installed.
這是什麼意思
npm 6 只對 peer 相依發警告,從來不替你裝:套件是裝上了,但它說自己需要的那個伙伴沒有。它出現在仍停留在 npm 6 的專案裡,或者你在用那個年代留下的舊 lock 檔。按警告裡印出的範圍自己裝上那個 peer 就完事了。現在還沒有任何東西失敗,因為這只是警告,但它稍後會以 Cannot find module 的形式回來,或者變成同一個函式庫裝了兩份、報出莫名其妙的錯。
怎麼修
這個沒有一行命令能解決。說明裡寫了該看哪裡。
- 來自
- npm 6
- npm
- 20
npm 的原因寫在第一行 code XXXX 裡,而不是最後那六行 npm ERR!;如果失敗來自相依樹或原生編譯而不是你自己的程式碼,刪掉 node_modules 重新安裝就能解決一半。
怎麼讀報錯
- 從第一行往下讀。越往下越是工具內部的事,起因通常寫在最上面。
- 有檔名和行號就從那裡查——不是堆疊最上面那一格,而是最上面那條提到你自己寫的檔案的行。
- 把報錯原文照樣去搜,但先去掉你自己的路徑和變數名,正是那些讓搜尋比對不上。
- 同一種情況在不同版本裡措辭不同。結果不對頭,就把版本號一起加進查詢。
- 貼上修法之前,先確認它會丟掉什麼。這裡面有些是不能收回的。
常見問題
Q. “npm WARN react-dom@17.0.2 requires a peer of react@17.0.2 but none is installed.” 是什麼意思?
npm 6 只對 peer 相依發警告,從來不替你裝:套件是裝上了,但它說自己需要的那個伙伴沒有。它出現在仍停留在 npm 6 的專案裡,或者你在用那個年代留下的舊 lock 檔。按警告裡印出的範圍自己裝上那個 peer 就完事了。現在還沒有任何東西失敗,因為這只是警告,但它稍後會以 Cannot find module 的形式回來,或者變成同一個函式庫裝了兩份、報出莫名其妙的錯。
Q. 怎麼修?
沒有一行命令能解決。上面的說明寫了該看哪裡。
Q. 這是哪個工具報的?
npm 6。它屬於npm,報錯原文有 12 個詞。
相關報錯
npm ERR! ERESOLVE unable to resolve dependency treenpmnpm ERR! Conflicting peer dependency: react@18.3.1npmnpm WARN deprecated request@2.88.2: request has been deprecatednpmnpm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.npmnpm ERR! The `npm ci` command can only install with an existing package-lock.json or npm-shrinkwrap.jsonnpmnpm ERR! Invalid Version:npmnpm ERR! 404 Not Found - GET https://registry.npmjs.org/@acme/ui - Not foundnpmnpm ERR! request to https://registry.npmjs.org/express failed, reason: unable to verify the first certificatenpm