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


当前回答

用于debian安装后的节点 输入

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

其他回答

如果您使用的是linux,请删除存在于/usr/lib中的node_modules文件夹

sudo rm -rf node-modules

然后使用curl重新安装节点:

sudo apt-get update
sudo apt install curl build-essential
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs

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

来源 .巴什尔克

在全局安装包时解决EACCES权限错误

为了尽量减少权限错误的机会,你可以配置npm使用不同的目录。在本例中,您将在主目录中创建和使用隐藏目录。

备份你的电脑。 在命令行中,在你的主目录中,创建一个用于全局安装的目录:

 mkdir ~/.npm-global

配置npm使用新的目录路径:

 npm config set prefix '~/.npm-global'

在您首选的文本编辑器中,打开或创建~/。配置文件,并添加这一行:

 export PATH=~/.npm-global/bin:$PATH

在命令行,更新你的系统变量:

 source ~/.profile

要测试您的新配置,请在不使用sudo的情况下全局安装一个包:

 npm install -g jshint

npm文件应该在/usr/local/bin/npm.如果没有,请在他们的网站上重新安装node.js。这对我来说很管用。

对于MAC用户,以下步骤对我来说是有效的。

如果你得到Error for Brew,下面是你需要在终端中首先输入的命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Then run following commands:
$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall