nvm 使用不切换节点版本

Posted

技术标签:

【中文标题】nvm 使用不切换节点版本【英文标题】:nvm use does not switch node versions 【发布时间】:2018-04-11 14:00:49 【问题描述】:

在 Windows 10 机器上并使用 nvm4w 我试过:

上图:

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

我做错了什么?

【问题讨论】:

【参考方案1】:

我不得不删除位于C:\Program Files\nodejs的文件夹:

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

我怀疑在某些情况下,nvm 出于某种原因无法删除此文件夹。

【讨论】:

工作,谢谢! nvm alias default version for linux【参考方案2】:

所以我找到了解决方法。

我将C:\Program Files\nodejs重命名为C:\Program Files\nodejsx

然后运行nvm use versionNumber 工作正常。

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

【讨论】:

【参考方案3】:

nvm 基于symlinks 的基本思想工作。当用户尝试点击命令nvm install <node_version> 时,即使您已将C:\Program Files\nodejs 更改为C:\Program Files\nodejsx,也会安装输入的节点版本。

如果 nvm 未能创建新文件夹 C:\Program Files\nodejs,它将静默失败并且不会通知您。

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

【讨论】:

【参考方案4】:

我也遇到了同样的问题。

我的机器上安装了节点版本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.1 使用nvm install 12.16.1 安装 Nodejs 14.15.1 使用nvm 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

【讨论】:

这个问题已经有好几年了,所以我已经进化了? - 如果你安装 nvm through chocolatey,所有的工作都是开箱即用的......自从我开始使用 Chocolatey,我没有任何问题什么都好,升级软件也很简单,有不想升级的软件可以pin,永远不会升级?【参考方案5】:

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

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

【讨论】:

【参考方案6】:

1) 通过链接安装 NVM:https://github.com/coreybutler/nvm-windows/releases。

2) 从“C:\Users\YOUR_USERNAME\AppData\Roaming\nvm”复制 settings.txt。到“C:\Users\YOUR_USERNAME” 3) 重新启动系统以反映更改。 4)打开控制台并输入以下命令: 非虚拟机列表 5) 要安装 6.9.3 版本,请运行以下命令: 非虚拟机安装 6.9.3 6)安装完成后会在nvm中添加node版本。要检查相同类型的命令: 非虚拟机列表 7) 在命令下面切换命令版本类型命令: 非虚拟机使用 6.9.3 要验证节点版本开关,请键入命令“node -v” 8) 它会显示正在使用的节点版本。

更多详情请查看以下链接: https://www.tutespace.com/2018/11/nvm-installation-on-windows.html

如果您仍然遇到同样的问题,请告诉我们。

【讨论】:

【参考方案7】:

这恰好是迄今为止的问题,删除 nodejs 文件夹不起作用。

只需使用cmd as administrator 运行 nvm install。

因此,即使您从没有管理员权限的 cmd 下载了 nodejs,也请卸载它并以管理员身份使用 cmd 重新安装。

在尝试了 github 和 *** 的几乎所有解决方案后,这对我有用。

【讨论】:

【参考方案8】:

我遇到了同样的问题。

我的解决方案是我通过 Chocolatey(我安装它的方式)卸载了 nodejs,然后 nvm 再次工作。

检查 C:/Program Files 中的 nodejs 文件夹后,我注意到 nvm 可能通过创建指向存储不同版本 nodejs 的 nvm 文件夹的链接/快捷方式来工作。这就是“路径”和一切运作的方式。

希望对你有所帮助。

【讨论】:

【参考方案9】:

按照此步骤进行

1.删除路径中的节点和npm

寻找路径

which node

输出

/c/Users/balaji/AppData/Roaming/npm/node

which npm 

输出

/c/程序文件/node.js

2.列出版本

nvm list

3.设置节点

nvm use version

了解远程版本

nvm  list available

了解本地版本

nvm list

【讨论】:

【参考方案10】:

以上都对我没有帮助。 我可以看到符号链接已创建并且正确,但 NVM4W 仍然不会“使用”正确的版本。 我使用 NVM 安装的节点版本与我的 Windows 版本不兼容。

当您运行“nvm ls”或“nvm current”时,它会调用 GetCurrentVersion(),后者在命令行中运行“node -v”。如果该输出不是当前版本,例如您正在运行不兼容的操作系统的警告,它将无法指示当前选择的版本。这样做的方式并不明显,为什么“nvm use x”不起作用。

您可以使用环境变量绕过节点操作系统检查(据我所知,节点版本 >=14): How to set the NODE_SKIP_PLATFORM_CHECK environment variable to 1 which skips the version check 尽管如果 node 无法按预期运行,您可能需要更新 Windows 或使用较早版本的 node。

使用该设置,“nvm 使用”按预期运行。

【讨论】:

以上是关于nvm 使用不切换节点版本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 nvm 更改节点版本

纱线未安装在 nvm 版本节点版本中

使用NVM更新后,节点版本未保留

NVM:npm install -g 一直使用错误的节点版本

nvm卸载实际上并没有卸载节点版本

NPM 和 NVM 的区别