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的主要内容,如果未能解决你的问题,请参考以下文章