在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。nvm 应运而生,nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node,官方推荐使用 nvmw 或 nvm-windows。不过,nvm-windows 并不是 nvm 的简单移植,他们也没有任何关系。但下面介绍的所有命令,都可以在 nvm-windows 中运行。
使用 nvm 方面地切换 node 版本,同时在全局安装的时候也不需要加 sudo
.
安装过程
卸载现有的所有 node 以及 modules
首先,打开你 Finder,按 shift+command+G,打开前往文件夹的窗口,分别输入下列目录进去之后删除 node 和 node_modules 相关的文件和文件夹:
打开 /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 可执行文件
你可能还需要在你的终端中输入一些额外的指令:
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
可以参照 nvm 的官方安装方法,注意不要使用 homebrew 安装.
//使用 curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
//使用Wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
配置环境变量
安装以后输入nvm
发现找不到命令,这个时候需要我们配置环境变量,复制下面的代码到shell 对应的配置文件中.如你使用的 shell 是 zsh,则复制到 ~/.zshrc
最下面,使用默认的 bash 则复制到 ~/.bash_profile
最下面,接着 source ~/.zshrc 或者source ~/.bash_profile
,或者重启terminal.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
安装完成以后输入 nvm,提示:
Node Version Manager
Usage:
nvm help Show this message
nvm --version Print out the latest released version of nvm
nvm install [-s] <version> Download and install a <version>, [-s] from source
nvm uninstall <version> Uninstall a version
nvm use <version> Modify PATH to use <version>
nvm run <version> [<args>] Run <version> with <args> as arguments
nvm current Display currently activated version
nvm ls List installed versions
nvm ls <version> List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [<pattern>] Show all aliases beginning with <pattern>
nvm alias <name> <version> Set an alias named <name> pointing to <version>
nvm unalias <name> Deletes the alias named <name>
nvm copy-packages <version> Install global NPM packages contained in <version> to current version
Example:
nvm install v0.10.24 Install a specific version number
nvm use 0.10 Use the latest available 0.10.x release
nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
nvm alias default 0.10.24 Set default node version on a shell
Note:
to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders
常用nvm命令
nvm ls-remote //列出所有可安装的版本
nvm install <version> //安装指定的版本,如nvm install v8.14.0
nmv install stable //安装最新稳定版
nvm uninstall <version> //卸载指定的版本
nvm ls //列出所有已经安装的版本
nvm use <version> //切换使用指定的版本
nvm current //显示当前使用的版本
nvm alias default <version> //设置默认node版本(常用,避免每次都要设定 node 版本)
更换 npm 的源
由于某些原因,npm 本身的镜像地址(https://registry.npmjs.org/)下载速度极慢,因此我们可以更换国内淘宝的镜像地址,或者直接使用 cnpm.
使用淘宝镜像
1.临时使用npm --registry https://registry.npm.taobao.org install express
2.持久使用npm config set registry https://registry.npm.taobao.org
3.通过cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org
二、使用官方镜像npm config set registry https://registry.npmjs.org/
三、查看npm源地址npm config get registry