我正在尝试升级到最新版本的节点。我在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命令?


当前回答

完全移除节点:

  brew uninstall --force node

安装:

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

其他回答

为了在sudo权限下全局安装npm包,/usr/bin/npm应该是可用的。如果npm存在于其他目录,创建一个像这样的软链接:

sudo ln -s /usr/local/bin/npm /usr/bin/npm

它适用于Fedora 25、node8.0.0和npm5.0.0

我必须这么做

sudo apt-get install npm

这对我很管用。

用于debian安装后的节点 输入

curl -k -O -L https://npmjs.org/install.sh    
ln -s /usr/bin/nodejs /usr/bin/node  
sh install.sh

对我来说,上面提到的任何使用Homebrew的方法在macOS上都不起作用。因此,我使用Homebrew卸载了node,并从https://nodejs.org/en/download/下载了node包并安装了它。这招很管用。

在我的例子中,由于某种原因,在安装了一些python模块后,我突然开始收到消息,说node没有安装或没有被识别为命令。 经过检查,我的路径被注册在.bashrc中。 所以我找到了那个文件,一切都恢复正常了。

来源 .巴什尔克