作为一名前端开发,我相信在平时工作中不可避免地要和新老项目打交道,那么新项目与老项目用的 Node 版本肯定是不一样的。针对老项目,我们需要使用旧版本的 Node,而针对新项目需要使用近期版本的 Node,在不同的项目之间需要切换不同的 Node 版本。
我们在开发过程中,经常需要使用 Node 自带的 npm 安装包和下载包,使用其默认源下载会非常地慢,我们还需要设置国内的镜像来加速其下载过程,当我们发布 npm 包时还需要设置回 npm 官方源,从而发布至 npm 官网,那么有没有对应的工具来高效地管理它们呢?
管理 npm 源
npm 是世界上最大的软件注册表,在安装 Node 的时候,会一并把 npm 安装在我们的客户端上,但是因为 npm 的服务器在国外,我们使用 npm 安装一些第三方包的时候,使用其官方源下载速度会非常的慢,甚至可能会出现卡死不动的现象,我们可以使用 nrm 来高效地管理 npm 源。
安装
全局安装 nrm
为了便于安装 nrm ,我们可以先手动设置 taobao源:
首先,在命令行终端输入 npm config set registry https://registry.npmmirror.com
然后,在命令行终端输入 npm install nrm -g
全局安装 nrm
查看 npm 所有源
在命令行终端输入 nrm ls
这时我们看到 nrm 帮我们列出其所有 npm 源地址,那我们如何切换源呢?
使用
切换源
首先确认下当前 npm 源是什么,在命令行终端输入 npm config get registry
查看当前 npm 源
上图显示我这边的当前 npm 源是 taobao 源,我们切换回 npm 源试试,在命令行终端输入 nrm use npm
查看一下当前源,在命令行终端输入 npm config get registry
此时已经切换会 npm 官方源,我们也可以在命令行终端输入 nrm ls
再确认下是否是 npm 官方源
我们看到 npm 官方源前面有个 *
号,可以确认当前源为 npm 官方源,下载第三方包或者 npm install
时还是建议使用 taobao 源 ,其下载速度还是挺快的,在命令行终端输入 nrm use taobao
这一行命令即可切换 taobao 源。值得注意的是,我们在发布 npm 包时,还是要切换到 npm 官方源。
nrm 其他命令
在命令行终端输入 nrm -h
看一下还有什么功能:
nrm current
查看当前源
nrm test [registry]
测试源的速度
显然 taobao 源的速度是快于 npm 源的。
管理 Node 版本
Volta 是一种轻松管理 JavaScript 命令行工具的方式,它的主要特点是,快、跨平台支持、支持多个包管理器、每个项目的无缝版本切换。
通过 Volta 管理 Node,我们就可以在每个项目之间指定特定的 Node 版本,而无需在命令行针对不同的项目频繁的切换 Node 版本。
安装
Mac
在命令行终端输入 curl https://get.volta.sh | bash
。
Windows
下载 Volta,然后根据提示安装。
使用
我们以 Windows 为例
在命令行终端输入 volta install node@18.19.0
Volta 会帮你安装指定版本的 Node 并作为全局默认版本。
在命令行终端输入 volta install node
Volta 会帮你安装最新版本的 Node 并作为全局默认版本。
在命令行终端输入 volta install node@16
Volta 会自动帮你选择合适版本的 Node 并作为全局默认版本。
在命令行终端输入 volta list node
查看所有已经安装的 Node 版本,因为我之前安装过不同的版本,所以显示的版本比较多。
Volta 的优势在于可以在指定项目中使用不同的 Node 版本,不再像 nvm 之前那样在不同项目中频繁切换 Node 版本。
我们新建两个文件夹用于测试:
新建 ce1 文件夹,在其根目录输入 npm init
生成 package.json
文件,然后输入 volta pin node@20.11.0
。
Volta 就会在 package.json
文件中生成一个以 volta 为属性的对象,这代表了你在该项目中使用的 Node 版本,且该版本的 Node 只会在此项目中生效。
查看 ce1 文件夹中 Node 版本及 npm 版本:
新建 ce2 文件夹,同样在其根目录输入 npm init
生成 package.json
文件,这次我们输入 volta pin node@16.20.0
。
同样会在 package.json
文件中新增一个以 volta 为属性的对象:
查看 ce2 文件夹中 Node 版本及 npm 版本:
Volta 提供的这种管理 Node 版本的方式 相比于 nvm 每进入不同的项目就要手动切换不同的 Node 版本来说便捷多了,并且切换速度和下载速度都是非常快的,大大提高我们开发人员的工作效率。