在 Windows 上安装多个版本的 Node.js,而不使用 NVM for Windows

Posted

技术标签:

【中文标题】在 Windows 上安装多个版本的 Node.js,而不使用 NVM for Windows【英文标题】:Install multiple versions of Node.js on Windows without using NVM for Windows 【发布时间】:2021-12-23 12:02:42 【问题描述】:

我找不到任何关于如何在同一台计算机上安装两个版本的 Node.js(例如 v10 和 v14)的问题/答案不使用 NVM。我不能使用 windows-nvm,因为它需要管理员权限,而且我正在以标准用户身份在公司笔记本电脑上工作。

我需要能够安装多个不同版本的 Node.js,因为同一公司下的不同项目需要使用不同版本的 Node.js。

是否只有卸载已安装版本并每次安装新版本的唯一方法?有什么办法可以在 C:\Program Files\node10 下拥有 v10,在 C:\Program Files\node14 下拥有 v14?

需要明确的是,管理员愿意授予我特定权限或安装任何所需的软件以使其正常工作。我们曾尝试使用名为 RunAsTool 的工具让我以管理员身份运行 NVM,但由于其限制,这不起作用。

另一种选择是授予我对 NVM 运行所需的任何文件和目录的管理员权限,但我找不到这些文件/文件夹的列表。

第三种选择是简单地安装两个不同的版本,但是当你安装一个新版本时,以前的版本会被删除,即使它安装在一个不寻常的路径下,比如 C:\Program Files\node16强>。

【问题讨论】:

【参考方案1】:

我认为没有简单的方法可以做到这一点。一般来说,要让节点在 Windows 上运行,您需要两件事:其中包含可执行文件的 nodejs 文件夹,默认情况下为 c:\Program Files\nodejs,以及在任何其他节点路径之前位于系统路径上的路径。

很遗憾,写入 c:\Program Files 和更改系统路径都需要管理员权限。

但是,有一个有点笨拙的解决方法。总体思路是将 nodejs 文件夹放在您具有写入权限的某个位置,将系统路径指向它,它应该可以运行。然后,您可以通过替换文件夹来切换没有管理员权限的版本。为此:

使用管理员,安装您要使用的第一个版本。将 c:\Program Files\nodejs 文件夹复制到新安装时不会被删除的位置:如果是版本 10,请说 c:\nodejsbackups\v10\nodejs。 安装您要使用的第二个版本,并将 nodejs 文件复制到同一位置,例如 c:\nodejsbackups\v14\nodejs。 还将它复制到您将运行它的位置以及您具有写入权限的位置,如果您在 c: 驱动器上具有写入权限,请说 c:\nodejs,或者如果没有,请说您的用户配置文件。 仍然具有管理员权限,edit the system Path environment variable(不是用户路径)。找到 c:\Program Files\nodejs 的条目并将其删除。为 c:\nodejs 添加一个条目。或者只是编辑它。 我发现要让 Visual Studio 节点应用程序正常工作,我还必须使用控制面板/程序和功能卸载原始节点。

现在启动命令提示符并执行node --versionnpm --version,您应该会看到第二个版本正在运行。

要切换版本,无需管理员删除 c:\nodejs,然后将第一个版本从 c:\nodejsbackups\v10\nodejs 复制到那里。 重新启动命令提示符,发出相同的命令,您应该会看到第一个版本正在运行。

这似乎适用于一些非常有限的测试,但我认为您需要测试它是否适用于您的用例。可能有像 Visual Studio 这样的程序假定节点位于 c:\Program Files 而不使用路径。最后还是请求管理员权限比较好。

【讨论】:

我请求管理员权限。它有效!

以上是关于在 Windows 上安装多个版本的 Node.js,而不使用 NVM for Windows的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上使用多个版本的 Julia

Mac - 如何在Mac上安装多个版本openjdk并有效管理

是否可以在 Windows 上运行多个 CUDA 版本?

在 Mac OS X 上安装多个版本的 Qt

如何安装多个版本的perl

在同一系统上安装多个 postgreSQL