nvm是用来管理多个node和npm版本的工具。不同项目,所依赖的node版本也不尽相同。安装nvm管理node版本,方便切换。

注意:之前安装过node的要删除干净。

Nvm安装

1、下载nvm安装包。

安装包有两种,一种是 non-setup,就是不需要安装的,直接下载解压就好。一种是我们常见的setup版本(里边有 exe安装文件)。安装完成后,安装目录是这样的:

nvm安装的node 安装yarn nvm离线安装node_nodejs

2、进入安装文件目录,找到setting.txt。

这里重点说一下:

nvm安装的node 安装yarn nvm离线安装node_nvm安装的node 安装yarn_02

root 这个是安装后自动填充的。代表nvm安装路径。

path 这个也是安装后自动填充的。代表node快捷方式。

node_mirror, npm_mirror 要设置为淘宝镜像,否则下载nodejs很很慢。 

还有一个proxy(代理),如果你的公司的网络设置了代理,要把代理地址填写进去,否则下载不了。

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

3、安装制定版本的node

安装的命令很简单:

nvm install <node版本号>

// 比如安装 10.16.0 这个版本 --> nvm install 10.16.0

具体要安装哪个版本,根据自己项目的需要,还可以去 nodejs官网 查找:Previous Releases | Node.js

可以看到所有的node版本。

项目需要,我这里指定安装 10.16.0 这个版本。

nvm install 10.16.0

4、安装成功之后 可以文件夹中看到

nvm安装的node 安装yarn nvm离线安装node_nvm安装的node 安装yarn_03

运行命令 同样可以查看到。

nvm安装的node 安装yarn nvm离线安装node_npm_04

 Nvm环境变量配置

在Windows的系统变量用户变量中,均添加NVM_HOMENVM_SYMLINK这两个名称的变量,前一个变量的值为nvm的安装路径,如C:\Dev\nvm,后一个变量的值为node.js的安装路径,如C:\Dev\nodejs。除此之外,还要确保系统变量PATH中,有%NVM_HOME%%NVM_SYMLINK%这两个值,每个值的后面要加上英文的分号;(注意不要有空格)。

nvm安装的node 安装yarn nvm离线安装node_压缩包_05

设置环境变量:

NVM_HOME: nvm所在的地址 也就是 上边 setting.txt 中的 root

NVM_SYMLINK: node快捷方式所在目录 也就是 上边 setting.txt 中的 path

PATH:%NVM_HOME%;%NVM_SYMLINK%; path添加在最后边就好,不要覆盖了原来的path。

注意: 添加的时候不要有空格。

nvm安装的node 安装yarn nvm离线安装node_nvm安装的node 安装yarn_06

Nodejs的Npm安装

安装完成之后,在cmd中验证一下突然发现,node可以,npm却不行。很显然,npm没有安装上,并没有npm.cmd这个命令。

nvm安装的node 安装yarn nvm离线安装node_压缩包_07

原因: 这是因为 nvm 安装的时候 先下载node,node下载完毕之后 开始下载 npm,这时候你会在安装目中看到一个 temp 的文件夹,点进去发现里边有个文件和压缩包。而这个压缩包就是我们需要对应node版本的npm。但是nvm并没有自动将这个注入到对应node版本中的node_moudles里边去 而是将它删除了(也不知道为什么)。所以我们在查看npm -v时候出现了上边这一幕。

nvm安装的node 安装yarn nvm离线安装node_官网_08

解决办法: 手动安装。

当你在安装node版本的时候,注意看 temp 文件夹,及时的将 压缩包复制出来 进行解压。解压到对应node版本的 node_moudles中,并将文件夹名称改为 npm ,如图所示

nvm安装的node 安装yarn nvm离线安装node_官网_09

如果你手慢,复制不了也没关系,直接去 node_mirror 官网下载对应版本的npm就可以。地址为:CNPM Binaries Mirror (注意对应版本).

然后将文件中 bin 下边的 npm npm.cmd 拷贝出来放到node.exe统计目录下:

nvm安装的node 安装yarn nvm离线安装node_官网_10

然后再试一试npm安装好了没有:

nvm安装的node 安装yarn nvm离线安装node_npm_11

有个坑得说一下。

现在安装一个命令,试一试

npm i -g nrm

安装了一个node镜像管理,运行一下,发现报错了:nrm 不是内部或者外部命令... 

看一下nodejs文件夹

nvm安装的node 安装yarn nvm离线安装node_npm_12

文件夹下并没有 nrm.cmd。

这时候要看看npm全局配置了,看看prefix是不是指向nodejs安装目录以及cache是不是指向的是node_cache,如果不是要进行如下配置:

npm config set prefix "D:\node\nodejs"

npm config set cache "D:\node\nodejs\node_cache"

### 再系统环境变量上增加

NODE_PATH   E:\node\nodejs\node_modules

再次安装 npm i -g nrm

nvm安装的node 安装yarn nvm离线安装node_nvm安装的node 安装yarn_13

好了,这下大功告成了。