我正在尝试使用 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
我不明白为什么它不会改变。请让我知道我做错了什么。
添加一些关于我调试此问题的经验的注释。
首先,我从 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 上完成的,您的输出可能会根据您的系统而有所不同。
请确保当您在命令提示符下输入
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
首先检查环境变量。它可能映射到 [电子邮件受保护]。 您需要先删除环境变量。
如果您也使用 volta。 Volta 可能会优先。
使用
which -a node
进行验证。
如果是这种情况,请使用
volta pin node@version
进行切换。
移动
nvm
外壳配置底部的 .zshrc
源线。这确保了 nvm 的 node
路径比 Homebrew 的 node
路径具有更高的优先级。
首先检查本地系统上安装的 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