npm peerDependency 问题与 grunt 和 flatiron peer

Posted

技术标签:

【中文标题】npm peerDependency 问题与 grunt 和 flatiron peer【英文标题】:npm peerDependency issue with grunt and flatiron peer 【发布时间】:2013-01-30 20:38:56 【问题描述】:

在发布这个问题时,我想出了答案,但我会在这里发布,以防它帮助其他人,也许有人可以帮助解决发生的原因

当我跑步时:

sudo npm install -g grunt

它的最后一部分说:

/usr/bin/grunt -> /usr/lib/node_modules/grunt/bin/grunt
npm ERR! peerinvalid The package flatiron does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer flatiron-cli-config@0.1.3 wants flatiron@~0.1.9
npm ERR! peerinvalid Peer flatiron-cli-users@0.1.1 wants flatiron@~0.1.9

npm ERR! System Linux 3.5.0-23-generic
npm ERR! command "nodejs" "/usr/bin/npm" "install" "-g" "grunt"
npm ERR! cwd /home/explunit
npm ERR! node -v v0.8.19
npm ERR! npm -v 1.2.9
npm ERR! code EPEERINVALID
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/explunit/npm-debug.log
npm ERR! not ok code 0

正如您在上面看到的,我使用的是节点 0.8.19 和 npm 1.2.9(来自 Ubuntu 12.10 上的 ppa:chris-lea 的最新版本)。

我尝试过的其他事情:

在全新的 Ubuntu 安装上做了同样的事情。没有错误。在最后几个错误行之前,脚本输出看起来是一样的。 运行“sudo npm cache clean”并再次尝试。不走运。 运行“npm list”,但没有列出任何其他内容

【问题讨论】:

【参考方案1】:

我的错误是没有在 npm list 命令上附加 -g。

npm list -g

完成此操作后,我看到了全局安装的模块列表(例如 bower、jshint、mocha),并且在最后:

npm ERR! peer invalid: flatiron@0.3.0 /usr/lib/node_modules/jitsu/node_modules/flatiron
npm ERR! not ok code 0

然后我运行这个命令来查看哪些正在使用 flatiron:

npm list -g flatiron

在这种情况下,它是 jitsu,一个我不再使用的模块。我跑了

sudo npm uninstall -g jitsu
sudo npm uninstall -g grunt

然后再次运行原始命令。 请稍后回答此问题的任何人注意:在 release of 0.4 之后全局重新安装 grunt 命令行的正确模块现在是 grunt-cli,而不是像我问原始问题时那样的 grunt

如果我真的想保留 jitsu,我可以更新它而不是卸载它(感谢 @BenAtkin):

npm install -g jitsu

然后再次运行原始命令。有关更多背景信息,请参阅this blog post about peerDependency being added in node 0.8.19。

【讨论】:

感谢您的问题和答案,尝试安装 browserify 时发疯了,同样的错误和相同的模块 (jitsu) 搞砸了。我真的不清楚问题出在我的环境上,我确信问题出在 browserify 上,几乎引发了一个问题,避免了尴尬,谢谢:)【参考方案2】:

如果你不介意安装 jitsu,你可以升级 jitsu,这应该可以工作。

npm install -g jitsu
npm install -g grunt-cli

【讨论】:

以上是关于npm peerDependency 问题与 grunt 和 flatiron peer的主要内容,如果未能解决你的问题,请参考以下文章

意外的 NPM PeerDependency 错误

探讨npm依赖管理之peerDependencies

细说 peerDependencies

快速解决NPM报错:peerDependencies WARNING

npm 对等依赖意外失败

在 npm 包中使用对等依赖项