为了提供一些上下文,我使用这篇Medium文章设置了我的机器,《不要将sudo
与npm
一起使用……仍然》。
大约一年半前,我使用brew
安装了Node,它安装了v12.18.1。我当时也使用brew
安装了n
,但到现在为止从未更改过版本。
我的.zshrc
文件包括以下内容:
# For globally installed npm packages (without using sudo)
export PATH="$HOME/.npm/bin:$PATH"
# Path to n (managing node versions)
export N_PREFIX="$HOME/.n"
export PATH="$PATH:$N_PREFIX/bin"
当我使用n
安装Node v14时,会发生以下情况:
➜ ~ node -v
v12.18.1
➜ ~ n 14
installed : v14.15.4 to /Users/myusername/.n/bin/node
active : v12.18.1 at /usr/local/bin/node
➜ ~ node -v
v12.18.1
我看到该版本已成功安装;但是,活动版本不会更新。我注意到安装版本的路径明显不同于活动版本(上面的参考终端输出(,我怀疑这就是问题所在。
如有任何帮助,我们将不胜感激!提前谢谢
附加信息:当我最初安装Node时,yarn
不可用,尽管顶部链接的文章指出应该是这样,所以我使用brew
安装了n
。为了进行故障排除,我运行了brew uninstall n
,但输出了以下内容:
Warning: The following may be n configuration files and have not been removed!
If desired, remove them manually with `rm -rf`:
/usr/local/etc/bash_completion.d
然后我运行了rm -rf /usr/local/etc/bash_completion.d
。之后没有打印到终端。
问题是您将node
安装到两个位置,而n
正在安装的位置稍后在PATH
变量中。
出于兴趣,您可以运行n doctor
,它应该会发现这个问题。
您可以卸载安装到/usr/local/bin/node
的节点的副本,也可以重新排列PATH
。代替:
export PATH="$PATH:$N_PREFIX/bin"
尝试:
export PATH="$N_PREFIX/bin:$PATH"