Windows 的 NVM 不工作?

NVM for Windows not working?

我刚刚安装了 NVM for Windows,但似乎没有用:

有什么想法吗?

最有可能发生的事情是系统 %PATH% 正在命令提示符实例之外更新。只有打开新的命令提示符才会获取这些新的外部更改。

使用 nvm 安装最新节点后出现同样的问题。 node 命令在控制台中无法识别。关闭和打开命令 windows 无效。检查 nvm arch 响应是

    C:\WINDOWS\system32> nvm arch
    System Default: 64-bit.
    Currently Configured: -bit.

必须使用 arch 设置再次设置节点

    C:\WINDOWS\system32> nvm use 7.4.0 x64
    Now using node v7.4.0 (64-bit)
    C:\WINDOWS\system32> nvm arch
    System Default: 64-bit.
    Currently Configured: 64-bit.
    C:\WINDOWS\system32> nvm list

    * 7.4.0 (Currently using 64-bit executable)
      4.5.0
    C:\WINDOWS\system32> node -v
    v7.4.0

在我的例子中,我使用的是 git bash -- 切换到 cmd.exe 有效。

更多建议位于:https://github.com/coreybutler/nvm-windows/issues/58

我在 Windows 10 中遇到了同样的问题,我的解决方案是在 https://github.com/coreybutler/nvm-windows/issues/191

中的@pleverett 回答中

症状:无位架构,无默认版本

C:\WINDOWS\system32> nvm arch
System Default: 64-bit.
Currently Configured: -bit.

C:\WINDOWS\system32> nvm list
8.9.4
6.13.0

解决方法: 卸载 node 后,确保原来安装 node 的目录已经被删除,而不是空的。对于 Windows 7 ad 10,64 位,默认值为 "C:\Program Files\nodejs"。

如果 "nodejs" 目录仍然存在,那么 "nvm use" 命令不能使符号 link 成为 nvm 控制下的节点版本。

我遇到了同样的问题,直到我手动删除了 "nodejs" 目录。

首先检查您的实际 "C:\Program Files\nodejs" 目录。在我们决定(或被告知)安装 nvm 之前,我们大多数人已经有一个来自先前安装的 "nodejs" 目录。

最后,这个 "C:\Program Files\nodejs" 目录实际上是 nvm 管理它安装的版本的快捷方式(参见 C:\Users\xxx\AppData\Roaming\nvm)。看起来 nvm 只是简单地切换快捷方式,当我们调用 "nvm use ...".

好的,这就是我为解决 "nvm use ..." 没有生效的情况所做的工作。

  1. Delete/remove/uninstall "C:\Program Files\nodejs" 目录中的节点版本。到根本没有 "nodejs" 目录的地步。
  2. 删除nvm的存在(C:\Users\xxx\AppData\Roaming\nvm),基本上,手动删除nvm目录。
  3. 下载您想要的 nvm 版本 (https://github.com/coreybutler/nvm-windows/releases)
  4. 打开 CMD 提示符(运行 以管理员身份),并从此 CMD 命令提示符中安装下载的 nvm 版本 nvm-setup.exe。
  5. 在管理员级别的命令提示符下,运行 "nvm install 7.2.1",或您要安装的任何节点版本。可能您将安装多个版本,因此请根据需要重复。
  6. 现在执行通常的 "nvm use ..."、"nvm list" 等...

我不知道这是否是最好的方法,但它对我有用...

对我来说,

nvm list

然后我从 nvm 中删除 v8.9.4 文件夹。

之后:

nvm list

然后,我把v8.9.4移回去。

  1. 确保删除所有旧的 nodejs。
  2. 安装 nvm
  3. 安装节点
  4. 打开新的终端提示符
  5. 运行 'nvm on'
  6. 运行 'nvm list'
  7. 运行 'node --version'

我安装了 nvm-windows 以便让多个版本的节点工作。安装后我得到了大多数人抱怨的错误,即无法找到文件 settings.txt。让 nvm-win 工作需要两件事,安装程序只做这两件事中的第一件事。因此,安装后只需检查第 1 点和第 2 点是否已涵盖,就可以了。据我所知,没有必要卸载以前版本的节点。

  1. 将系统路径变量更新为安装 nvm 的目录以及 nvm.exe 所在的目录。前任。 c:\nvm
  2. 在系统变量中添加一个新变量NVM_HOME。
  3. 验证 1 和 2 后打开一个新命令 window。

版本切换问题2

在版本之间切换会显示成功消息,但它实际上不会正常工作,除非您手动更新 windows 系统路径变量以指向您安装目标版本的位置,例如 C:\Users\adamm>nvm 列表

10.15.1

* 6.4.0(当前使用 64 位可执行文件) 所以它似乎可以工作,但是如果您键入 node -v 它将显示路径变量中当前的版本,直到您编辑路径变量以使用 6.4.0

为什么 windows 的节点版本没有随着 nvm 而改变,即使 nvm 打开了?

如果已经安装了nodejs,安装nvm for windows时创建的环境变量NVM_SYMLINK将指向C:\Program Files\nodejs(默认)

预期的行为是什么?

当我们 运行 nvm on 然后 nvm use x.x.x 时,我们应该能够毫不费力地切换到所需的节点版本。

如何解决?

  1. 使用 uninstall/remove 程序从控制面板卸载 nodejs 并删除 C:\Program Files\nodejs 如果存在
  2. 检查(一次)如果环境变量中的 NVM_SYMLINK 在 运行ning nvm use x.x.x
  3. 时自动更改
  4. 如果没有自动更改,则为 windows 卸载并重新安装 nvm(删除任何其他节点)

注意:我可以通过将用户环境变量 NVM_SYMLINK 更改为 C:\Users\Charlie\AppData\Roaming\nvm\vx.x.x 来切换到所需的节点版本,而无需卸载节点。

在我的工作中,我们被分配了一个用户帐户和一个管理帐户,用于为我们的机器安装和管理软件。 NVM 安装在这个管理员帐户下,因此,none 以上答案对我有用。

我必须手动将 %NVM_HOME% 和 %NVM_SYMLINK% 添加到我的用户帐户路径,然后才能 node --version 显示任何内容。

因此,如果您必须处理一个普通帐户和一个管理帐户,那么以下方法适合您:

  1. 安装 NVM(必须使用您的管理员帐户安装)
  2. 手动添加 %NVM_HOME% 和 %NVM_SYMLINK% 到您的用户帐户路径(如果您检查管理员帐户的路径,您会看到这两个是在 NVM 安装期间添加的)
  3. nvm install latest
  4. nvm on
  5. nvm use x.x.x
  6. 重新启动计算机以便您的 IDE 识别更改
  7. $利润$

我遇到了同样的问题。我使用 nvm 安装节点,但系统无法识别 'node' 和 'npm'。

所以,我所做的 是我没有删除任何文件夹或任何东西我只是 运行 作为管理员的命令提示符并安装了 nvm 'desired-version' 一切开始正常工作。

"C:\Program Files\nodejs" 重命名为 "C:\Program Files\nodejsx"

nvm use x.x.x

这对我有用。也许它对你也有用。

对我来说,问题是我在下载时遇到问题,我不得不 download the zip file manually 并将其内容放入 nvm 文件夹 C:\Users\xxx\AppData\Roaming\nvm

尝试nvm run node --version


您还可以获得可执行文件的安装路径:

nvm which 5.0

我不得不在 Windows 的系统环境变量中手动设置 PATH 变量来解决这个问题。

步骤如下:

  1. 安装nvm之前,删除以下路径:

    C:\Program Files\nodejs C:\Program Files (x86)\nodejs

  2. 安装nvm后执行: nvm 使用

  3. 使用命令后可以发现快捷方式'C:\Program Files\nodejs'是由 nvm 在此路径中。

  4. 我发现的问题是路径 'C:\Program Files\nodejs' 没有在 windows 系统环境 PATH 变量中设置。

  5. 我将 'C:\Program Files\nodejs' 附加到 %PATH% 变量以解决此问题。

为我解决的问题:梳理您的 PATH 变量。我有多个指向不同节点版本的链接,在我清理所有这些链接后它工作得很好,保留了 NVM 的变量。

如果执行 where node 返回多条路径,这可能是您的问题。

我必须以管理员权限打开安装程序。 然后我打开命令行就可以正常安装和使用nvm了

nvm install 10.0.0
nvm use 10.0.0
node --version
// version 10 is used.

这对我来说很好:

In the C:\Program Files\ folder use cmd to run mklink /D /J nodejs C:\Users\[user]\AppData\Roaming\nvm[node version]

请注意在管理员模式下cmd 运行。

这里有详细信息:https://github.com/coreybutler/nvm-windows/issues/321#issuecomment-407876718

对我来说,问题是我使用的是 nosetup 方式并在我的用户下载文件夹中下载了 zip。当我切换到设置安装程序时,它对我有用。

对我来说,设置环境路径变量也没有用。最后我找到了原因,它是不兼容的节点版本,一旦我将我的节点从 14 降级到我的前端应用程序中使用的版本,即 v8.11.3,它对我有用。

对我来说,是我在非管理员 cmd 上使用 nvm 安装了节点。 运行 cmd 作为管理员为我工作。

打开一个具有管理员权限的新命令,然后运行这个命令。

run 'nvm on'

您需要管理员权限才能安装节点。由于您在知道解决方案之前遇到了问题,请按照以下步骤操作。

  1. 记下所有安装的节点版本(可选)
  2. "C:\Program Files\nodejs"(可选推荐
  3. 删除“C:\Users\xxx\AppData\Roaming\nvm”
  4. 重新安装 nvm
  5. 运行 以管理员身份运行命令
  6. nvm 安装x.x.x

我有同样的问题。 C:\Program Files\nodejs 快捷方式文件夹存在但未指向任何地方。

I simply deleted the C:\Program Files\nodejs symlink and executed the below command nvm use 0.10.36

这创建了新的 C:\Program Files\nodejs 符号链接并且它工作正常。

除了此处描述的所有其他解决方案之外,nvm 还存在另一个问题。 Nvm 在 Node.js 的版本之间切换。 Node.js 构建是从 Node.js 存储库中获取的。

如果您可以在某些版本之间切换,但不是全部,特别是您不能切换到刚刚抓取的版本,那么这个答案适合您。

出现这种情况是因为 Node.js 重建旧版本。例如,有一个构建版本 10.14.1,您可以从他们的存储库中获取,然后 nvm 获取。但这不是过去的构建。 Node.js 过于频繁地重建旧版本。

不幸的是,他们不关心向后兼容性。这意味着如果 Node.js 不支持您的操作系统,不仅不会支持最新版本。您的系统的所有旧版本也将被破坏。

目前,Node.js 支持 Windows 10+。这意味着所有旧的 Node.js 包都以某种方式重建,这会破坏它们 Windows 8.x 和 Windows 7.

令人惊讶的是,没有地方可以获取旧的工作版本。一旦他们重建旧版本,就会破坏向后兼容性。

目前还没有解决办法。您唯一可以做的就是在您的系统支持时获取版本。例如现在,您可以获取 Windows 10 的版本,因为当他们宣布 Windows 11 是最低要求时,所有 Node.js 构建将在 Windows 10 上中断。

从 nvm 的角度来看,您可以在安装过程中看到任何类型的错误。在切换期间,可见的结果是您无法在版本之间切换。您选择的版本不是当前版本,并且在 npm list 结果中没有标有星号。