背景:本地npm升级到了v9.6.4,但node依然是v12.18.4,这个node版本不足以支持v9.6.4版本的npm。正常的版本对应大概如下:
node v12.18.4 对应 npm v6.x
node v18.16.0 对应 npm v9.x
而我的本地变成了如下:
node v12.18.4 对应 npm v9.x(错了,这样npm就不能用了,需要更高node版本)
所以,需要改正版本对应关系。与我而言,目前的办法是直接升级node版本最简单。怎么升级呢?我使用了node的版本管理器nvs。
nvs他跨平台,易操作,对于node的版本管理很友好。而且,项目多了,对于node的版本需求自然不同,方便我们开发中自由切换node版本满足不同项目的依赖。
介绍下,node的版本管理器还有nvm和n。
安装nvs:
1,下载nvs的msi安装包(选择msi而不是zip是因为windows环境环境配置比较复杂,而msi中包含了基础配置,为我们免去了一定工作)
2,安装最新的 LTS 版本
$ nvs add lts
3,配置为默认版本
$ nvs link lts
4,安装其他版本
$ nvs add 16
5,查看已安装的版本
$ nvs ls
6,在当前命令行中切换版本
$ nvs use 16
7,更多指令
nvs --help
8,11
注意:在使用命令 nvs use xx 切换node版本后,npm版本也就跟着切换了。(每次安装node时,会自动安装好一个对应的npm版本)
如果想改变某个node版本下的npm版本,可以切换到node版本后,直接npm i npm@x.xx -g 即可。
举例:想要改变 node v18.x下的npm版本 ,需要:
nvs use 18 //切换到18版本下
node -v // 查看当前版本是不是18版本
npm i npm@3.4.5 -g // 更换npm版本,即重新安装指定版本
npm -v // 查看安装结果
注意:我原来本地并未使用过nvs做node的版本管理,所以使用nvs安装了 node v12.18.4 对应 npm v6.x 之后,他与我本地原来的node v12.18.4 并不冲突,nvs 安装的node 在不同的路径下,当然了,以后如果做项目,我需要使用nvs路径下的node,原来本地的node我就不用了。
每次项目启动,编译前,我都会使用nvs下的node,并做初步确认操作。大概步骤是:
1,查看当前node版本:node -v ;查看nvs下的node版本们:nvs ls
2,查看npm版本(两个都查看一下,为了保险嘛):npm -v
3,切换到自己需要的node版本:nvs use 12
4,再次查看切换后的node版本(指定版本后,展示出来的列表中那个被指定的版本 前面有个v):nvs ls
5,再次查看切换后的npm版本:npm -v
tips:每次执行nvs use xxx 本质是改变了环境变量的指向。