如何修复 NPM ERR Does Not Satisfy Its Siblings’ peerDependencies Requirements

这个错误很奇怪,因为它出现在你尝试使用 NPM 全局安装新包时,npm install -g <package-name>。 这个命令的输出是这样的:

npm ERR! peerinvalid The package grunt does not satisfy its siblings' peerDependencies requirements!  
npm ERR! peerinvalid Peer grunt-contrib-copy@0.5.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-clean@0.5.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-concat@0.3.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-jst@0.6.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-watch@0.5.3 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-uglify@0.4.1 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-cssmin@0.9.0 wants grunt@~0.4.1  
npm ERR! peerinvalid Peer grunt-contrib-less@0.11.1 wants grunt@^0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-coffee@0.10.1 wants grunt@~0.4.0  

NPM 可以选择在 package.json 文件中定义 peerDependencies。 peerDependencies 被定义为包名和各自版本的依赖项。 在这种特定情况下的问题:对于已经安装的 generator-pho 和 yeoman-generator 包以及我想安装 kss 的新包,这里有一个不同的定义。

如何修复

错误消息不必与我们尝试安装的软件包相关。 这意味着,如果你想安装例如 kss, 这个错误并不意味着kss有问题。

好的,那又怎样? 检查安装尝试期间提示的其他消息,并找到导致问题的软件包。 这些部分看起来像

…
Binary is fine; exiting  
/usr/local/bin/kss-node -> /usr/local/lib/node_modules/kss/bin/kss-node
npm WARN unmet dependency /usr/local/lib/node_modules/generator-pho/node_modules/yeoman-generator/node_modules/download/node_modules/decompress/node_modules/extname requires map-key@'^0.1.1' but will load  
npm WARN unmet dependency /usr/local/lib/node_modules/generator-pho/node_modules/yeoman-generator/node_modules/download/node_modules/decompress/node_modules/map-key,  
npm WARN unmet dependency which is version 0.1.4  
npm WARN unmet dependency /usr/local/lib/node_modules/yo/node_modules/yeoman-generator/node_modules/download/node_modules/decompress/node_modules/extname requires map-key@'^0.1.1' but will load  
npm WARN unmet dependency /usr/local/lib/node_modules/yo/node_modules/yeoman-generator/node_modules/download/node_modules/decompress/node_modules/map-key,  
npm WARN unmet dependency which is version 0.1.4  
npm ERR! peerinvalid The package grunt does not satisfy its siblings' peerDependencies requirements!  
npm ERR! peerinvalid Peer grunt-contrib-copy@0.5.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-clean@0.5.0 wants grunt@~0.4.0  
npm ERR! peerinvalid Peer grunt-contrib-concat@0.3.0 wants grunt@~0.4.0  

查看 WARN 指示的行。 具体消息显示导致错误的模块。 在上面的输出中,它是 generator-pho 和 yo。

解决方案是更新或卸载模块。 之后,我们可以再次为实际包运行安装命令,它应该可以完成而没有错误。 请记住:此错误是由全局安装的节点模块引起的,应更新或卸载这些模块来解决问题。

免责声明:
1.本站所有内容由本站原创、网络转载、消息撰写、网友投稿等几部分组成。
2.本站原创文字内容若未经特别声明,则遵循协议CC3.0共享协议,转载请务必注明原文链接。
3.本站部分来源于网络转载的文章信息是出于传递更多信息之目的,不意味着赞同其观点。
4.本站所有源码与软件均为原作者提供,仅供学习和研究使用。
5.如您对本网站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。
火焰兔 » 如何修复 NPM ERR Does Not Satisfy Its Siblings’ peerDependencies Requirements