使用NVM时找不到NPM

60

我已经按照 nvm 文档的说明安装了 Node.js/npm。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

那么:

nvm install node

此时Node正在工作,但npm命令的结果为:

npm: command not found

我该如何使npm正常工作?

15个回答

53

我发现这是由于之前的npm版本没有正确删除导致冲突,尽管执行了apt-get remove node

我通过从头重新安装npm来解决了这个问题:

rm -R ~/.npm ~/.nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
nvm install node

我在这里找到了解决方案。


10
提醒一下,如果你想复制整个字符串,请使用更新版本的nvm安装脚本 - ropeladder
更新了链接。不过,正如所说的那样,最新版本始终可以在代码库中找到。 - Niko9911
1
对我没用——我从未安装过nodejs、npm或nvm,尝试了这个命令:apt-get update --quiet && apt-get purge -y nodejs npm && apt-get autoremove -y && rm -rf ~/.npm ~/.nvm && apt-get clean - Val Kornea

44
如果你在使用NVM-Windows,请不要忘记运行nvm on。(对我而言,这解决了问题作为标题。)

1
不起作用。可能是因为我没有使用安装程序安装之前的节点?我手动配置了环境路径。 - zhuhang.jasper
1
对我有用!这就是为什么Windows让人沮丧的原因。 - Riley Shaw
1
这是对我来说的答案。 - Eiglimar Junior
这对我有用,谢谢! - undefined

19

我通过运行以下命令解决了这个问题:

$ command -v npm

之后重新打开终端窗口即可。


对我来说,这个方法可行,而被接受的答案则不行,因为我之前没有安装npm。 - Akash Jobanputra
我认为这允许npm在安装nvm后再次进入您的shell...有关更多详细信息,请阅读此问题-> https://askubuntu.com/questions/512770/what-is-use-of-command-command - Heartbit

8

我通过卸载所有有问题的node版本(例如v14以下版本)并重新安装解决了它。

问题:

node --version; npm --version;

v14.17.1
Command 'npm' not found, but can be installed with:
sudo apt install npm

解决方案:
nvm deactivate

echo "All versions BEFORE:"
nvm_ls

# uninstall all 14.* versions
for v in $(nvm_ls 14); do nvm uninstall $v; done

echo "All versions AFTER:"
nvm_ls

# reinstall version 14
nvm install 14

# and now it has npm too
node --version; npm --version
which node; which npm

# v14.17.1
# 6.14.13
# /home/user/.nvm/versions/node/v14.17.1/bin/node
# /home/user/.nvm/versions/node/v14.17.1/bin/npm


由于npm需要通过nvm进行更新,只需使用nvm install 16,然后就可以了(适用于Laravel 10)。 - undefined

7

如果您使用的是Windows操作系统,请确保已删除现有的nodejs和npm。在我的情况下,我删除了C:/Program Files/nodejs,之后它就可以正常工作了。 参考链接在这里

nvm安装期间,请确保所选路径不存在。


6
这个问题在Windows上经常出现,可能是由于cmd缺少管理员权限造成的。如果你正在使用Git Bash,可以按照以下步骤操作:
  1. 进入安装目录(例如C:\Program Files\Git)
  2. 右键单击属性->兼容性。
  3. 选中复选框“以管理员身份运行”。
  4. 重新运行Git Bash,执行npm list,然后执行npm use 'version_to_be_used'。
同样适用于Cmd。

4

可能的原因之一是NVM符号链接无效。

  1. 首先,请检查环境变量中是否已设置NVM_HOMENVM_SYMLINK。如果没有,则可能是nvm安装存在问题,您可能需要重新安装。
  2. 使用资源管理器打开符号链接文件夹以检查文件夹是否有效。
    Windows中的默认符号链接路径:C:\Program Files\nodejs。在Windows资源管理器中,符号链接看起来像普通的快捷方式。
    如果您在其中看到node文件,则说明一切正常。
    如果文件夹无效,请删除符号链接。
    然后,执行nvm lsnvm use <desired node version>,此步骤将重新创建正确的符号链接。
  3. 重启CMD并测试nvm currentnode -vnpm -v

1
你的第二点帮了我大忙。谢谢! - HadidM

2

对于Windows系统:

nvm会创建从已安装的node路径(如c:\program files\node)到c:\users<你的用户名>\AppData\nvm<node版本号>的符号链接。

因此,请检查以下内容:

  1. PATH变量中是否包含了基本的node路径。
  2. 你的npm是否在c:\users<你的用户名>\AppData\nvm<node版本号>\nmp目录下,并且该路径也在PATH变量中。

2

对我来说,只有在以下操作之后它才有效:

  1. 通过.exe包重新安装nvm,并且
  2. 以一种使Windows能够正确添加所有内容到环境变量的方式重新安装节点版本
  • nvm uninstall < node版本 >
  • nvm install < node版本 >
  • nvm use < 节点版本 >
  • npm -v应显示您的npm版本

请记得以管理员身份运行所有命令提示符,以避免符号链接权限问题。


管理员模式...对我来说就是这样了。 - undefined

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接