nvm 可以在统一系统中安装多个版本的Node.js的运行时,并在不同版本间快速切换,是前端开发的利器。
但是安装后,在使用时会有一些奇奇怪怪的问题,比如安装后还会报nvm command not found
等,这里简单记录一下nvm的安装及问题的解决。
nvm 安装
卸载全局安装的 node/npm
在官网下载的 node 安装包,运行后会自动安装在全局目录,使用过程中经常会遇到一些权限问题,所以推荐按照以下方法卸载全局安装的 node/npm
- 打开 /usr/local/lib,删除 node 和 node_modules 相关的文件和文件夹
- 打开 /usr/local/include,删除 node 和 node_modules 相关的文件和文件夹
- 如果你是使用的 brew install node 安装的 NodeJS,那么你还需要在终端中执行 brew uninstall node 命令来卸载
- 检查你的个人主文件夹下面的所有的 local、lib 以及 include 文件夹,并且删除所有与 node 和 node_modules 相关的文件以及文件夹
- 打开 /usr/local/bin 并删除 node 可执行文件
可能需要的额外指令
代码语言:javascript复制sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
安装nvm
安装脚本:
代码语言:javascript复制curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh |
或者
代码语言:javascript复制wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh |
这两个脚本会下载nvm的仓库到~/.nvm
目录,然后尝试把nvm命令加入到环境变量。我这里使用的是zsh,所以会加到~/.zshrc
(脚本也会尝试加到~/.profile
, ~/.bashrc
故意~/.bash_profile)
安装后,要重新启动终端。 但是仍然可能在输入
nvm
后提示nvm command not found
这种情况下,需要手动执行一下命令:
代码语言:javascript复制source ~/.zshrc
source ~/.nvm/nvm.sh
自动加载souce line
手动够可以解决问题,但是只要重新打开终端,都要手动输入,实在过于麻烦。 因此,把这个指令放在 ~/.bashrc
或者 ~/.profile
或 ~/.zshrc
。这样就可以在每次启动的时候,自动加载它。
我的shell使用的是zsh,因此,将命令source ~/.nvm/nvm.sh
放入~/.zshrc
中
vim ~/.zshrc
oh my zsh 以及自动补全
zsh还是有点简单,自动补全等功能不是很强大。因此安装oh my zsh
来增强终端功能。
安装
curl安装
代码语言:javascript复制sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
或者 wget安装
代码语言:javascript复制sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
安装zsh-autosuggestions
增强自动补全
- 克隆
zsh-autosuggestions
仓库到ohmyzsh
的插件目录。(默认的是~/.oh-my-zsh/custom/plugins
)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- 将插件添加到配置中(~/.zshrc)
plugins=(pluginA pluginB... zsh-autosuggestions)
- 重新打开终端即可
注意,安装oh-my-zsh
配置可能会被覆盖,可能需要重新把source ~/.nvm/nvm.sh
命令放入~/.zshrc
中