可能较旧的节点先于较新的节点出现在您的 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
(或者如果安装在其他地方则使用其他路径)。您需要添加这一行.profile
or .bashrc
在您的 HOME 中,每次登录启动新 shell 时都正确设置 PATH。
查看您的 Node 版本是否正确/usr/local/bin
run:
/usr/local/bin/node -v
Update
看看你的评论和更新的答案,我敢打赌你已经手动安装了 Node 4.2.1(不是使用brew),现在brew不会更新/usr/local/bin中的二进制文件。
我建议是手动安装它并控制版本。我将向您展示下载源代码、配置、构建并安装在版本化目录中以及更新 PATH 的命令。
根据节点下载页面当前版本是 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
or .bashrc
(The node-v6.1.0
您的 HOME 目录和.tar.gz
可以移除或保留以供以后使用)。
在此刻which node
应该返回/opt/node/bin/node
并且版本是您想要的版本(本例中为 6.1.0)。如果您想测试另一个版本,请将其安装在 /opt/node-vXXX 下的另一个目录中并更新符号链接。您不必更新 PATH,只需更新符号链接。
这比使用brew需要更多的工作,但是您可以完全控制安装的内容和位置。我喜欢这个解决方案的一点是,您的版本永远不会混合或混淆,您可以随时安装/删除版本并快速将任何版本设置为默认版本。