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