我正在尝试升级到最新版本的节点。我在http://davidwalsh.name/upgrade-nodejs上按照说明操作

但当我这样做的时候:

sudo npm install -g n

我得到了错误:

sudo: npm: command not found

NPM没有sudo也能工作。当我这样做的时候:

whereis node

我明白了:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node

运行:

which npm

显示:

/usr/local/node/bin/npm

我在https://stackoverflow.com/a/5062718/1246159上尝试了解决方案

但还是得到相同的错误。我还查看了/etc/sudoers文件,相关行是:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

在我看来这很好。我怎么可能得到NPM工作与sudo命令?


当前回答

我也有同样的问题;下面是修复它的命令:

Sudo ln -s /usr/local/bin/node /usr/bin/node Sudo ln -s /usr/local/lib/node /usr/lib/node Sudo ln -s /usr/local/bin/npm /usr/bin/npm Sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

其他回答

完全移除节点:

  brew uninstall --force node

安装:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

你可以通过为npm和node创建符号链接来解决这个问题,这是快速而简单的:

sudo ln -s $(which npm) /usr/local/bin/npm
sudo ln -s $(which node) /usr/local/bin/node

我使用which来获取位置,然后将其作为变量传递给命令,例如$(npm)。

我也为node创建了一个符号链接,因为npm依赖于 节点。

然后你就可以:

sudo npm -v

不需要重新安装节点或在整个目录上使用chmod。

我必须做到以下几点:

酿造更新 Brew卸载节点 访问https://nodejs.org/en/下载该文件 安装下载的文件

我也有同样的问题;下面是修复它的命令:

Sudo ln -s /usr/local/bin/node /usr/bin/node Sudo ln -s /usr/local/lib/node /usr/lib/node Sudo ln -s /usr/local/bin/npm /usr/bin/npm Sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

I had the same issue,the reason for it was npm package manager was not installed while installing node. This was caused because of the following mistake: In the installation process there is a step called "Custom Setup", here you have the option to choose one of the following: 1) Node.js runtime (This is selected by default). 2) npm package manager 3) Online documentation shortcuts. 4) Add to Path. If you proceed as it is npm package manager will not be installed and hence you will get the error.

解决方案: 当你得到这些选项时,选择npm包管理器。 这对我很管用。