18

我开始使用 AngularJS 教程学习构建现代 Web 应用程序,并且很早就遇到了问题。

我安装了节点:

/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。]

我的理解是安装Node的时候就安装了NPM,所以我的第二个问题是:如何只重新安装NPM?我不希望从一开始就重新安装 Node。

[编辑:感谢@hawk 和@try-catch-finally - 似乎单独安装 NPM 不是一个选项,但有一些简单的方法可以重新安装两者。]

4

3 回答 3

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

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

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

  2. 你几乎不需要全局安装一个包,除非你想将该包用作命令(如generator-angular或)。grunt-cli

于 2014-11-21T17:05:17.573 回答
4

以防万一您使用 brew 完成了此操作,我推荐 github 上的这篇文章。将为您节省大量时间。

https://gist.github.com/DanHerbert/9520689

在 Mac OS X 上为 Homebrew 用户修复 npm 运行以下命令以删除所有现有的全局 npm 模块,卸载节点和 npm,使用正确的默认值重新安装节点,将 npm 作为自己的包安装,并配置全局 npm 模块的位置要安装。

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

此时应正确安装 Node 和 npm。最后一步是将 ~/.node/bin 添加到 PATH 中,以便全局安装的命令可用。我将此行添加到我的 ~/.path 脚本中,该脚本通过 ~/.bash_profile 运行。按原样运行以下行。

export PATH="$HOME/.node/bin:$PATH"
于 2015-12-09T16:03:24.130 回答
0

在执行命令以在redhat 7.1上安装最新版本的 npm 后,我遇到了完全相同的问题:

    npm install npm@latest -g

经过一些尝试,我找到了解决方案:

    yum reinstall npm

我希望这可以帮助 redhat/centos 用户。

于 2017-11-24T01:56:13.030 回答