在 Mac 上“nvm use”后节点版本未更新

问题描述 投票:0回答:6

我正在尝试使用 nvm 将本地节点版本从 8.9.0 更新到 8.10.0。但它没有得到反映。这是我尝试过的:

node -v

-> v8.9.0

nvm use 8.10.0

-> Now using node v8.10.0 (npm v5.5.1)

node -v

-> v8.9.0

我不明白为什么它不会改变。请让我知道我做错了什么。

node.js nvm
6个回答
19
投票

添加一些关于我调试此问题的经验的注释。

首先,我从 Jonathan

which -a node
提供的命令开始,得到了与 op:

相同的输出
/usr/local/bin/node
/Users/<my-user>/.nvm/versions/node/v8.10.0/bin/node

继续看 Jonathan 的下一条评论:您也通过 Homebrew 安装了 Node 吗?,我尝试通过

brew uninstall node
卸载 Node,并收到错误消息,表示无法卸载 Node,因为有另一个程序依赖于它。
yarn

然后意识到

brew
安装了自己版本的node,因为我通过
yarn
安装了
brew
,这覆盖了我想通过nvm使用的node版本。

卸载brew版本的

yarn
+
node
解决了我的问题。 我仍然需要yarn,现在我必须为nvm管理的每个节点版本全局安装
yarn

不方便,我同意。但为每个项目维护两万个版本的节点也是如此,所以在我看来并没有太大不同。

所有这些都是在 M1 MacOS 上完成的,您的输出可能会根据您的系统而有所不同。


2
投票

请确保当您在命令提示符下输入

arch
时,输出为
i386

这是使用

Rosetta
实现的。

终端上的以下命令序列有效:-

nvm install 8.10.0
nvm install --lts
nvm ls
brew upgrade
arch -arm64 brew install n
n

现在使用键盘中的向上或向下箭头键选择节点版本 8.10.0,然后使用

command+q

从命令提示符退出

请勿尝试

brew uninstall --ignore-dependencies node


0
投票

首先检查环境变量。它可能映射到 [电子邮件受保护]。 您需要先删除环境变量。


0
投票

如果您也使用 volta。 Volta 可能会优先。

使用

which -a node
进行验证。

如果是这种情况,请使用

volta pin node@version
进行切换。


0
投票

移动

nvm
外壳配置底部的
.zshrc
源线。这确保了 nvm 的
node
路径比 Homebrew 的
node
路径具有更高的优先级。


-2
投票

首先检查本地系统上安装的 nvm 版本。转到命令提示符并输入“nvm list”如果您在列表中没有看到版本 8.10.0,请使用命令进行安装:“nvm install 8.10.0”,然后尝试“nvm use 8.10.0”。

供参考:http://www.tutorial-points.com/2018/11/nvm-installation-on-windows.html

© www.soinside.com 2019 - 2024. All rights reserved.