节点版本不会使用 n 更新

bkn*_*lle 6 homebrew node.js n yarnpkg

为了提供一些背景信息,我使用这篇Medium post Don\xe2\x80\x99t Use sudowith npm\xe2\x80\xa6still设置了我的机器。

\n

brew我大约一年半前安装了 Node ,安装的是 v12.18.1。我n当时也使用安装brew,但直到现在才不必更改版本。

\n

我的.zshrc文件包括以下内容:

\n
# For globally installed npm packages (without using sudo)\nexport PATH="$HOME/.npm/bin:$PATH"\n\n# Path to n (managing node versions)\nexport N_PREFIX="$HOME/.n"\nexport PATH="$PATH:$N_PREFIX/bin"\n
Run Code Online (Sandbox Code Playgroud)\n

当我安装 Node v14 时n,会发生以下情况:

\n
\xe2\x9e\x9c  ~ node -v\nv12.18.1\n\xe2\x9e\x9c  ~ n 14\n   installed : v14.15.4 to /Users/myusername/.n/bin/node\n      active : v12.18.1 at /usr/local/bin/node\n\xe2\x9e\x9c  ~ node -v\nv12.18.1\n
Run Code Online (Sandbox Code Playgroud)\n

看到版本安装成功;但是,活动版本不会更新。我注意到已安装版本的路径与活动版本明显不同(参考上面的终端输出),我怀疑这是问题所在。

\n

任何帮助将不胜感激!先感谢您。

\n
\n

附加信息:当我最初安装 Node 时,yarn尽管顶部链接的文章指出它应该可用,但它不可用,所以我n使用brew. 为了排除故障,我运行了brew uninstall n,但是输出了以下内容:

\n
Warning: The following may be n configuration files and have not been removed!\nIf desired, remove them manually with `rm -rf`:\n  /usr/local/etc/bash_completion.d\n
Run Code Online (Sandbox Code Playgroud)\n

然后我就跑了rm -rf /usr/local/etc/bash_completion.d。之后终端上没有打印任何内容。

\n

sha*_*awn 8

问题是您已node安装到两个位置,而正在安装的位置n位于PATH变量的后面。

出于兴趣,您可以运行它n doctor,它应该会解决这个问题。

您可以卸载安装到的节点副本/usr/local/bin/node,或重新排列您的PATH. 代替:

export PATH="$PATH:$N_PREFIX/bin"
Run Code Online (Sandbox Code Playgroud)

尝试:

export PATH="$N_PREFIX/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

  • 击中要害。非常感谢你,@shadowspawn!运行“n doctor”显示:“正在检查 PATH 中的 n 个安装目标优先级...在 PATH 中会在第 n 个安装的版本之前找到一个已安装的节点版本。”通过实施建议的更改并重新获取“. zshrc` 文件,一切似乎都运行良好! (2认同)