首页·报错信息

npm · npm

报错原文

npm ERR! Conflicting peer dependency: react@18.3.1

这是什么意思

这一行从 ERESOLVE 的报告里挑出了真正冲突的那一对:这个包要求某个 peer 的那个版本,而你的依赖树里装的是另一个。通常意味着主库做了大版本跳跃,而用它的插件还没跟上。按名字问一句 npm ls react,就会以树的形式打印出谁要求了哪个版本,该动这两者中的哪一个当场就清楚了。把插件升上去才是真正的修法;--force 照样把不匹配的树写下去,把问题藏到运行时才爆。

怎么修

npm ls react
来自
npm
npm
20

npm 的原因写在第一行 code XXXX 里,而不是最后那六行 npm ERR!;如果失败来自依赖树或原生编译而不是你自己的代码,删掉 node_modules 重新安装就能解决一半。

怎么读报错

  • 从第一行往下读。越往下越是工具内部的事,起因通常写在最上面。
  • 有文件名和行号就从那里查——不是栈顶那一帧,而是最上面那条提到你自己写的文件的行。
  • 把报错原文照样去搜,但先去掉你自己的路径和变量名,正是那些让搜索匹配不上。
  • 同一种情况在不同版本里措辞不同。结果不对头,就把版本号一起加进查询。
  • 粘贴修法之前,先确认它会丢掉什么。这里面有些是不能撤回的。

常见问题

Q. “npm ERR! Conflicting peer dependency: react@18.3.1” 是什么意思?

这一行从 ERESOLVE 的报告里挑出了真正冲突的那一对:这个包要求某个 peer 的那个版本,而你的依赖树里装的是另一个。通常意味着主库做了大版本跳跃,而用它的插件还没跟上。按名字问一句 npm ls react,就会以树的形式打印出谁要求了哪个版本,该动这两者中的哪一个当场就清楚了。把插件升上去才是真正的修法;--force 照样把不匹配的树写下去,把问题藏到运行时才爆。

Q. 怎么修?

npm ls react —— 执行前先看上面的说明,确认这条命令会丢掉什么。

Q. 这是哪个工具报的?

npm。它属于npm,报错原文有 6 个词。

相关报错