我试图使用nvm将本地node版本从8.9.0更新到8.10.0,但没有反映出来。这是我的操作:
node -v
-> v8.9.0
nvm use 8.10.0
-> 现在使用的是node v8.10.0(npm v5.5.1)
node -v
-> v8.9.0
我不明白为什么它不会改变。请告诉我我做错了什么。
关于我在解决此问题时的经验,我添加了一些注释。
首先,我使用Jonathan提供的命令which -a node
开始,并获得了与操作者相同的输出。
/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,因为我通过brew
安装了yarn
,它正在覆盖我想要通过nvm使用的node版本。
卸载brew的yarn
+node
版本解决了我的问题。我仍然需要yarn,现在必须为nvm管理的每个node版本全局安装yarn
。
不方便,我同意。但对我来说与维护每个项目的二万个node版本并没有太大区别。
所有这些都是在M1 MacOS上完成的,您的输出可能因系统而异。
brew uninstall --ignore-dependencies node
。 - FooBarbrew uninstall node
(然后让 nvm 管理它)。 - Shaun Sakerbrew uninstall node
导致错误("no such keg..."),因为我安装了特定版本的node,所以我必须执行brew uninstall node@18
。 - Prusdrumarch
时,输出为i386
。Rosetta
实现。nvm install 8.10.0
nvm install --lts
nvm ls
brew upgrade
arch -arm64 brew install n
n
command+q
退出命令提示符。请不要尝试使用brew uninstall --ignore-dependencies node
。首先检查您的环境变量。它可能映射到node@8.9.0。 您需要先删除环境变量。
如果您也在使用Volta,那么Volta可能会优先。
使用which -a node
进行验证。
如果是这种情况,请使用volta pin node@version
进行切换。
nvm
的引用行移动到你的 .zshrc
shell 配置文件的底部。这样可以确保 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
nvm
只管理其中一个。which -a node
命令会告诉你什么? - Jonathan Lonowski/usr/local/bin/node
,/Users/prabhjotrai/.nvm/versions/node/v8.10.0/bin/node
,/usr/local/bin/node
- psrbrew uninstall node
将卸载位于/usr/local/bin/node
的Node实例,但不会影响由nvm管理的实例。否则,你可以尝试修改你的PATH
变量(或在打开终端之前可能更改它的任何shell配置),以使nvm路径具有优先级。 - Jonathan Lonowski