我正在开始学习使用AngularJS教程“学习构建现代Web应用程序”,但是很早就遇到了问题。
我已经安装了node:
/path/ang-news node -v
v0.10.26
我之前一直在使用NPM,但是在使用Yeoman时出现了问题。我曾经重复了这些步骤,但是Grunt停止工作了,所以我重新开始了。
我运行了:
$ sudo npm install -g generator-angular
所有的依赖都在安装,直到我收到以下信息:
npm WARN package.json mongo@0.1.0 No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer generator-angular@0.9.1 wants generator-karma@>=0.8.2
我随后尝试进行更新:
$ npm update -g
我应该以管理员身份运行此程序。我收到了许多错误消息,这似乎是最相关的:
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 13.1.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! cwd /path/ang-news
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! not ok code 0
然后我尝试卸载generator-karma并重新开始:
$ sudo npm uninstall -g generator-karma
但实际收到的是:
sudo: npm: command not found
$ npm -v
-bash: /usr/local/bin/npm: No such file or directory
我的第一个问题是:为什么NPM突然消失了?
[编辑:感谢 @try-catch-finally 指出在切换普通用户和使用sudo命令时会导致混乱。事实证明我搞砸了我的用户环境,NPM不再安装。]
我的理解是NPM是在安装Node时一起安装的,因此我的第二个问题是:如何仅重新安装NPM?我希望不必从头开始重新安装Node。
[编辑:感谢 @hawk 和 @try-catch-finally - 似乎没有单独安装NPM的选项,但有简单的方法可以同时重新安装两者。]
$ npm update -g
看起来是错误的,如果你要处理全局包,你也需要以root身份运行此命令。有趣的是:你接着使用了sudo
但又执行了另一个npm
命令。也许你搞乱了用户环境?请检查一下/usr/local/bin/npm
是否真的不存在?请尝试执行find /usr
命令。关于原始错误Peer generator-angular@0.9.1 wants generator-karma@>=0.8.2
:看起来generator-angular
的开发人员更新了依赖项,但这些依赖项在存储库中不存在(我也遇到过这样的问题)。 - try-catch-finally$ find/usr npm
-bash: find/usr: No such file or directory
`很高兴知道我不是唯一遇到更新依赖项不在存储库中的问题的人。谢谢! - Rotimi./configure; make; make install
自己构建了node + npm?谁拥有/usr/local/bin/npm
?root.root
? - try-catch-finallyfind /usr
中的find
和路径之间有一个空格!请在脑海中飞行 ;) 请同时发出whereis node
和whereis npm
以显示提供node
和npm
的所有路径。 - try-catch-finally