一、nvm
由于Node.js版本原因,可能会出现一些错误,如IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported。而且不同的项目,所采用的Node.js的版本不同,重新卸载安装配置,太过繁琐。所以可以使用nvm来动态灵活管理Node.js的版本 。
#nvm:管理Node.js版本的工具,可以管理多个Node.js版本以及其对应的npm。
#Node.js:一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个开源的、跨平台的 JavaScript 运行时环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
#npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。
#npm、Node.js、npm三者关系的总结:nvm管理Node.js的版本,npm管理Node.js的包。
注意:如果你之前已经单独在自己的机器上安装并使用过Node.js,必须先卸载这个已经安装好的版本,否则不仅无法纳入nvm的版本管理中,而且很可能会出现冲突问题。
在cmd中输入node -v和npm -v 分别检查Node.js和npm的版本,出现如下图的提示才算卸载完成:
二、下载并安装nvm
2.1 下载nvm-windows
点击访问链接下载nvm-windows
下载nvm-setup.exe或者nvm-set.zip(解压出来也是nvm-setup.exe)。
最后会得到这样一个安装包 :
2.2 安装nvm-windows
检验nvm安装是否成功:nvm -v
nvm安装目录内容:
nvm安装过程中自动默认配置的用户变量:
nvm安装过程中自动默认配置的系统变量Path:
2.3 配置nvm taobao镜像
使用编辑器软件打开nvm安装目录下的settings.txt文件夹,在其中添加如下taobao镜像:
注意:这里设置的镜像源是安装Node.js和npm本身的源,不是安装Node.js包的源。
##node taobao mirrors
node_mirror: https://npm.taobao.org/mirrors/node/
##npm taobao mirrors
npm_mirror: https://npm.taobao.org/mirrors/npm/
settings.txt的默认内容:
添加taobao镜像后的settings.txt:
2.4 新建node_global和node_cache
在Node.js安装目录中新建node_global&node_cache文件夹
#node_global是npm的全局模块的路径
#node_cache是npm使用时的cache即缓存的配置路径。
三、配置nvm、Node.js、npm协同工作
3.1 使用nvm
nvm个人常用命令一览:
#nvm -v 查看nvm版本
#nvm 查看nvm相关信息
#nvm list available 查看可用的版本
#nvm install Node.js的版本号 安装Node.js18.16.0 (如nvm install 18.16.0)
#nvm use Node.js的版本号 使用Node.js18.16.0 (如nvm use 18.16.0) 如果安装了多个Node.js包,就相当于切换版本。 【只会安装不会安装并自动切换到这个版本】
#nvm list或nvm ls 查看已下载的Node.js的版本
#notice:这里使用的较少
#nvm arch 查看当前Node.js运行64位或32位操作系统上
#nvm on/off 开启/关闭Node.js的版本管理
#nvm use 版本号 arch 使用指定版本指定位数的Node.js
#nvm uninstall 卸载指定版本的Node.js
nvm -v 查看nvm版本:
nvm 查看nvm相关信息:
nvm list available 和 nvm install Node.js的版本号 :
Node.js官网显示长期维护版为18.16.0和最新尝鲜版20.3.0和nvm list available获取的一致:
###安装并切换到Node.js 20.3.0全过程###:
nvm list 和nvm use Node.js的版本号 :
#查看使用的Node.js的版本
node -v
#查看Node.js对应的npm的版本
npm -v
#查看npm config配置的信息
npm config list
3.2 npm config set registry 设置镜像站
可参考我这篇
IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported
在CMD中使用nmp config 中的npm config set命令配置镜像-regisry
注意:这里设置的镜像源是安装Node.js包的源。
#npm config set registry 设置镜像站
npm config set registry=http://registry.npm.taobao.org
###注意:由上图操作得出一个结论:registry设置一次,对你已经安装的所有的Node.js版本的包都有效果###
3.3 npm config set 配置node_global和node_cache
在CMD中使用nmp config 中的npm config set命令配置node_global和node_cache文件夹
npm config set prefix "D:\front\nvm\node_global"
npm config set cache "D:\front\nvm\node_cache"
#node_global是npm的全局模块的路径
#node_cache是npm使用时的cache即缓存的配置路径。
3.4 npm config get 获取npm 相关配置信息
#npm config list 查看npm config配置的信息
#npm config get cache 获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm config get prefix 获取npm的全局模块的路径
#npm config get registry 获取镜像信息
#经过测试下列简化命令也适用
#npm get cache 获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm get prefix 获取npm的全局模块的路径
#npm get registry 获取镜像信息
#经过测试下列简化命令也适用【可忽略此步骤】
四、使用nvm、Node.js、npm协同工作流程
目前(2023-6-22 17:28:46 )Node.js长期维护版为18.16.1(推荐多数用户使用) 和最新尝鲜版20.3.1(含最新功能) :
4.1 流程
#1、通过nvm查看可用的Node.js的版本
nvm list available
#2、查看目前已经安装Node.js的版本(查看已下载的Node.js的版本)
#nvm list 或 nvm ls
#3、 安装需要的Node.js的版本 (如nvm install 18.16.1)【只会安装不会安装并自动切换到这个版本】
#nvm install Node.js的版本号
#4、使用此版本
#nvm use Node.js的版本号
使用Node.js 18.16.1 (如nvm use 18.16.1) 如果安装了多个Node.js包,就相当于切换版本。
#5、切换版本【同上,可忽略】
nvm use Node.js的版本号
使用Node.js 20.3.1 全过程截图【从18.16.1切换到20.3.1】:
使用Node.js 18.16.1 全过程截图【从20.3.1切换到18.16.1】:
4.2 查看Node.js版本的相关配置信息
Node.js18.16.1的配置信息:
Node.js20.3.1的配置信息:
所以:cache、prefix、registry这些设置只需要配置一次就可以了,类似全局变量。
cache、prefix、registry按前面所述配置好了,这些信息保存在.npmrc 文件中:
4.3 使用过nvm进行Node.js版本切换的nvm文件目录
五、参考资料
nvm-sh
coreybutler/nvm-windows
nvm-windows 下载安装及踩坑
Index of /npm/
Windows nvm安装与使用
nvm for windows 下载、安装及使用
IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported