即使在我安装brew node和NVM安装v0.6.19之后,我的节点版本始终是v0.6.1-pre。
我的节点版本是:
node -v
v0.6.1-pre
NVM这样说(在我第一次在一个bash终端中安装一个版本的节点之后):
nvm ls
v0.6.19
current: v0.6.19
但当我重启bash时,我看到的是:
nvm ls
v0.6.19
current: v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)
那么,这个幻影节点0.6.1预版本在哪里?我该如何摆脱它?我正在尝试通过NPM安装库,以便我可以在项目中工作。
我尝试在NVM之前使用BREW进行更新,使用BREW更新和BREW安装节点。我已尝试删除/usr/local/include中的“node”目录和/usr/local/lib中的“节点”和“node_modules”。我已尝试卸载npm并按照以下说明重新安装。
所有这些都是因为我试图更新节点的旧版本以安装“zipstream”库。现在我的用户目录中有文件夹,节点版本STILL不是最新的,尽管NVM说它使用的是0.6.19。
理想情况下,我希望卸载nodejs、npm和nvm,然后在我的系统上从头安装整个程序。
这为我修复了Homebrew用户在Mac OS X上修复npm。而且它不需要太多步骤。
如果你不在乎原因,就去解决问题。
为方便起见,以下是相关部分:
解决方案
此解决方案修复了尝试运行npm更新npm-g所导致的错误。完成后,您也不需要使用sudo在全球安装npm模块。
开始之前,请记下所有全球安装的npm包。这些说明将帮助您删除所有这些包。完成后,您需要重新安装它们。
运行以下命令以删除所有现有的全局npm模块,卸载node和npm,使用正确的默认值重新安装node,配置要安装的全局npm模块的位置,然后将npm作为自己的软件包安装。
rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh
此时应正确安装节点和npm。最后一步是将~/.npm包/bin添加到PATH中,以便npm和全局npm包可用。为此,请在~/.bash_profile中添加以下行:
export PATH="$HOME/.npm-packages/bin:$PATH"
现在,您可以毫无问题地重新安装所需的任何全局npm包。
对于brew用户,OSX:
要删除:
brew uninstall node;
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;
要安装:
brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc
您可以运行brew info node以获取有关节点安装的更多详细信息。
考虑使用NVM而不是brew
NVM(节点版本管理器)是用于管理多个版本的节点的便携式解决方案
https://github.com/nvm-sh/nvm
> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
v4.2.0
v5.8.0
v6.11.0
-> v8.1.2
system
当您在具有不同节点依赖关系的不同项目之间切换时,可以使用AVN自动切换版本。