一. nvm是什么
Node 版本的迭代速度很快,版本很多,不同项目对 node 的依赖不同,故需要切换不同 node 版本
目前有 n 和 nvm 这两个工具可以对 Node 进行无痛升级,n 命令是作为一个 node 的模块而存在,而 nvm 是一个独立于 node/npm 的外部 shell 脚本,因此 nvm 命令相比 n 更加全面, n 更有局限性。
nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmw 或 nvm-windows 。
我按 nvm 提供的文档来完成 nvm 及 node 多个版本的安装,因为在安装过程中遇到不少坑,特在此总结安装中遇到的各种坑
二. 下载安装与使用
<1> nvm 下载1>
nvm-windows 下载地址: nvm-windows
选择第一个 nvm-noinstall.zip ,然后解压在系统盘(建议放D盘)。我放的目录路径是 D:\NodeNVM\nvm 。解压出来的文件有:1
2
3
4
5+ elevate.cmd
+ elevate.vbs
+ install.cmd
+ LICENSE
+ nvm.exe
备注: windows 下要设置显示文件类型的扩展名,这样才能看到上述文件的后缀
<2> nvm 安装2>
双击 install.cmd ,是以控制台形式显示的,第一下直接按回车,然后会在d盘根目录产生 settings.txt ,把这个文件放进刚刚解压的那个目录,然后修改 settings.txt 内容,改成如下:1
2
3
4root: D:\NodeNVM\nvm
path: D:\NodeNVM\nodejs
arch: 64
proxy: none
倘若上面方法行不通,因为打开 install.cmd 按下回车后,显示拒绝访问注册表路径,并弹出一个 settings.txt 。此时关掉控制台及文本,在 D:\NodeNVM\nvm 目录里新建一个文件 settings.txt ,然后复制上面的内容即可。1
2
3
4root : nvm 的存放地址
path : 存放指向 node 版本的快捷方式,使用 nvm 的过程中会自动生成。一般写的时候与 nvm 同级。
arch : 电脑系统是 64 位就写 64 , 32 位就写 32
proxy : 代理
<3> nvm 环境变量配置3>
以控制台方法执行成功的,在环境变量里会自动配置了 NVM_HOME 和 NVM_SYMLINK 。
直接创建 settings 文件的可以在环境变量里创建 NVM_HOME 和 NVM_SYMLINK,并添加路径。
若环境变量配置有问题,可以直接按下面两种方式来手动配置
第一种:右键单击 我的电脑 - 属性 - 高级系统设置 - 高级 -环境变量 - 系统变量 中新建,输入对应变量名,变量值即可1
2NVM_HOME: D:\NodeNVM\nvm
NVM_SYMLINK :D:\NodeNVM\nodejs
第二种:windows + r 弹出输入框后,输入: sysdm.cpl,同第一种 高级 以后的操作(步骤稍微简单一点点)
最后在上面的用户变量中的 PATH 里加上1
;%NVM_HOME%;%NVM_SYMLINK%;。
<4> nvm 基本操作4>
打开 cmd 窗口输入命令:nvm -v ,查看当前 nvm 的版本信息。
- nvm install latest // 下载最新的 node 版本 v7.2.0
- nvm install 8.5.0// 安装不同版本
- nvm install 6.11.3 32 // 默认是64位,32位需指定
备注: 如果你的电脑系统是 32 位的,那么在下载 nodejs 版本的时候,一定要指明 32 如: nvm install 5.11.0 32 这样在 32 位的电脑系统中,才可以使用,默认是 64 位的。
- nvm uninstall 6.11.0 #卸载对应的版本
- nvm use 8.5.0 // 引入使用
- nvm list // 查看已安装的 node 版本
- nvm ls available//列出远程服务器上所有的可用版本
1
2
3
48.5.0
8.0.0
* 6.11.3 (Currently using 64-bit executable)
*表示当前正在使用的 node 版本号
每次执行切换的时候,系统都会把 node 的可执行文件链接放到特定版本的文件上。
<5> 安装 node5>
第一个坑:安装过 node 版本的,先卸载了在开始看现在的安装流程。
第一种方式:
使用命令行下载,直接输入:nvm install [版本号]1
nvm install 6.11.0
要下载最新版的可以直接输 nvm install latest
下载完成后,在控制台输入:nvm use [版本号]1
2
3
4
5
6
7
8
9nvm use 6.11.3
//下面会显示如下内容
Now using node v6.11.3 (64-bit)
//查看 node 版本是否是自己需要的
node -v
//显示当面使用版本号即表示毛病了
v6.11.3
第二种方式:
直接上官网下载所需安装包
第二个坑:刚开始我是用命令行的方式安装的 node 所需版本,但是安装的 node 启动项目一直有问题,后同事告知命令行下载的版本很可能丢失文件,导致各种奇怪的问题,直接去官网下载安装包按下面操作流程即可。
- 下载安装包之后,将文件解压到D:\NodeNVM\nvm中
- 重命名,按原文件名更改为如下所示即可(严格按如下方式更改名字)
1
2//原文件名 => 新文件名
node-v8.0.0-win-x64 => v8.0.0
所需要 node 下载完成后,按上面方式查看、切换版本
如果你是第一次下载,在 use 之前,D:\NodeNVM目录下是没有 nodejs 这个文件夹的,在输入比如: nvm use 6.11.3 之后,你会发现,D:\NodeNVM 目录下多了一个 nodejs 文件夹,这个文件夹不是单纯的文件夹,它是一个快捷方式,指向了 D:\NodeNVM\nvm 里的 v6.11.3 文件夹。
同样的咱们可以下载其他版本的 nodejs ,这样通过命令: nvm use 版本号 比如:nvm use 5.11.0就可以轻松实现版本切换了。
注意:切换不同的 node 版本以后,用管理员身份打开命令行,运行 npm -g -d i windows-build-tools ,以解决 window 中某些不能用的命令的问题
二. 安装 cnpm
因为 npm 安装插件是从国外服务器下载,受网络影响大,可能出现异常,所以可以使用淘宝开发的淘宝NPM镜像,同步频率目前为 10 分钟 一次。
<1> 通过 config 配置指向国内镜像源1>
1 | npm config set registry http://registry.cnpmjs.org //配置指向源 |
<2> 通过 npm 命令指定下载源2>
1 | npm --registry http://registry.cnpmjs.org info express |
<3> 在配置文件 ~/.npmrc 文件写入源地址3>
1 | nano ~/.npmrc //打开配置文件 |
三.使用 node 启动项目
npm i (npm install 的简写)安装依赖时候,后面加上 -d 可以看到文件安装进程和状态
若安装文件中出现状态 304 且报错,直接去 D:\NodeNVM\npm-cache 中,将缓存文件全部删除