在 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 --version
和npm --version
,您应该会看到第二个版本正在运行。
要切换版本,无需管理员删除 c:\nodejs,然后将第一个版本从 c:\nodejsbackups\v10\nodejs 复制到那里。 重新启动命令提示符,发出相同的命令,您应该会看到第一个版本正在运行。
这似乎适用于一些非常有限的测试,但我认为您需要测试它是否适用于您的用例。可能有像 Visual Studio 这样的程序假定节点位于 c:\Program Files 而不使用路径。最后还是请求管理员权限比较好。
【讨论】:
我请求管理员权限。它有效!以上是关于在 Windows 上安装多个版本的 Node.js,而不使用 NVM for Windows的主要内容,如果未能解决你的问题,请参考以下文章