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 有效。
我在 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 ..." 没有生效的情况所做的工作。
- Delete/remove/uninstall "C:\Program Files\nodejs" 目录中的节点版本。到根本没有 "nodejs" 目录的地步。
- 删除nvm的存在(C:\Users\xxx\AppData\Roaming\nvm),基本上,手动删除nvm目录。
- 下载您想要的 nvm 版本 (https://github.com/coreybutler/nvm-windows/releases)
- 打开 CMD 提示符(运行 以管理员身份),并从此 CMD 命令提示符中安装下载的 nvm 版本 nvm-setup.exe。
- 在管理员级别的命令提示符下,运行 "nvm install 7.2.1",或您要安装的任何节点版本。可能您将安装多个版本,因此请根据需要重复。
- 现在执行通常的 "nvm use ..."、"nvm list" 等...
我不知道这是否是最好的方法,但它对我有用...
对我来说,
nvm list
然后我从 nvm 中删除 v8.9.4 文件夹。
之后:
nvm list
然后,我把v8.9.4移回去。
- 确保删除所有旧的 nodejs。
- 安装 nvm
- 安装节点
- 打开新的终端提示符
- 运行 'nvm on'
- 运行 'nvm list'
- 运行 'node --version'
我安装了 nvm-windows 以便让多个版本的节点工作。安装后我得到了大多数人抱怨的错误,即无法找到文件 settings.txt。让 nvm-win 工作需要两件事,安装程序只做这两件事中的第一件事。因此,安装后只需检查第 1 点和第 2 点是否已涵盖,就可以了。据我所知,没有必要卸载以前版本的节点。
- 将系统路径变量更新为安装 nvm 的目录以及 nvm.exe 所在的目录。前任。 c:\nvm
- 在系统变量中添加一个新变量NVM_HOME。
- 验证 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
时,我们应该能够毫不费力地切换到所需的节点版本。
如何解决?
- 使用 uninstall/remove 程序从控制面板卸载 nodejs 并删除
C:\Program Files\nodejs
如果存在
- 检查(一次)如果环境变量中的
NVM_SYMLINK
在 运行ning nvm use x.x.x
时自动更改
- 如果没有自动更改,则为 windows 卸载并重新安装 nvm(删除任何其他节点)
注意:我可以通过将用户环境变量 NVM_SYMLINK
更改为 C:\Users\Charlie\AppData\Roaming\nvm\vx.x.x
来切换到所需的节点版本,而无需卸载节点。
在我的工作中,我们被分配了一个用户帐户和一个管理帐户,用于为我们的机器安装和管理软件。 NVM 安装在这个管理员帐户下,因此,none 以上答案对我有用。
我必须手动将 %NVM_HOME% 和 %NVM_SYMLINK% 添加到我的用户帐户路径,然后才能 node --version
显示任何内容。
因此,如果您必须处理一个普通帐户和一个管理帐户,那么以下方法适合您:
- 安装 NVM(必须使用您的管理员帐户安装)
- 手动添加 %NVM_HOME% 和 %NVM_SYMLINK% 到您的用户帐户路径(如果您检查管理员帐户的路径,您会看到这两个是在 NVM 安装期间添加的)
nvm install latest
nvm on
nvm use x.x.x
- 重新启动计算机以便您的 IDE 识别更改
- $利润$
我遇到了同样的问题。我使用 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 变量来解决这个问题。
步骤如下:
安装nvm之前,删除以下路径:
C:\Program Files\nodejs
C:\Program Files (x86)\nodejs
安装nvm后执行:
nvm 使用
使用命令后可以发现快捷方式'C:\Program Files\nodejs'是由
nvm 在此路径中。
我发现的问题是路径 'C:\Program Files\nodejs' 没有在 windows 系统环境 PATH 变量中设置。
我将 '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'
您需要管理员权限才能安装节点。由于您在知道解决方案之前遇到了问题,请按照以下步骤操作。
- 记下所有安装的节点版本(可选)
- "C:\Program Files\nodejs"(可选 但推荐)
- 删除“C:\Users\xxx\AppData\Roaming\nvm”
- 重新安装 nvm
- 运行 以管理员身份运行命令
- 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
结果中没有标有星号。
我刚刚安装了 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 有效。
我在 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 ..." 没有生效的情况所做的工作。
- Delete/remove/uninstall "C:\Program Files\nodejs" 目录中的节点版本。到根本没有 "nodejs" 目录的地步。
- 删除nvm的存在(C:\Users\xxx\AppData\Roaming\nvm),基本上,手动删除nvm目录。
- 下载您想要的 nvm 版本 (https://github.com/coreybutler/nvm-windows/releases)
- 打开 CMD 提示符(运行 以管理员身份),并从此 CMD 命令提示符中安装下载的 nvm 版本 nvm-setup.exe。
- 在管理员级别的命令提示符下,运行 "nvm install 7.2.1",或您要安装的任何节点版本。可能您将安装多个版本,因此请根据需要重复。
- 现在执行通常的 "nvm use ..."、"nvm list" 等...
我不知道这是否是最好的方法,但它对我有用...
对我来说,
nvm list
然后我从 nvm 中删除 v8.9.4 文件夹。
之后:
nvm list
然后,我把v8.9.4移回去。
- 确保删除所有旧的 nodejs。
- 安装 nvm
- 安装节点
- 打开新的终端提示符
- 运行 'nvm on'
- 运行 'nvm list'
- 运行 'node --version'
我安装了 nvm-windows 以便让多个版本的节点工作。安装后我得到了大多数人抱怨的错误,即无法找到文件 settings.txt。让 nvm-win 工作需要两件事,安装程序只做这两件事中的第一件事。因此,安装后只需检查第 1 点和第 2 点是否已涵盖,就可以了。据我所知,没有必要卸载以前版本的节点。
- 将系统路径变量更新为安装 nvm 的目录以及 nvm.exe 所在的目录。前任。 c:\nvm
- 在系统变量中添加一个新变量NVM_HOME。
- 验证 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
时,我们应该能够毫不费力地切换到所需的节点版本。
如何解决?
- 使用 uninstall/remove 程序从控制面板卸载 nodejs 并删除
C:\Program Files\nodejs
如果存在 - 检查(一次)如果环境变量中的
NVM_SYMLINK
在 运行ningnvm use x.x.x
时自动更改
- 如果没有自动更改,则为 windows 卸载并重新安装 nvm(删除任何其他节点)
注意:我可以通过将用户环境变量 NVM_SYMLINK
更改为 C:\Users\Charlie\AppData\Roaming\nvm\vx.x.x
来切换到所需的节点版本,而无需卸载节点。
在我的工作中,我们被分配了一个用户帐户和一个管理帐户,用于为我们的机器安装和管理软件。 NVM 安装在这个管理员帐户下,因此,none 以上答案对我有用。
我必须手动将 %NVM_HOME% 和 %NVM_SYMLINK% 添加到我的用户帐户路径,然后才能 node --version
显示任何内容。
因此,如果您必须处理一个普通帐户和一个管理帐户,那么以下方法适合您:
- 安装 NVM(必须使用您的管理员帐户安装)
- 手动添加 %NVM_HOME% 和 %NVM_SYMLINK% 到您的用户帐户路径(如果您检查管理员帐户的路径,您会看到这两个是在 NVM 安装期间添加的)
nvm install latest
nvm on
nvm use x.x.x
- 重新启动计算机以便您的 IDE 识别更改
- $利润$
我遇到了同样的问题。我使用 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 变量来解决这个问题。
步骤如下:
安装nvm之前,删除以下路径:
C:\Program Files\nodejs C:\Program Files (x86)\nodejs
安装nvm后执行: nvm 使用
使用命令后可以发现快捷方式'C:\Program Files\nodejs'是由 nvm 在此路径中。
我发现的问题是路径 'C:\Program Files\nodejs' 没有在 windows 系统环境 PATH 变量中设置。
我将 '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'
您需要管理员权限才能安装节点。由于您在知道解决方案之前遇到了问题,请按照以下步骤操作。
- 记下所有安装的节点版本(可选)
- "C:\Program Files\nodejs"(可选 但推荐)
- 删除“C:\Users\xxx\AppData\Roaming\nvm”
- 重新安装 nvm
- 运行 以管理员身份运行命令
- 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
结果中没有标有星号。