答案 0 :(得分:0)
可能旧版节点在新节点之前位于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),那么只需将下面的命令更改为verson你要的那个。 (列出所有版本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
(您家中的node-v6.1.0
目录中,.tar.gz
可以删除或保留供以后使用)。
此时which node
应返回/opt/node/bin/node
,版本是您想要的版本(本例中为6.1.0)。如果要测试另一个版本,请将其安装在/ opt / node-vXXX下的另一个目录中并更新符号链接。您不必更新PATH,只需更新符号链接。
这比使用brew更多的工作,但你可以完全控制安装的内容和位置。我喜欢这个解决方案的是你的版本永远不会混淆或混淆,你可以随时安装/删除版本,并快速设置任何版本默认。
答案 1 :(得分:0)
您的路径在/usr/local/bin
之前包含/usr/local/Cellar
。由于您使用的node
版本是homebrew
,因此请修改为:
PATH="/usr/local/Cellar:$PATH"
下次遇到brew问题时,请运行brew doctor
,它会告诉您该怎么做