使用nvm不会切换节点版本

bal*_*dre 5 nvm

在Windows 10计算机上并使用nvm4w,我尝试了以下操作:

从上图:

  • node --version 检查当前版本
  • nvm list 列出已安装的版本
  • nvm use 8.8.1 所以我们从6切换到8
  • nvm on 启用它
  • node --version 重新检查节点版本

我究竟做错了什么?

Shu*_*uvo 23

所以我找到了一个解决方法。

我改名C:\Program Files\nodejsC:\Program Files\nodejsx

然后运行nvm use versionNumber正常。

似乎 nvm 无法将其更改为符号链接并且静默失败。

  • 重命名意味着 nvm 将在 C:\Program Files\nodejs 中创建一个新文件夹。为了避免混淆,请删除该文件夹,因为不再需要它。 (2认同)

小智 20

我也面临着同样的问题。

我的机器上安装了节点版本14.15.1并且必须使用12.16.1

我使用的是Windows 10

通过 nvm安装后,12.16.1它仅显示此版本,nvm list并且不显示当前使用的版本。

即使之后node use 12.16.1仍然node -v显示14.15.1

解决此问题的步骤:

  • 从控制面板卸载Nodejs。
  • 使用以下命令安装Nodejs 12.16.1nvm install 12.16.1
  • 使用(或卸载的版本)安装Nodejs 14.15.1nvm install 14.15.1
  • 切换版本使用nvm use 12.16.1 (相应更改版本号)

结果:

C:\>nvm list

    14.15.1
  * 12.16.1 (Currently using 64-bit executable)
    12.3.1

C:\>node -v
v12.16.1
Run Code Online (Sandbox Code Playgroud)


Joh*_*n G 13

对我来说,问题(在 Linux 上)是我用 Homebrew 安装了 Node,它阻止了 nvm 的使用。在 nvm 设置正确的符号链接之前,我必须

brew uninstall node
Run Code Online (Sandbox Code Playgroud)

我首先通过运行发现这种情况

which node
Run Code Online (Sandbox Code Playgroud)

这告诉我节点正在从 Homebrew 进行符号链接

/home/linuxbrew/.linuxbrew/bin/node
Run Code Online (Sandbox Code Playgroud)

而不是像我们想要的那样,来自 nvm

/home/john/.nvm/versions...
Run Code Online (Sandbox Code Playgroud)

一旦“哪个节点”报告它正在使用 nvm 的节点,事情就为我解决了。


小智 8

您的问题可以通过以管理员权限重新安装 nvm 版本或仅重命名文件夹 C:\Program Files\nodejs 来解决

您可以在这里找到更多信息:https://github.com/coreybutler/nvm-windows/issues/67


Dus*_*ler 5

我必须删除位于的文件夹C:\Program Files\nodejs

在此处输入图片说明

然后nvm use {version}再次运行,以使用正确的节点版本重新填充此文件夹。

我怀疑在某些情况下,nvm由于某种原因在删除此文件夹时遇到问题。

  • Linux 的 `nvm 别名默认 {版本}` (6认同)
  • 情况确实如此,我只是以**管理员身份运行 powershell,然后重用 nvm 并且它起作用了! (4认同)
  • 在 Mac 上,您可以使用“which node”命令来查找和删除不是来自 nvm 的节点 (4认同)

Sac*_*hra 5

nvm 基于symlinks. 当用户试图敲命令nvm install <node_version>是越来越安装节点的输入版本,即使你已经改变了C:\Program Files\nodejsC:\Program Files\nodejsx

如果 nvm 无法创建新文件夹C:\Program Files\nodejs,它将以静默方式失败并且您不会收到通知。

如果路径存在,您必须手动检查路径C:\Program Files\nodejs是否存在,然后删除文件夹并更改环境变量中的节点路径。这将帮助您找出 npm 命令的版本。


小智 5

我尝试使用 nvm 切换 Node 版本,但它没有反映,所以我删除了 c:/program files/nodejs 中的文件夹 在此输入图像描述
删除文件夹后,按照相同的步骤使用 nvm 切换 npm 版本,它将切换节点版本。