可能较旧的节点在较新的节点之前位于您的 PATH 中。
你可以在你的 shell 中运行:
which node
查看默认运行的 Node 二进制文件在哪里(在您的情况下为 v4.2.1)。你可以通过运行查看你的 PATH 是什么:
echo $PATH
它会显示如下内容:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
这些是在您键入“node”或任何其他命令时按顺序搜索的目录。如果您的 PATH 没有安装新节点的目录,或者如果它位于安装旧节点的目录之后,则新节点将不会运行。解决问题可能就像运行一样简单:
PATH="/usr/local/bin:$PATH"
如果您的新节点安装在/usr/local/bin 中(或者如果安装在其他位置,则使用其他路径)。您需要在 HOME 中的 .profile 或 .bashrc 中添加此行,以便在每次登录时正确设置 PATH 启动新的 shell。
要查看/usr/local/bin 中的节点版本是否正确,请运行:
/usr/local/bin/node -v
更新
查看您的评论和更新的答案,我敢打赌,您已经手动安装了 Node 4.2.1(不是使用 brew),现在 brew 不会更新 /usr/local/bin 中的二进制文件。
我建议手动安装它并控制版本。我将向您展示下载源代码、配置、构建和安装在版本控制目录中以及更新 PATH 的命令。
根据Node download page,当前版本是 v6.1.0,但如果您特别想要 5.5.0 或任何其他版本(最新的 5.x 是 v5.9.1),那么只需将以下命令更改为您的版本想。 (所有版本都列出了here。)
# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node
最后将PATH="/opt/node/bin:$PATH" 添加到您的.profile 或.bashrc(您的HOME 中的node-v6.1.0 目录和.tar.gz 可以删除或保留以供以后使用)。
此时which node 应该返回/opt/node/bin/node 并且版本是您想要的版本(本例中为6.1.0)。如果要测试另一个版本,请将其安装在 /opt/node-vXXX 下的另一个目录中并更新符号链接。您不必更新 PATH,只需更新符号链接。
这比使用 brew 需要更多的工作,但您可以完全控制安装的内容和位置。我喜欢这个解决方案的一点是,您的版本永远不会混淆或混淆,您可以随时安装/删除版本并快速将任何版本设置为默认版本。