找不到npm:命令.如何在已安装Node的情况下重新安装NPM?NPM去哪儿了?

Rot*_*imi 17 node.js npm angularjs bower yeoman-generator-angular

我正在开始学习使用AngularJS教程构建现代Web应用程序并尽早解决问题.

我安装了节点:

/path/ang-news node -v
v0.10.26
Run Code Online (Sandbox Code Playgroud)

我之前使用的是NPM但是遇到了Yeoman的问题.我已经重复了这些步骤,但是Grunt停止了工作,所以我开始新鲜了.

我跑了:

$ sudo npm install -g generator-angular
Run Code Online (Sandbox Code Playgroud)

并且所有依赖项都在安装,直到我收到:

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
Run Code Online (Sandbox Code Playgroud)

然后我尝试更新:

$ npm update -g
Run Code Online (Sandbox Code Playgroud)

我应该以管理员身份运行它.我收到了大量的错误消息,这似乎是最相关的:

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
Run Code Online (Sandbox Code Playgroud)

然后我尝试卸载generator-karma并开始新鲜:

$ sudo npm uninstall -g generator-karma
Run Code Online (Sandbox Code Playgroud)

但收到:

sudo: npm: command not found

$ npm -v
-bash: /usr/local/bin/npm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是:为什么NPM突然消失了?

[编辑:感谢@ try-catch-finally指出在发出命令时在普通用户和sudo之间切换时发生的破坏.事实证明,我搞砸了我的用户环境,并且不再安装NPM.

我的理解是在安装Node时安装了NPM,所以我的第二个问题是:如何重新安装NPM?我不想从头开始重新安装Node.

[编辑:感谢@hawk和@ try-catch-finally - 似乎没有单独安装NPM是一种选择,但有很简单的方法可以重新安装两者.

Sam*_*kes 41

  1. 如果您有一个工作节点,则可以重新安装npm

curl -L https://npmjs.org/install.sh | sudo sh

  1. 不幸的npm update -g是没有做任何人期望的事情.修复此问题是在npm路线图上,但这需要一段时间.

  2. 您几乎不需要全局安装软件包,除非(例如generator-angulargrunt-cli)您希望将该软件包用作命令.

  • 太棒了,它解决了sudo:npm:command not found (3认同)